Почему в MQL5 нет исключений? - страница 15

 
Alexey Volchanskiy:

Есть ощущение, что у тебя еще не иссяк юношеский максимализм )) Это хорошо на самом деле

А я вот старый, если можно решить задачу наименьшими усилиями, я ими и решаю. Будет надо, уйду в длл, все механизмы лежат на готове, хоть на С++, хоть на шарп. Но вот реально в последнее время не было нужды. 

Не хватает асинхронности, именно в коде, не в торговых операциях. Ренат обещает некие сервисы, но что это такое, походу MQ сами еще не определились.

Во-во. Когда-то я глядел в сторону DLL, но последний год - вобще забыл про эти мысли.  Пока еще все стараюсь писать код так, чтобы его можно было бы с минимальными переделками использовать в С#, но, чувствую, это не понадобится.

А насчет асинхронности - это лично мне пока что ни разу не понадобилось...

 
George Merts:

Во-во. Когда-то я глядел в сторону DLL, но последний год - вобще забыл про эти мысли.  Пока еще все стараюсь писать код так, чтобы его можно было бы с минимальными переделками использовать в С#, но, чувствую, это не понадобится.

А насчет асинхронности - это лично мне пока что ни разу не понадобилось...


Знаешь, я тут писал, что в конце нулевых разработал основу робота на C#, а потом выяснилось, что механизм есть, а стратегий нет. Сейчас пришел к выводу, что необязательно иметь совершенный язык а-ля C# 7, важнее иметь рабочую стратегию и более-менее вменяемый язык. Я считаю mql4/5 вполне вменяемыми языками, годными для практического применения.

А недостатки - сколько народу работает в MS над виндой? Около 5000 программистов. А над VS? Думаю, не меньше, чем несколько сотен. Не знаю количество разработчиков языка в MQ, но думаю, они сильно-сильно меньше.

Другое дело, зачем эти постоянные изобретения велосипедов...

 
Alexey Volchanskiy:

Вроде у тебя была фраза, что есть решение, как напрямую передать данные из длл в mql? Вот это было бы интересно. Можно здесь, можно в привате или скайпе пообщаться.

Я пока вижу 2 пути - запрашивать данные у длл, но это не прямой путь. И обмен через mqmory mapping, тоже непрямой, так как нет возможности дать mql сигнал на чтение новых данных. То есть надо работать по таймеру.

Указатели на функции работать не должны, т.к. нет их, указателей, есть дескрипторы.

Или все же есть прямые пути???

Не, прямого пути, к сожалению, нет. Возможна только имитация.

Я использую два советника. Один для поставки данных в ДЛЛ, другой для непосредственно торговых операций. Получаем два независимых потока, и торговый можно перевести в режим ожидания, подвесив вызов функции из МТ - вылетело из головы как это называется.))

Ну, а обмен системы с ДЛЛ через IP -клиент/сервер. ДЛЛ на управляемом С++, чтобы можно было использовать NET-объекты. Скорость обмена получается где-то ~1.5 Гбайт/с.

 

У каждой валюты есть волна и это не секрет, и все об этом знают. А вот поймать ее - не всем удается. Тут все дело в плохом танцоре. И если Вы напишете очень хорошую сову, но закажет Вам ее плохой танцор, то все, Вы потратите свое время на урегулирование вопросов с плохим танцором, а если этот танцор еще и оптимист, то все, считайте что Вы попали. Так что хорошие идеи надо держать всегда при себе и продавать только через маркет, и писать только то, что от тебя хотят, что бы ты исполнил; ни каких своих идей для улучшения, слова типа: возможно так будет лучше - сразу надо исключать из своего лексикона, "Вы туповатый программист тыкающий по клавишам", и чем тупее тем лучше. Год с небольшим(точно не помню), какой-то трейдер за один мах спустил чей-то весь капитал, поймал волну, его по телевизору, в новостях показывали. По ходу лихо поймал?!, в офисе, через пять минут кинулись, а его и след уже простыл. А у людей бывают на столько бредовые идеи, что только запрягай и ехай. Будущего ни знает ни кто. Все что Вы разрабатываете - это на основе прошедших событий, и если Вы это понимаете, и только предполагаете на будущее, то плохому танцору с большим кошельком на это все наплевать; он платит деньги и ждет результат положительный. Так что тут нужны исключения. Создайте сами их. Если я не ошибаюсь, то этот язык программирования позволяет работать с битами. Надо разумно влезть в эту систему и расковырять там все. Не спорю, много нюансов, но их можно обойти используя другие языки и формировать на их основе свое целенаправленное действие; преобразовывая один язык в другой. И вот биты - они все эти языки объединяют, так что вся структура в них, где-то между машинным кодом и языками программирования есть общий переход на биды, то есть их математическое число(я по ходу углубляюсь сильно), так как все финансовые структуры находятся в двоичном коде безопасности и так просто Вас ни кто туда не допустит. Как только начнете что-либо разрабатывать в этой области и кто-либо об этом узнает, все. Так что лучше писать спокойно примитивных советников. Как-то так?!

 

Не грамотный - извиняюсь "БИТ".

 
бот?
 
Yuriy Asaulenko:

Не, прямого пути, к сожалению, нет. Возможна только имитация.

Я использую два советника. Один для поставки данных в ДЛЛ, другой для непосредственно торговых операций. Получаем два независимых потока, и торговый можно перевести в режим ожидания, подвесив вызов функции из МТ - вылетело из головы как это называется.))

Ну, а обмен системы с ДЛЛ через IP -клиент/сервер. ДЛЛ на управляемом С++, чтобы можно было использовать NET-объекты. Скорость обмена получается где-то ~1.5 Гбайт/с.


Судя по скорости, это на локальной машине, да? 

Главный вопрос в силе. Как получаешь торговые приказы из длл? Вызовом функции в длл из советника с возвращаемыми параметрами приказа?

 
Комбинатор:
бот?

походу..

 
Alexey Volchanskiy:

Судя по скорости, это на локальной машине, да? 

Главный вопрос в силе. Как получаешь торговые приказы из длл? Вызовом функции в длл из советника с возвращаемыми параметрами приказа?

Да, на локальной.

Да, вызываем из МТ функцию ДЛЛ и оставляем ее висеть пока не дождемся ответа. В общем, даже выходить из нее не обязательно - в функции может быть просто бесконечный цикл с мьютексом ( вспомнил как называется))). Т.к. торговый советник - это отдельный поток, то это ни на что не влияет. При получении ответа в советнике switch-case выбираем конкретное действие и вызываем нужную функцию MQL.

 

бэт.   отсюда бэтмэн ;)