Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
А что на выходе хотите получить? Я если честно не понял. Думал сначала, что а-ля фрейворк задумывается, но нет, ни классов оберток на индикаторы, ордера, стандартные алгоритмы принятия решения, ничего. Хотя гораздо читабельнее такие конструкци: fast.Get(2)>=slow.Get(1); (это я так, для примера), а объявление:
CMA fast=new CMA(NULL,0,12,...);
CMA slow=new CMA(NULL,0,100,...);
Вот это можно обсуждать, а у Вас, ИМХО, топтание на месте.
тоже для примера, вместо fast.Get(2)>=slow.Get(1); вполне легальный и рабочий код:
table[FAST_MA][1] >=table[SLOW_MA][2]
работа идёт как с электронной таблицей, с экселем. Сводится в таблицу, а не по отдельным хендлам, потому что данные(формулы) могут быть взаимозависимы.
по идее можно сделать (просто ещё не делал в конкретной библиотеке):
fast=table[FAST_MA]; slow=table[SLOW_MA];
и тогда fast[2]>slow[1] читается ещё проще
а все внутренние вычисления будут произведены "по требованию"
тоже для примера, вместо fast.Get(2)>=slow.Get(1); вполне легальный и рабочий код:
table[FAST_MA][1] >=table[SLOW_MA][2]
работа идёт как с электронной таблицей, с экселем. Сводится в таблицу, а не по отдельным хендлам, потому что данные(формулы) могут быть взаимозависимы.
по идее можно сделать (просто ещё не делал в конкретной библиотеке):
fast=table[FAST_MA]; slow=table[SLOW_MA];
и тогда fast[2]>slow[1] читается ещё проще
а все внутренние вычисления будут произведены "по требованию"
Согласен, очень сложно читать Ваш код, даже если знаешь язык.
Фактически, это правило работает в отношении любого стороннего кода. Вопрос только в том, какой код не сложно, а легче читать.
И вот легче читать и править почти всегда MQL4-код. Угадали разработчики один раз.
Фактически, это правило работает в отношении любого стороннего кода. Вопрос только в том, какой код не сложно, а легче читать.
И вот легче читать и править почти всегда MQL4-код. Угадали разработчики один раз.
А можно вопрос. В чем угадали? Стандартный С/С++, если не считать специфических запросов связанных с торговлей и графиками, так это как "windows.h" в С++ можно расценивать.
Так что респект разрабам, что не стали велосипед изобретать, хотя за запрет ссылок однозначный минус, я когда в С/С++ упал после mql, нарадоваться не мог. Поэтому, вдруг чудо случится, может рассмотрите, как вариант, по подобию С# usafe, специально для таких как я, типа хочешь об стену убиться - убейся, мы предупреждали.
А можно вопрос. В чем угадали?
В кодобазе полно MT5-советников, которые являются переделками MT4-советников. Сравните код оригинала и переделки.
Очевидно, что разобраться в логике MT4-оригинала гораздо проще. Но еще проще, когда возникает необходимость в ТС что-то поправить. Не просто так MQL4 является стандартом обсуждения торговых алгоритмов на форумах во всем мире. Никакой другой язык, а именно MQL4. И он сыграл огромную роль в популярности MT4, а не наоборот.
Ну а если говорить о MT5-переделках, то они кривые - работают далеко не всегда. Простой пример. Шлете запрос на закрытие позиции, а получаете вместо закрытия торговый ордер. Там уйма всяких приколов, которые жутко решаются, чтобы выйти на реал. А в MT4 - просто и надежно.
В кодобазе полно MT5-советников, которые являются переделками MT4-советников. Сравните код оригинала и переделки.
Очевидно, что разобраться в логике MT4-оригинала гораздо проще. Но еще проще, когда возникает необходимость в ТС что-то поправить. Не просто так MQL4 является стандартом обсуждения торговых алгоритмов на форумах во всем мире. Никакой другой язык, а именно MQL4. И он сыграл огромную роль в популярности MT4, а не наоборот.
Ну а если говорить о MT5-переделках, то они кривые - работают далеко не всегда. Простой пример. Шлете запрос на закрытие позиции, а получаете вместо закрытия торговый ордер. Там уйма всяких приколов, которые жутко решаются, чтобы выйти на реал. А в MT4 - просто и надежно.
Так это же дичь, работу с ордерами/позициями по аналогии делать. В mql4 у меня один класс обертка для этого, в mql5 два разных, ибо в mt4 - это одна сущность, а в mt5 две разные, сейчас в планах класс обертку на них реализовать и забыть про работу с ордерами, как уже пол-года на mql4.
И да, mt5 в том числе для работы на бирже создавался, а там другой принцип работы с ордерами/позициями, так, что учим мат. часть и не скулим, все там хорошо и ровно получается, только торговую механику биржи и форекса придется сначала выучить и учитывать их различия. Все, что для этого надо разрабы дали и в доках описали, а дальше уже только сам.
Попробуйте расширить кругозор, т.к. вами написанное, действительно, скулеж.
Как-то костыльно получается. К буферам машек, которые терминал так и так создаст, мы еще добавляем массивы double. Я так понимаю, что память для них Вы будете на всю глубину истории резервировать (для M1 USHORT_MAX, если правильно помню,*8 байт) или по ходу действия планируете дорогой ArrayResize регулярно использовать?
Память под них я конечно выделяю. На глубину не более чем нужна для расчётов и отладки. В приведённом фрагменте 30, что более чем достаточно. Если где-нибуть потребуется считать например стандартное отклонение глубиной 50, то кеш стоит увеличить. Да и то только ради ускорения рассчётов.
Попробуйте расширить кругозор, т.к. вами написанное, действительно, скулеж.
С кругозором все в порядке, а вот так реализуется связь между позицией и ордером в mql5 (в рамках последней работы было, в принципе в этом виде уже в библиотеку для хедж счета и пойдет).