Помогите пожалуйста советом или решением. Пытаюсь чтоб советник при "поглощении" предыдущим баром ПРЕДпредыдущий выдавал сигнал.
1 - если поглощение произошло вверх 2 - если поглощение произошло вниз.
Вроде все до нельзя элементарно, сравниваем цены открытия и закрытия и вуаля...так НЕТ ЖЕ. Сигналы выдает как попало.Хотя при наведении мыши на предыдущие 2 бара явно видно что последний поглощает предпоследний.
Ковырять тему сил нету, да вроде и вариантов то немного но тем не менее не работает никак и все.Очень надеюсь на помощь, да и заранее благодарен
Вот текст:
int start() { //---- if (SShort()==1) Alert("1"); } if (SLong()==1) Alert("2"); } //---- return(0); } //+------------------------------------------------------------------+ int SShort() {int MS=0; if (Open[1]>Close[2] && Close[1]<Open[2] && Open[1]>Close[1] && Open[2]<Close[2]) MS=1; return(MS); } //+------------------------------------------------------------------+ int SLong() { int ML=0; if(Open[1]<Close[2] && Close[1]>Open[2] && Open[1]<Close[1] && Open[2]>Close[2]) ML=1; return(ML); }
Подскажите новичку. Как прописать в советнике линию индикатора, не положение относительно другой линии < & >, а её движение вверх или вниз. Я понимаю что одна переменная должна показывать подбъем, а другая отвечает за падение.Пользуюсь учебником, недогоняю,голова уже квадратнаяю.
Подскажите новичку. Как прописать в советнике линию индикатора, не положение относительно другой линии < & >, а её движение вверх или вниз. Я понимаю что одна переменная должна показывать подбъем, а другая отвечает за падение.Пользуюсь учебником, недогоняю,голова уже квадратнаяю.
Как вариант ;)
Пишете функцию, которая определяет, вверх или вниз идет линия, и в зависимости от этого возвращает +1 или -1.
Вызываете эту функцию в советнике и получаете нужный ответ.
//+----------------------------------------------------------------------------+//| Функция определения тренда |//| Параметры: |//| line0 - значение линии на нулевом (расчетном) баре |//| line1 - значение линии на первом (предыдущем) баре |//| Возвращаемое значение |//| +1 - линия идет вверх, тренд положительный | //| -1 - линия идет вниз, тренд отрицательный | //| 0 - линия горизонтальна,тренд нулевой | //+----------------------------------------------------------------------------+int GetTrend(double line0,double line1){int res=0;if(line0>line1)
res=1;if(line0<line1)
res=-1;
return(res);
}int start(){//---на примере МА //---получение значение линии МА на нулевом и первои баре double ma0=iMA(NULL,0,MAperiod,0,MODE_EMA,PRICE_CLOSE,0);double ma1=iMA(NULL,0,MAperiod,0,MODE_EMA,PRICE_CLOSE,1);//---расчет трендаif(GetTrend(ma0,ma1)>0)Comment(" Линия идет вверх, тренд положительный!");if(GetTrend(ma0,ma1)<0)Comment(" Линия идет вниз, тренд отрицательный!");return(0)}
Пишете функцию, которая определяет, вверх или вниз идет линия, и в зависимости от этого возвращает +1 или -1.
Вызываете эту функцию в советнике и получаете нужный ответ.
Спасибо!
А можно ли линии задать имя. Индикатор "ADX", Линия ADX -(ADXZ -положительная, ADXz-отрицательная) Линия+DI-(pDIR-положительная, pDIr-отрицательная), Линия -DI (mDIB-положительная,mDIb- отрицательная) т.е. по две переменные на линию, уже для последующего месторасположения. К примеру( ADXz && pDIR >mDIb)
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
To xrust:
))
а если я не использую magic number - что вместо него написать?
или == 0, или уберите эту строку нафиг
1, что такое советник ?
2, как им пользоваться,
3, он что реально сам торгует ? елм да то как им пользоваться,
4, Если его запускать через тестр стратегий, как разшифровать то что там выдается (график.... и т д.) и как использовать в торговли.
Ответьте пожалуйста на эти 4 вопроса =(
Здравствуйте!
Помогите пожалуйста советом или решением. Пытаюсь чтоб советник при "поглощении" предыдущим баром ПРЕДпредыдущий выдавал сигнал.
1 - если поглощение произошло вверх2 - если поглощение произошло вниз.
Вроде все до нельзя элементарно, сравниваем цены открытия и закрытия и вуаля...так НЕТ ЖЕ. Сигналы выдает как попало.Хотя при наведении мыши на предыдущие 2 бара явно видно что последний поглощает предпоследний.
Ковырять тему сил нету, да вроде и вариантов то немного но тем не менее не работает никак и все.Очень надеюсь на помощь, да и заранее благодарен
Вот текст:
int start(){
//----
if (SShort()==1)
Alert("1");
}
if (SLong()==1)
Alert("2");
}
//----
return(0);
}
//+------------------------------------------------------------------+
int SShort()
{int MS=0;
if (Open[1]>Close[2] && Close[1]<Open[2] && Open[1]>Close[1] && Open[2]<Close[2])
MS=1;
return(MS);
}
//+------------------------------------------------------------------+
int SLong()
{
int ML=0;
if(Open[1]<Close[2] && Close[1]>Open[2] && Open[1]<Close[1] && Open[2]>Close[2])
ML=1;
return(ML);
}
//+------------------------------------------------------------------+
На картинке принцип определения поглощения. Заранее благодарен.
з.ы. Тени случайно попали в белый бар. Имеется ввиду только поглощение тела свечи.
замени на
ну и во втором случае тожеПрошу простить покорнейше, но совершенно непонятно что имелось ввиду под этой стркой....??????????
или == 0, или уберите эту строку нафиг
еще один вопрос - помогите плиз)
как определить после выделения ордера истории его тип (был ли закрыт ордер Buy или Sell)?
Здравствуйте!
Подскажите новичку. Как прописать в советнике линию индикатора, не положение относительно другой линии < & >, а её движение вверх или вниз. Я понимаю что одна переменная должна показывать подбъем, а другая отвечает за падение.Пользуюсь учебником, недогоняю,голова уже квадратнаяю.
Заранее благодарен.
Здравствуйте!
Подскажите новичку. Как прописать в советнике линию индикатора, не положение относительно другой линии < & >, а её движение вверх или вниз. Я понимаю что одна переменная должна показывать подбъем, а другая отвечает за падение.Пользуюсь учебником, недогоняю,голова уже квадратнаяю.
Как вариант ;)
Пишете функцию, которая определяет, вверх или вниз идет линия, и в зависимости от этого возвращает +1 или -1.
Вызываете эту функцию в советнике и получаете нужный ответ.
Как вариант: :))
Пишете функцию, которая определяет, вверх или вниз идет линия, и в зависимости от этого возвращает +1 или -1.
Вызываете эту функцию в советнике и получаете нужный ответ.
Спасибо!
А можно ли линии задать имя. Индикатор "ADX", Линия ADX -(ADXZ -положительная, ADXz-отрицательная) Линия+DI-(pDIR-положительная, pDIr-отрицательная), Линия -DI (mDIB-положительная,mDIb- отрицательная) т.е. по две переменные на линию, уже для последующего месторасположения. К примеру( ADXz && pDIR >mDIb)