Ваши вопросы по языку MQL4

adamir

Активный участник
Я вроде объяснил как реализовать задачу. Проще в советнике использовать применение шаблонов, а не смену профиля.

Пример:

На первом профиле:
EURGBP этот робот
EURUSD другой робот
GBPUSD другой робот
AUDUSD другой робот

На втором профиле:
EURUSD робот "Close all open and pending orders"
 

Ugar

Гуру форума
Пример:

На первом профиле:
EURGBP этот робот
EURUSD другой робот
GBPUSD другой робот
AUDUSD другой робот

На втором профиле:
EURUSD робот "Close all open and pending orders"
Используй в советнике не профили, а шаблоны. Но применять шаблоны придётся к каждому графику. В советнике это прописать вполне реально.
 

_SERG_

Активный участник
Пример:

На первом профиле:
EURGBP этот робот
EURUSD другой робот
GBPUSD другой робот
AUDUSD другой робот

На втором профиле:
EURUSD робот "Close all open and pending orders"


На всяка мудреца, довольно простоты.

Да советников можешь навесить, скок сможешь, лишь бы депо позволил.
Да условие правильное, чтоб не слиться (это про риск), да общую блокировку на открытие позиций по СЧЁТУ (а не по инструменту), после сигнала на закрытие всех позиций по счёту.

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

PS МТ4 вааааще отдельная тема, со своими приколами. Пиши так, чтобы сам понимал, что происходит.:D
 

adamir

Активный участник
Используй в советнике не профили, а шаблоны. Но применять шаблоны придётся к каждому графику. В советнике это прописать вполне реально.

Podrobnejšie: Na prvom profile s názvom napríklad "Profil 1" sú tri grafy. Na grafe EURGBP (TF napríklad H1) je tento robot s názvom "Prepínač profilov". Na účte je 5000 USD. Robot "Prepínač profilov" je nastavený, aby pri 5100 USD zmenil profil na "Profil 2". Na profile "Profil 2" je robot s názvom "Close all open and pending orders". Napríklad na grafe EURUSD. Tento zatvorí všetky pozície.

Более подробная: Первый профиль назван "Профиль 1" три графы. График EURGBP (например, Н1 TF), робот называется "Переключить профиля". Счет 5000 долларов США. Робот "переключатель профилей" установлен в 5100 в США изменилось профиль "Профиль 2". На профиль "Профиль 2" является робот по имени "Close all open and pending orders". Например, на графике EURUSD. Это закрывает все позиции.
 
Последнее редактирование:

vadimww

Активный участник
мне бы кто помог,я на прошлой страницце код выожил и что не так
 

_SERG_

Активный участник
"Ребята подскажите почему на каждом баре происходит открытие и закрытие ордера? если можно то кусок исправления...делал вывод по стрелке "
мне бы кто помог,я на прошлой страницце код выожил и что не так

:facepalm: На слёзные призывы о помощи отвечаем:
Индикатор генерит твоё условие открытия несколько раз. Или анализ кривой.
Запусти сову в дебагере, пошагово пройдись по тексту и посмотри на значения, которые отвечают за открытие/закрытие.
Раньше дебагером пользовался? Зелёный круг с треугольником внутри, как кнопка "Play".
Обязательно перед запуском установи в строке с которой начинается твой интересный код, точку останова по клавише F9.

Ну и не забудь отписать, что обнаружил.
 
Последнее редактирование:

DIW35902345

Местный житель
Други ! Как реализовать алгоритм . Ситуация такая , бросаешь советник на график , при существующей тенденции , как сделать чтобы не открывал ордер сразу ( индикатор в советнике уже видит изменения ) - а только после ( к примеру ) изменения следующих показаний ( спустя какое-то время - количество тиков или цвета или Bool переменной ) ....?
 

ansol

Местный знаток
Други ! Как реализовать алгоритм . Ситуация такая , бросаешь советник на график , при существующей тенденции , как сделать чтобы не открывал ордер сразу ( индикатор в советнике уже видит изменения ) - а только после ( к примеру ) изменения следующих показаний ( спустя какое-то время - количество тиков или цвета или Bool переменной ) ....?

Не твой советник что-ли? оО
Можно нажать кнопочку "запретить советнику торговать" и отжать ее когда надо.
Если твой, то ваще неясно, что тебе надо. Напиши условие if(условие) действие или while(условие) действие.
 

DIW35902345

Местный житель
Не твой советник что-ли? оО
Можно нажать кнопочку "запретить советнику торговать" и отжать ее когда надо.
Если твой, то ваще неясно, что тебе надо. Напиши условие if(условие) действие или while(условие) действие.

Причем тут кнопка :facepalm: ...
Господи , вроде все изложил доходчиво ... Советник пишу сам , нужно предусмотреть чтобы после того как кинул его на график , он не отрыл ордер , ждал следующего сигнала ..
 

RoboMaks

Элитный участник
нужно предусмотреть чтобы после того как кинул его на график , он не отрыл ордер сразу, ждал следующего сигнала ..

А индюк к сову можно посмотреть ? Часто эта проблема из-за индюка, т.е. при включении в индюке надо обнулять буфера, с которых берётся сигнал на сов. ( В функции Init, например
SetIndexEmptyValue(0,0.0); SetIndexEmptyValue(1,0.0); )
 

vadimww

Активный участник
Скажите,почему отладка кнопка неактивная?что сделать?
 

DIW35902345

Местный житель
А индюк к сову можно посмотреть ? Часто эта проблема из-за индюка, т.е. при включении в индюке надо обнулять буфера, с которых берётся сигнал на сов. ( В функции Init, например
SetIndexEmptyValue(0,0.0); SetIndexEmptyValue(1,0.0); )

Могу отписаться в скайп ? по-моему так быстрей
 

ansol

Местный знаток
Причем тут кнопка :facepalm: ...
Господи , вроде все изложил доходчиво ... Советник пишу сам , нужно предусмотреть чтобы после того как кинул его на график , он не отрыл ордер , ждал следующего сигнала ..

Изложил "недоходчиво", т.к. если есть условие, то реализовать его в своем коде - не просто, а очень просто!
Ты что, свои ордера по магикномеру не видишь? С чего ради оно будет открываться повторно, если оно уже есть?
Чушь или криво написано
 

AlexeyVik

Программист mql4 mql5
А индюк к сову можно посмотреть ? Часто эта проблема из-за индюка, т.е. при включении в индюке надо обнулять буфера, с которых берётся сигнал на сов. ( В функции Init, например
SetIndexEmptyValue(0,0.0); SetIndexEmptyValue(1,0.0); )
Что за чушь???
SetIndexEmptyValue(0, 0.0); управляет отображением значений индикатора в окне данных, если значение равно 0 то в окне данных не отображается ничего, и полученном значении в iCustom() но никак не обнуляет массив буфера. Да и заниматься принудительным обнулением буферов - мартышкин труд. Они и так при активации индикатора пустые.
 

DIW35902345

Местный житель
Что за чушь???
SetIndexEmptyValue(0, 0.0); управляет отображением значений индикатора в окне данных, если значение равно 0 то в окне данных не отображается ничего, и полученном значении в iCustom() но никак не обнуляет массив буфера. Да и заниматься принудительным обнулением буферов - мартышкин труд. Они и так при активации индикатора пустые.

Парни, парни ! .... Пошел трудным ( имхо ) путем , но походу правильно..
Взял все значения переменных -которые получаю с индикатора , запомни их и сравнил "булевой" ( ну да все в условиях ) ...Все ,делать больше ничего не надо . первый сигнал не пройдет - условия сигнала инд. выполнятся - бул .переменная измениться , повторно - пойдет мимо цикла - ну как-то так !
Совет спрашивал ,чтобы ничего не усложнять ..... но с программистами пообщался - бегло , говорят вроде как-бы так и смысла нет изобретать велосипед
 
Последнее редактирование:

ansol

Местный знаток
Парни, парни ! .... Пошел трудным ( имхо ) путем , но походу правильно..
Взял все значения переменных -которые получаю с индикатора , запомни их и сравнил "булевой" ( ну да все в условиях ) ...Все ,делать больше ничего не надо . первый сигнал не пройдет - условия сигнала инд. выполнятся - бул .переменная измениться , повторно - пойдет мимо цикла - ну как-то так !
Совет спрашивал ,чтобы ничего не усложнять ..... но с программистами пообщался - бегло , говорят вроде как-бы так и смысла нет изобретать велосипед
Бред полный.
Надо не с программистами общаться, а с трейдерами, для начала. Ордер не может "повторно" открываться из-за каких-то сраных индикаторов! У ордера есть такие свойства как OrderMagicNumber и OrderOpenTime.
Программисты могут об этом не знать и посоветовать какую-то чушь, которая в условиях MQL4 не имеет смысла.
 

DIW35902345

Местный житель
Бред полный.
Надо не с программистами общаться, а с трейдерами, для начала. Ордер не может "повторно" открываться из-за каких-то сраных индикаторов! У ордера есть такие свойства как OrderMagicNumber и OrderOpenTime.
Программисты могут об этом не знать и посоветовать какую-то чушь, которая в условиях MQL4 не имеет смысла.

Причем тут трейдеры :facepalm: что за чушь !
Предлагаю закрыть тему
 

RoboMaks

Элитный участник
Что за чушь???
SetIndexEmptyValue(0, 0.0); управляет отображением значений индикатора в окне данных, если значение равно 0 то в окне данных не отображается ничего, и полученном значении в iCustom() но никак не обнуляет массив буфера. Да и заниматься принудительным обнулением буферов - мартышкин труд. Они и так при активации индикатора пустые.

Алексей, теоретически - да, чушь. Но почему-то практика иногда бывает и другой... И не раз уже такое приходится встречать. Не буду усердно здесь спорить о причинах - они мне и самому непонятны, но с таким уже приходилось сталкиваться :) При включении значение индюка даёт сначала больше 0 независимо от действительного показания и потом только сбрасывает в ноль. Отсюда и сигнал на открытие ордера...( если используем показание индюка >0 ) :)
 
Верх