Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1547

 
SGarnov:

Количество стопов подряд по валютной паре.

Советник стоит на нескольких валютных парах и в историю попадает несколько стопов и в разной последовательности, чтобы в истории разбираться советник изначально ордера метит ID но в истории их не находит,я думал что ОrderMagikNumber() будет их искать. Может из за того что в истории стопы с разных валютных пар советник перестает "видеть" их?я на одной паре не пробовал работать советником, да и толк от этого никакой тогда будет.

ещё раз исходник выставить? Ему только и нужно что поправить "поиск стоповых сделок из истории и заставить его прибавить к вновь выставляемому тейку".

А если стопов по паре подряд больше двух, как возобновляешь работу советника по этой паре?

И кстати ОrderMagicNumber() задает советник и ордера выставленные вручную без магика
 
MakarFX:

А если стопов по паре подряд больше двух, как возобновляешь работу советника по этой паре?

новым отложенником, который сам выставляю.
 
SGarnov:
новым отложенником
, который сам выставляю.
А к нему надо прибавлять пункты предыдущих убытков или новый цикл подсчета убытков?
 
MakarFX:
А к нему надо прибавлять пункты предыдущих убытков или новый цикл подсчета убытков?

нет. не надо предыдущие прибавлять. только с началом работы советника.

советник всегда будет реализовывать только 4 варианта развития событий если коэффициент Stop Loss равен 2.

А) тейк  работа советника прекращается

Б) тейк + 1 стоп  работа советника прекращается

В) тейк + 2 стопа  работа советника прекращается

Г) 3 стопа работа советника прекращается

 
SGarnov:

Добрый день. Помогите с советником. По стратегии если сработал стоп, то к следующему выставленному тейку советник должен его прибавить (количество пунктов)
из истории по ID, но он не прибавляет почему то.

Что не так в коде?

чтобы отрабатывало с минимальной прибылью, до некоторой величины достаточно добавлять спред и к стопу и к тейку. Точнее сумму арифм.ряда * спред (сколько спредов проиграно, на столько и увеличены). Только не растить диапазон сильно больше дневного.

лучший вариант - в OrderMagic или Comment сохранять начальное значение стопа в пунктах или кол-во неудач подряд. А вообще советник должен и сам всё помнить про свои ордера/позиции и лишний раз не переспрашивать терминал(и сервер)

 
Maxim Kuznetsov:

чтобы отрабатывало с минимальной прибылью, до некоторой величины достаточно добавлять спред и к стопу и к тейку. Точнее сумму арифм.ряда * спред (сколько спредов проиграно, на столько и увеличены). Только не растить диапазон сильно больше дневного.

лучший вариант - в OrderMagic или Comment сохранять начальное значение стопа в пунктах или кол-во неудач подряд. А вообще советник должен и сам всё помнить про свои ордера/позиции и лишний раз не переспрашивать терминал(и сервер)

так вот он почему то не помнит свои ордера и не видит их в истории. по коду должен а по факту не видит. сможете чем помочь? код исходный выставлен ранее
 

Прошу помощи у сообщества...
Как правильно объявить и создать глобальные объекты MQL5?

Если делать так:

int OnInit()
{
   CIsNewBar* NB_M1=new CIsNewBar(_Symbol,PERIOD_M1);  // Эта строка потом будет в цикле для разных символов
}

void OnTick()
{
    if (NB_M1.IsNewBar())  // (1) Если появился новый бар M1
        {....}
    ......
}

то компилятор ругается на строку в OnTick():  'NB_M1' - undeclared identifier, что логично, т.к. в OnInit() создается локальная переменная.

Если перед OnInit() вставить глобальное объявление:

CIsNewBar* NB_M1;

то компилируется без ошибок и эксперт работает. Вроде получается, что объект создается два раза, при глобальном объявлении и в OnInit()...
Но в предупреждениях компилятора есть такое : 

declaration of 'NB_M1' hides global variable -> на строку в OnInit()

see previous declaration of 'NB_M1'

Значит ли это, что в OnInit() создаётся локальная (в пределах функции) переменная, которая скрывает глобальную переменную с таким же именем ?
И если это так, как эту локальную переменную "видит" другая функция  - OnTick() ?




 
SGarnov:

нет. не надо предыдущие прибавлять. только с началом работы советника.

советник всегда будет реализовывать только 4 варианта развития событий если коэффициент Stop Loss равен 2.

А) тейк

Б) тейк + 1 стоп

В) тейк + 2 стопа

Г) 3 стопа

работа советника прекращается

Ясно, попробую.
 

Пока я не знаю к кому данное сообщение адресовано. Не могу создать непрозрачную панель. Функции OBJ_BITMAP_LABEL, OBJ_RECTANGLE_LABEL созданы для украшения либо создания новых объектов. Но они не имеют возможности не прозрачности. Возможно я не до конца изучил язык или это недочет создателей. Через панель управления проступают объекты которые созданы на переднем плане. По другому можно сделать но это нагрузит процик. Если кто знает как сделать подскажите.

 
MakarFX:
Ясно, попробую.

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

Причина обращения: