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

 
Yuriy Asaulenko:

А что в МТ5 есть? Да, знаю, язык на уровне Borland C++ 3.0, еще под DOS и WIN 3.1.  91-й год, если не ошибаюсь.)

PS уходите через ДЛЛ в С++/C# и все вам будет - и события пользователя, и исключения, и что душа пожелает. С некоторыми ограничениями, к сожалению ( - вызов только из МТ. Функций обратного вызова не существует.( Но некий эрзац все-же можно организовать.


Так и жил до 600-й версии МТ4, сейчас просто лень все эти мосты налаживать. Язык вполне годен для разработки стратегий средней сложности.

 
Alexey Volchanskiy:

Так и жил до 600-й версии МТ4, сейчас просто лень все эти мосты налаживать. Язык вполне годен для разработки стратегий средней сложности.

А че-там налаживать? ДЛЛ за 15 мин пишется. Лень ему, видите-ли.))))

Зато все прелести современной жизни, коллекции, потоки, сортир не на улице.)) И не надо вспоминать как все начиналось.)


 
Yuriy Asaulenko:

А че-там налаживать? ДЛЛ за 15 мин пишется. Лень ему, видите-ли.))))

Зато все прелести современной жизни, коллекции, потоки, сортир не на улице.)) И не надо вспоминать как все начиналось.)



За 15 мин болванка пишется. А когда надо гонять туда-сюда данные, начинается геммор.

И серьезно говорю, не особо надо для моего скальпера. Я в 2007-2009 разработал та-а-акую систему на C#, она только что танцевать не умела. Да вот стратегии не было, слив за сливом. А сейчас все простенько, но прибыль есть, а это главное.

 
Alexey Volchanskiy:

За 15 мин болванка пишется. А когда надо гонять туда-сюда данные, начинается геммор.

И серьезно говорю, не особо надо для моего скальпера. Я в 2007-2009 разработал та-а-акую систему на C#, она только что танцевать не умела. Да вот стратегии не было, слив за сливом. А сейчас все простенько, но прибыль есть, а это главное.

И на фиг тогда исключения? Либо пенье, либо пляски.))

Как там - если уж в ... попал, то сиди и не чирикай.)))

 
Yuriy Asaulenko:

И на фиг тогда исключения? Либо пенье, либо пляски.))

Как там - если уж в ... попал, то сиди и не чирикай.)))


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

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

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

 
Alexey Volchanskiy:

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

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

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

Не, я просто полностью в MQL никогда не уходил. Еще до МТ, все прежние системы были внешними к терминалу - на С++/С#. Кроме того, работаю с двумя терминалами - Квик и МТ. Не переписывать же под каждый терминал заново свою программу - эт еще-ж и думать надо.))

На самом деле никакого задора е надо - это все просто делается. Не загонять же себя в MQL с его ограничениями.

В принципе, если интересно, могу рассказать решение с ДЛЛ.

 
Andrey Dik:
Ситуация с нулём не разруливаемая. В знаменателе в принципе не должен оказаться 0, если это не предусмотрено логикой программы (в качестве замедленной бомбы какой нибудь, вредительства).

Как раз и разруливаемая легко, например результатом по умолчанию сделать максимальное число.

Это самое логичное и математически верное в рамках заданной точности вычислений. А то что это приводит к тому что программа вылетает, то явно предназначено для целей диверсии, другой разумной причины тут не найти.

Тем более в трединге это дико звучит если деление на ноль приводит к вылетанию всей программы, тем более что речь обычно идет о каких-то вычисления с суммированием, где переполнение вообще никак не влияет на конечный результат.

 
Andrei:

Как раз и разруливаемая легко, например результатом по умолчанию сделать максимальное число.

Это самое логичное и математически верное в рамках заданной точности вычислений. А то что это приводит к тому что программа вылетает, то явно предназначено для целей диверсии, другой разумной причины тут не найти.

Тем более в трединге это дико звучит если деление на ноль приводит к вылетанию всей программы, тем более что речь обычно идет о каких-то вычисления с суммированием, где переполнение вообще никак не влияет на конечный результат.


В рамках антидиверсионной деятельности MQ в свойствах проекта ввело галку "Проверять вещественные делители". Апхахочешься.

 
Vladimir Batrudinov:

На счет OnError(). Не пойму в чем конкретно проблема? Кто мешает самостоятельно реализовать нужный функционал в самом торговом роботе или в основном классе.

Ну дык если так решено, что программа должна тупо вываливаться по самым элементарным причинам, типа деления на нуля или выход за граница массива, хотя разумней удовлетворится простыми и логичными действиями по умолчанию, то есть подстановка максимального значения или нуля.

Ну а если программиста такое поведение вдруг не устраивает, что большая редкость, то уже пусть в явном виде прописывает и конечно же ни в коем случае не позволять программе вылетать, как тут рекомендуют непонятно почему ибо так кому-то захотелось в Микрософте, которые как известно далеко не друзья всему прогрессивному человечеству. :)

 
Yuriy Asaulenko:

Не, я просто полностью в MQL никогда не уходил. Еще до МТ, все прежние системы были внешними к терминалу - на С++/С#. Кроме того, работаю с двумя терминалами - Квик и МТ. Не переписывать же под каждый терминал заново свою программу - эт еще-ж и думать надо.))

На самом деле никакого задора е надо - это все просто делается. Не загонять же себя в MQL с его ограничениями.

В принципе, если интересно, могу рассказать решение с ДЛЛ.


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

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

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

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