Ясно. Проверяю расположение тенкана и кинджуна на первой и второй свече. Если есть сигнал, то ввожу алерт. Но хотелось бы, что бы это было один раз. Прошу помощи. Вот код.
Ясно. Проверяю расположение тенкана и кинджуна на первой и второй свече. Если есть сигнал, то ввожу алерт. Но хотелось бы, что бы это было один раз. Прошу помощи. Вот код.
На одном баре не более одного алерта:
//+------------------------------------------------------------------+//| main_Ichimoku.mq5 |//| Copyright 2015, MetaQuotes Software Corp. |//| https://www.mql5.com |//+------------------------------------------------------------------+#property copyright"Copyright 2015, MetaQuotes Software Corp."#property link"https://www.mql5.com"#property version"1.00"//+------------------------------------------------------------------+//| Объявим переменные для хранения настроек индикаторов |//+------------------------------------------------------------------+int IKHtenkansen=8;
int IKHkijunsen=24;
int IKHsenkouspanb=48;
//+------------------------------------------------------------------+//| Объявим переменные для хранения хэндлов индикаторов |//+------------------------------------------------------------------+int h_ich=INVALID_HANDLE;
//+------------------------------------------------------------------+//| Объявим необходимые массивы для хранения данных индикаторов |//+------------------------------------------------------------------+double ich1_buffer[];
double ich2_buffer[];
//+------------------------------------------------------------------+//| Объявим переменные для хранения сигналов индикаторов |//+------------------------------------------------------------------+int SignalICH;
//+------------------------------------------------------------------+//| Объявим переменную-флаг разрешения/запрета алерта |//+------------------------------------------------------------------+bool bool_alert=false;//+------------------------------------------------------------------+//| Expert tick function |//+------------------------------------------------------------------+voidOnTick()
{
staticdatetime prevtime=0;
datetime time_zero[];
CopyTime(Symbol(),Period(),0,1,time_zero);
if(!bool_alert)
if(prevtime!=time_zero[0])
bool_alert=true;
prevtime=time_zero[0];
SignalICH=TradeSignal_20();
Comment("SignalICH: "+(string)SignalICH);
}
//+------------------------------------------------------------------+//| Функция |//+------------------------------------------------------------------+int TradeSignal_20()
{
int sig=0;
if(h_ich==INVALID_HANDLE)
{
h_ich=iIchimoku(Symbol(),Period(),IKHtenkansen,IKHkijunsen,IKHsenkouspanb);
return(0);
}
else
{
if(CopyBuffer(h_ich,0,0,3,ich1_buffer)<2) return(0); // TENKANSEN_LINEif(CopyBuffer(h_ich,1,0,3,ich2_buffer)<2) return(0); // KIJUNSEN_LINEif(!ArraySetAsSeries(ich1_buffer,true)) return(0);
if(!ArraySetAsSeries(ich2_buffer,true)) return(0);
}
//--- проводим проверку условия и устанавливаем значение для sigif(ich1_buffer[1]>ich2_buffer[1]) sig=1;
elseif(ich1_buffer[1]<ich2_buffer[1]) sig=-1;
else sig=0;8
if(ich1_buffer[1]>ich2_buffer[1])
if(ich1_buffer[2]<ich2_buffer[2])
if(bool_alert)
{
Alert(Symbol()+": покупка");
//--- опускаем флаг
bool_alert=false;
}if(ich1_buffer[1]<ich2_buffer[1])
if(ich1_buffer[2]>ich2_buffer[2])
if(bool_alert)
{
Alert(Symbol()+": продажа");
//--- опускаем флаг
bool_alert=false;
}//--- возвращаем торговый сигналreturn (sig);
}
//+------------------------------------------------------------------+
Как сделать что бы советник после убыточной сделки пропускал 1 сигнал? ( очень хороший Z-стратегий )
В словах объясните, код сам в состоянии реализовать.
При убытке придавать определённое значение глобальной переменной терминала и сбрасывать его на ноль при первом сигнале. Торговая функция следит за этим значением и принимает решение, открывать новую сделку или нет.
То есть порядок работы примерно такой:
а) отслеживаем прибыль;
б) считаем сигналы, взводим флажок в случае убытка, если пока ещё не было другого сигнала на торговлю, сбрасываем флажок при поступлении первого сигнала после убытка;
в) смотрим флажок и принимаем решение, торговать или ждать.
ГПТ примениять удобнее, они сохраняются при авариях терминала, простые переменные в коде могут сброситься от любого чиха и советник будет работать с ошибками.
При убытке придавать определённое значение глобальной переменной терминала и сбрасывать его на ноль при первом сигнале. Торговая функция следит за этим значением и принимает решение, открывать новую сделку или нет.
То есть порядок работы примерно такой:
а) отслеживаем прибыль;
б) считаем сигналы, взводим флажок в случае убытка, если пока ещё не было другого сигнала на торговлю, сбрасываем флажок при поступлении первого сигнала после убытка;
в) смотрим флажок и принимаем решение, торговать или ждать.
ГПТ примениять удобнее, они сохраняются при авариях терминала, простые переменные в коде могут сброситься от любого чиха и советник будет работать с ошибками.
Все понял, кроме одного . Как сделать счётчик сигнала?
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Не понятно, что имели ввиду?
Имелось в виду следующее: Правильно вставляем код на форуме
Ясно. Проверяю расположение тенкана и кинджуна на первой и второй свече. Если есть сигнал, то ввожу алерт. Но хотелось бы, что бы это было один раз. Прошу помощи. Вот код.
Ясно. Проверяю расположение тенкана и кинджуна на первой и второй свече. Если есть сигнал, то ввожу алерт. Но хотелось бы, что бы это было один раз. Прошу помощи. Вот код.
На одном баре не более одного алерта:
На одном баре не более одного алерта:
Привет Всем!
Как сделать что бы советник после убыточной сделки пропускал 1 сигнал? ( очень хороший Z-стратегий )
В словах объясните, код сам в состоянии реализовать.
Привет Всем!
Как сделать что бы советник после убыточной сделки пропускал 1 сигнал? ( очень хороший Z-стратегий )
В словах объясните, код сам в состоянии реализовать.
При убытке придавать определённое значение глобальной переменной терминала и сбрасывать его на ноль при первом сигнале. Торговая функция следит за этим значением и принимает решение, открывать новую сделку или нет.
То есть порядок работы примерно такой:
а) отслеживаем прибыль;
б) считаем сигналы, взводим флажок в случае убытка, если пока ещё не было другого сигнала на торговлю, сбрасываем флажок при поступлении первого сигнала после убытка;
в) смотрим флажок и принимаем решение, торговать или ждать.
ГПТ примениять удобнее, они сохраняются при авариях терминала, простые переменные в коде могут сброситься от любого чиха и советник будет работать с ошибками.
При убытке придавать определённое значение глобальной переменной терминала и сбрасывать его на ноль при первом сигнале. Торговая функция следит за этим значением и принимает решение, открывать новую сделку или нет.
То есть порядок работы примерно такой:
а) отслеживаем прибыль;
б) считаем сигналы, взводим флажок в случае убытка, если пока ещё не было другого сигнала на торговлю, сбрасываем флажок при поступлении первого сигнала после убытка;
в) смотрим флажок и принимаем решение, торговать или ждать.
ГПТ примениять удобнее, они сохраняются при авариях терминала, простые переменные в коде могут сброситься от любого чиха и советник будет работать с ошибками.
Все понял, кроме одного . Как сделать счётчик сигнала?
плюется
sl = NormalizeDouble(sl,MarketInfo(symbol,MODE_DIGITS));possible loss of data due to type conversion .mq4 1697 29
тип Добле у СЛ.