Обучение языку MQL4 под MetaTrader 4📌

От xbms, 13 апреля, 2013 в Уголок Программиста

Страница 271 из 271
#6751
11 часов назад, mishastar сказал:

Классический копировальщик тут как то не подошел.. Любая информация во благо!!!

Бери основу общение терминалов как в копировщике, и меняй под себя 

#6752

Привет, может кто подсказать или скинуть пример мультивалютного индикатора с OnCalculate. Такое вообще возможно сделать? Имеется индикатор, но не мультивалютный, хочу переделать чтобы каждую пару не открывать каждый раз и не кидать его туда, да и терминал виснет, ппц. Mt4

#6753

    Здравствуйте всем! Хочу реализовать одну вещь. А именно что бы главным условием было то, что бы после открытия ордера цена должна пройти определенное количество пунктов в любую из сторон. А уже потом реагировать на другие условия. Для этого у меня есть функция определения цены по которой был открыт ордер. Она рабочая, я ее проверял через Commetnt(). Далее я пишу условие if((Bid>=(FindLastOrderPrice()+200*_Point)) || (Bid<=(FindLastOrderPrice()-200*Point)) {...}  
  Но хочется так что бы: цена должна пройти определенное количество пунктов, после чего даже если она вернется назад то ордер уже мог бы открываться по другим условиям. Короче я так понимаю что в условие должно быть обнуление после того как цена прошла заданные пункты. Как это сделать?
 

Изменено 30 июля, 2024 пользователем Ar4i

#6754
В 30.07.2024 в 16:35, Ar4i сказал:

    Здравствуйте всем! Хочу реализовать одну вещь. А именно что бы главным условием было то, что бы после открытия ордера цена должна пройти определенное количество пунктов в любую из сторон. А уже потом реагировать на другие условия. Для этого у меня есть функция определения цены по которой был открыт ордер. Она рабочая, я ее проверял через Commetnt(). Далее я пишу условие if((Bid>=(FindLastOrderPrice()+200*_Point)) || (Bid<=(FindLastOrderPrice()-200*Point)) {...}  
  Но хочется так что бы: цена должна пройти определенное количество пунктов, после чего даже если она вернется назад то ордер уже мог бы открываться по другим условиям. Короче я так понимаю что в условие должно быть обнуление после того как цена прошла заданные пункты. Как это сделать?
 


Основное действие в таком случае должно активировать флаг 

Если оно не выполнено, то flag = false. 

Этот флаг нужно вставить в это самое условие
if((Bid>=(FindLastOrderPrice()+200*_Point) && !flag) || (Bid<=(FindLastOrderPrice()-200*Point) && !flag) {...}  

 

В 25.06.2024 в 15:29, fearnt сказал:

Привет, может кто подсказать или скинуть пример мультивалютного индикатора с OnCalculate. Такое вообще возможно сделать? Имеется индикатор, но не мультивалютный, хочу переделать чтобы каждую пару не открывать каждый раз и не кидать его туда, да и терминал виснет, ппц. Mt4

 

Когда приходит котировка, терминал начинает исполнять код всех индикаторов по очереди.
Для каждой валютной пары или для любого другого финансового инструмента производится свой собственный расчёт.
Данный расчёт число логически не зависит от количества индикаторов и количества графиков, он будет произведён для каждого инструмента отдельно даже если находится в одном индикаторе. 

В последнем случае используют цикл перебора списка валютных пар или других инструментов, с которыми итерационно происходит один и тот же расчёт, что был и в обычном сингл-режиме, когда на каждом графике стояло по копии одного индикатора. 

Если для Вас критерий - это кратное увеличение производительности, то МТФ-режим в таком случае — не спасёт. 
Расчёт будет незначительно отличаться, Вы его даже не заметите. 

Если расчётная часть содержит избыток циклов перерасчёта, как в индикаторе ТМА, то такой индикатор будет виснуть как в сингл-режиме, так и в МТФ. 


Создать МТФ - это продублировать часть кода на все валютные пары: дополнительно прибавить количество буферов для отображения остальных валютных пар, или расчётных буферов, если отрисовывать ничего не нужно и тд.

По сути при каждой итерации терминал бегает по одному и тому же расчётному коду для разных валютных пар - это ничем неотличается от сингл режима. 


И оптимизационная часть там может быть лишь условной: использовать одни и теже переменные, не создавая дополнительных и тд. 
Это всё мелкие операции для терминала, они не заметны.

Изменено 2 декабря, 2024 пользователем Capital Plus

#6755

Всем здравствовать! На теме на сайте "автоматическое определение дивергенций" послали сюда...

И куда меня послали?...

Только смеяться не нада!,,,,,

Автоматический поиск дивергенции на примере осциллятора RSа

Автоматический поиск дивергенции на примере осциллятора RSI

Страница 271 из 271

Для публикации сообщений создайте учётную запись или авторизуйтесь

Перейти к списку тем
Форум · 2.0.20260627.0025