Советники: DoubleMA Crossover EA

 

DoubleMA Crossover EA:

Trailing, отложенные ордера. Сигналы от двух индикаторов (Moving Average, MA). Торговля только в определённый промежуток суток.

DoubleMA Crossover EA

Автор: Vladimir Karputov

 
Добрый день. Подскажите, пожалуйста, за что отвечает параметр BreakOutLevel. И как реализована система трейллина , в ней три уровня? Не могу разобраться. Заранее благодарен.
 
GRS:
Добрый день. Подскажите, пожалуйста, за что отвечает параметр BreakOutLevel. И как реализована система трейллина , в ней три уровня? Не могу разобраться. Заранее благодарен.

Знаете, для меня тоже все кода представляются собой загадку :)

Когда появляются вопросы нужно начинать изучать код.

 
Vladimir Karputov:

Знаете, для меня тоже все кода представляются собой загадку :)

Когда появляются вопросы нужно начинать изучать код.

:))) Подскажите, хотя бы по BreakOutLevel. С трейллингом сам разберусь (эх, не прокатила халява).

 
BreakOutLevel- Start trade after breakout is reached- слова вроде понятные, а смысл ускользает.
 
GRS:

:))) Подскажите, хотя бы по BreakOutLevel. С трейллингом сам разберусь (эх, не прокатила халява).

input ushort               BreakOutLevel     = 45;          // Start trade after breakout is reached

Дословно: "Начать торговлю после прорыва" столько-то пунктов.

 
Vladimir Karputov:

Дословно: "Начать торговлю после прорыва" столько-то пунктов.

Владимир, я перевел эту фразу, что означает " после прорыва"?

 
GRS:

Владимир, я перевел эту фразу, что означает " после прорыва"?

"Прорыв" подразумевает, что есть черта (уровень) и кто-то и что-то прорвался (перешагнул) эту черту (уровень).

 

Посмотрел код.

"BreakOutLevel" - это отступ от текущей цены до цены выставляемого отложенного ордера.

Например выставляем "SellStop" по цене "ShortTradeRate", которая равна текущая цена минус отступ ("BreakOutLevel" умножается на значение одного пункта инструмента, например на EURUSD это что-то вроде 45*0.00001)

void OpenSellStopOrder()
  {
   double myStopLoss=0,myTakeProfit=0;
   double ShortTradeRate=m_symbol.Bid()-BreakOutLevel*m_adjusted_point;
   if(StopLoss>0)
      myStopLoss=ShortTradeRate+StopLoss*m_adjusted_point;
   if(TakeProfit>0)
      myTakeProfit=ShortTradeRate-TakeProfit*m_adjusted_point;
   if(m_trade.SellStop(lotMM,ShortTradeRate,NULL,
      m_symbol.NormalizePrice(myStopLoss),
      m_symbol.NormalizePrice(myTakeProfit)))
     {
 
Спасибо большое, теперь разобрался.
 
GRS:
Спасибо большое, теперь разобрался.

Не всегда удаётся адекватно переименовать названия переменных - вот поэтому такие казусы.

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