как видите бесполезно объяснять мышевозилам, что без мыши можно вообще обойтись и когда-то их не было и это делает их потребителями
чем торговые терминалы отличаются от видеоигр? о чем говорить с людьми, которые всерьез пялятся в средние по OHLC. для них не падает - значит работает :)
если спросить любого грамотного технаря со стажем 20-25 лет для чего появились шарп, джава и прочие голанги, то они четко отвечают : чтобы и плохие программеры могли кодить , а манагеры это втюхать быстро
Чистый си - это как секс для подростков: он у всех на уме, все постоянно о нём говорят, все думают, что все остальные это делают, никто на самом деле этим не занимается. А те немногие, кто правда это делает - делают это плохо, небезопасно, и думают, что в следующий раз обязательно получится лучше. Вопрос - а нафига заниматься си если с той же эффективностью можно подушить питона??? Что же касается мышевозил, то вся эта мышевозня позволяет мне сосредоточится на решении основной задачи не отвлекаясь на написание большого количества кода чтобы заставить кнопку работать. Эту задачу в команде можно передать младшему сотруднику, пускай он формочки программирует формочки, вручную выписывая каждую кнопку. Чем вы по всей видимости и занимаетесь, и очень этим гордитесь. Люди давным давно придумали трактор чтобы землю пахать, а вы видимо даже о лопате не слышали, всё мотыгой машете, а развиваться судя по всему и не думаете так-как мозги давным давно покрыла плесень, а может срах перед чем-то новым, или лень (да мне в принципе пофиг)... А видеоигры от торгового терминала отличаются необходимостью невероятно огромного количества невероятно быстрых вычислений которые квику даже и не снились и об этом не знаете судя по всему только вы. С# реально быстрый, он на много быстрей других ЯПов. и гораздо более безопасный. Сергей Привалов здесь ещё привёл удачный пример реализации торговой платформы NinjaTrader... Я в своё время выучил пять языков программирования, точней четыре, пятый я вот уже пять лет как активно изучаю (это C#) и до сих пор не исчерпал всех его возможностей. А ваша квалификация программиста вызывает у меня большие сомнения, шли бы вы в детский сад трепаться там ваши высказывания смеха не вызовут. Кстати формы я давно не программирую, люди придумали вещи получше. Хотя куда вам до "получше" вы сегодня только про лопату услышали... Хотя, зачем узнавать что-то новое, так можно и грыжу мозга заработать.
Anton написал: Я переживаю за то, что дотнет останавливает ВСЕ потоки на время сборки мусора. А время сборки мусора зависит от КОЛИЧЕСТВА выделенных объектов (неважно, которые выживут или которые будут собраны).
Это действительно почти так. С 7 (или с 6 не помню уже, но где-то около того) версии появилось новое волшебное слово которое позволяет пометить объект который нужно удалить. Правда дотнет по прежнему не уничтожает объект сразу же по указке, а только тогда когда посчитает нужным. Правда не очень хочется спорить о правильности использования ссылочных типов (один из примеров такого неправильного использования как раз на этой странице форума оказался). Что собственно хотелось бы сказать: я не участвовал в разработке торговой платформы квик и знаком с ним только как пользователь, и ни одного кусочка исходника я не видел по этому моё дело предложить, ваше дело отказаться, или согласиться. Возможно, я действительно запросил нечто безумное, что потребует создания нового кода с нуля или что-то в этом роде, но всё же мне думается, что не всё так плохо, как кажется. А Вам Anton ещё раз спасибо. Без Вас я правда долго бы искал в чём проблема. Разбирать чужой код, мягко скажу, не самое любимое занятие, иногда даже сродни каторге, а так я сразу понял где собака зарыта, когда Вы мне сказали про параллельное подключение. Прошу прощения, что наехал за блокировку и спасибо за конструктивный диалог)))
Иван написал: Возможно стоит задуматься о реализации .NET
возможно, и если будет думаться нормально, а потом заглянется в ISO, то упс ... а там шряпом давно не пахнет, v5 -последний, емнип.
-1024 к карме за прочие домыслы и бред.
Ну, если подумать, то можно прийти к следующему умозаключению. Корпорация Microsoft одна из ДВУХ китов второй APPlE. Платформа дотнет детище Майкрософт, как и язык C#. И существовать они будут ровно столько сколько будет существовать сама Майкрософт, или пока эпл что-нибудь подобное не изобретёт по круче. А мелкомягкие, как мне кажется пока не собираются закрываться, скорей они всех других закроют. Так что шряп завтра не помрёт в отличие от паскаля или пайтона, или какого-нибудь лиспа. А это открывает далёкие перспективы с возможностью развития. Я уже молчу о том, что платформа и язык не зависят от операционной системы, и могут работать под управлением любой оси. Мне кажется вы слишком предвзято относитесь к дотнету. Наверное в прошлом учили какую-то сложную, неуклюжую абракадабру, которая сегодня не востребована...
Иван написал: Возможно стоит задуматься о реализации .NET интерпретатора?
Поддержал бы, если бы в дотнете мусор собирался по-человечески, а не так, как там сделано. В существующем виде что-либо, имеющее отношение к более-менее реалтайму, на дотнете делать нельзя.
Что не так со сборкой мусора? Вас не устраивает невозможность влиять на этот процесс? Или Вы переживаете за то, что память переполнится?
Есть ещё пожелание к разработчикам. Возможно стоит задуматься о реализации .NET интерпретатора? Реалии сегодняшнего дня таковы, что почти никто не хочет учить LUA и писать на нём, зато почти все, даже матёрые программисты предпочитают мастерить заборы из костылей и изобретать адаптеры для адаптеров чтобы соединить своё устройство с розеткой. На просторах интернета можно найти массу библиотек для QLUA написанных на C++, C#, Python. Правда Python уже прекратил поддержку, но все эти языки поддерживаются платформой .NET. Даже не нужно в гугл ходить чтобы в этом убедиться. Доказательств тому что люди хотят делать роботов на нормальном объектно ориентированном языке, а не на каком-то lua полно даже на этом форуме. Из всего торгового по что я пользовался - QUIK самый лучший и самый мощный. И если есть возможность подобной разработки интерпретатора C# это будет большой прорыв по сравнению с другим торговым ПО, стало бы вишенкой на торте. Это было бы самое лучшее обновление.
Ну он же слушает порт 34130, значит он и глючит. Ваш коннект на 127.0.0.1 через роутер не идет, это loopback адрес, единственное, что мне в голову приходит, это что кто-то извне ТОЖЕ к вашему квику коннектится ) Запретите квику слушать порт TCP 34130 в брандмауэре винды, будут ли глюки продолжаться?
Спасибо Антон. Я разбираюсь в программировании, немного, но в системном администрировании слаб))) Без вашей помощи долго бы догадывался где нужно искать проблему) Ларчик просто открывался. В коде автора есть баг. Неправильно реализована подписка на событие в результате которой в куче создавался ещё один экземпляр квика, естественно с абсолютно идентичными учётными данными (терминал-то один) вот и происходило ,как бы двойное, подключение. Проблема решена.
Ну он же слушает порт 34130, значит он и глючит. Ваш коннект на 127.0.0.1 через роутер не идет, это loopback адрес, единственное, что мне в голову приходит, это что кто-то извне ТОЖЕ к вашему квику коннектится ) Запретите квику слушать порт TCP 34130 в брандмауэре винды, будут ли глюки продолжаться?
Anton написал: Дык у аффтара надо причину спрашивать. На мой взгляд там слишком много всяких асинк вещей, запутаться очень легко, а чет никаких там флоучартов и диаграмм я не увидел, т.е. результат вполне закономерный для таким образом написанного кода. Не удержусь от цитаты из аффтара
Цитата
Because QUIK's Lua interface is dumb, slow and painful - while .NET is smart, fast and pleasure to work with.
Качество кода автора, конечно... Дело в том, что мне уже не в первый раз приходится роутер перезапускать, при этом сам компьютер я не перезагружаю, и даже проект в вижуалке не перезапускаю...
Anton написал: Вы ж к собственному компу коннектитесь, при чем тут арка вообще )
Мне кажется Вы не всё внимательно прочитали) А по этому поводу. Я не к собственному (компу?) коннекчусь потому, что на нем мой терминал с запущенным луа скриптом стоит))) И проблема решилась после перезагрузки роутера. Мне провайдер IP сменил и всё сразу законнектилось. Совпадение??? Не думаю))
Прошу прощения - забыл указать одну очень важную деталь. Это уже для разработчиков. Причина частого переподключения заключается в том, что скрипт луа (QLUA) который запускается в торговом терминале - самопроизвольно останавливается. Очень хотелось бы выяснить причину данной остановки. До последнего обновления таких остановок было на много меньше. Остановка присходит при закрытии окна моего C# приложения.
Здравствуйте уважаемые системные администраторы. Разблокируйте меня пожалуйста! Я робота своего создавал, никого не трогал. ПО пишу на C# с использованием коннектора QUIKSharp (это открытый исходный код на GitHub) надеюсь вы с ним знакомы. Если же нет вот ссылка можете ознакомиться. https://github.com/finsight/QUIKSharp. Естественно что в процессе написания кода и его отладки приходится постоянно отключаться, подключаться и переподключаться к серверу. Всё шло хорошо, я исправно подключался, ничего не предвещало беды! Норадость полёта програмисткой мысли оказалась недолгой в этот день, так как, вдруг я получаю следующее исключение:
Вызвано исключение: "System.Net.Sockets.SocketException" в System.dll Программа "[8876] RobotDemo.exe" завершилась с кодом -1 (0xffffffff).
Смысл этой ошибки следующий: СЕРВЕР НЕ ОТВЕЧАЕТ! Подключение происходит по дефолтному хосту и порту. Вот два отрывка кода:
public const int DefaultPort = 34130; /// <summary> /// localhost /// </summary> public const string DefaultHost = "127.0.0.1"; /// <summary> /// Quik interface in .NET constructor /// </summary> public Quik(int port = DefaultPort, IPersistentStorage storage = null, string host = DefaultHost) { Storage = storage == null ? new InMemoryStorage() : storage; QuikService = QuikService.Create(port, host); // poor man's DI QuikService.Storage = Storage; Events = QuikService.Events; Debug = new DebugFunctions(port, host); Service = new ServiceFunctions(port, host); Class = new ClassFunctions(port, host); OrderBook = new OrderBookFunctions(port, host); Trading = new TradingFunctions(port, host); StopOrders = new StopOrderFunctions(port, this, host); Orders = new OrderFunctions(port, this, host); Candles = new CandleFunctions(port, host); QuikService.Candles = Candles; QuikService.StopOrders = StopOrders; QuikService.WorkingFolder = Service.GetWorkingFolder().Result; }
private void ButtonConnect_Click(object sender, RoutedEventArgs e) { try { LogTextBox.AppendText($"Подключаемся к терминалу Quik {Environment.NewLine}"); _quik = new Quik(Quik.DefaultPort, new InMemoryStorage()); // инициализируем объект quik с использованием локального расположения терминала (по умолчанию) } catch { LogTextBox.AppendText($"Ошибка инициализации объекта {Environment.NewLine}"); }
Правда, должен признать, что сам терминал продолжает поддерживать подключение с сервером и исправно получает котировки.
На сколько я понял меня заблокировали из-за частых переподключений. Хотел бы иметь возможность продолжать работу далее если уважаемые системные администраторы будут не против. А ещё хотел бы получить рекомендацию по поводу того, как избежать данных проблем в будущем. Благодарю за понимание и оперативный ответ))).
Добрый день, с настройками оказалось всё в порядке, но есть ещё один вопрос: какой collation (параметры сортировки сервера) мне установить на моём сервере для корректного отображения текстовых значений "операция" (купля, продажа) и "бумага" (название бумаги - в нём присутствуют квадратные скобки), а то у меня там вопросы, Сортировка в первую очередь будет происходить именно по этим параметрам, а уже после по всем остальным. На моём сервере установлено значение SQL_Latin1_General_CP1_CI_AS
вот мои столбцы [*] int [Номер] int [Время] nvarchar (50) [Бумага] nvatchar (50) [Цена] int [Кол-во] int [Операция] nvarchar (50) [Объем] int Исправьте пожалуйста ошибки.
Я, тут немного пошаманил, и эти ошибки устранил, но появилась другая
Ошибка арифметического переполнения, преобразующая выражение в тип данных int.
код ошибки не помню уже. Подскажите пожалуйста, какой из моих столбцов выдаёт эту ошибку. Или какие столбцы из моих Номер, Время, Бумага, Цена, Кол-во, Операция, Объем. какие параметры должны иметь. Спасибо!
Здравствуйте, мне нужна консультация по таблицы обезличенных сделок по ODBC в мою БД созданную в MS SQL. Проблема заключается в следующем:
При попытке выбора таблицы в Квике выводит следующие ошибки: Ошибка ODBC при инициализации получения списка полей таблицы Не удалось найти сервер «имя моего сервера» в sys.servers. Убедитесь, что указано правильное имя сервера. Если необходимо, выполните хранимую процедуру sp_addlinkedserver, чтобы добавить сервер в sys.servers. код ошибки 7202
Заявление было прекращено код ошибки 3621
Однако, если я создаю ту же таблицу в БД "MASTER" эти проблемы отсутствуют, но ошибка вываливается когда заканчиваются строки в процессе вывода. Я где-то читал, сейчас уже не могу найти, что БД "MASTER"
не подходит для такого рода вывода. Я, так понимаю здесь есть два пути решения проблемы, исправить проблему с количеством строк в БД "MASTER", либо перенастроить мою БД для вывода, но я не могу найти информацию в интернете ни по тому, ни по другому поводу.
В чём мои ошибки? Ну или выложите пожалуйста подробную инструкцию по созданию БД и таблицы, как у себя. Обязательные столбцы для моей таблицы (которые я хочу видеть) - Номер, Время, Бумага, Цена, Кол-во, Операция, Объем.
И ещё вопрос: как быть с первой безымянной колонкой в неё * записать или пустой оставлять? пробовал и то и то. В мастере без разницы.