Советники: N seconds N points

 

N seconds N points:

Советник отслеживает позиции по всем символам и по всем magic'ам. Если позиция открыта уже "Waiting for seconds" и её прибыль "Take Profit" пунктов, закрывает позиции. Если прибыль не достигла "Take Profit" пунктов - тогда переносит уровень take profit.


Входные параметры

  • Waiting for seconds - сколько секунд должно пройти с момента открытия позиции;
  • Take Profit - количество пунктов тейк профит.

Автор: Vladimir Karputov

 

Спасибо, то, что нужно.

Только не понятен момент "Если прибыль не достигла "Take Profit" пунктов - тогда переносит уровень take profit". Куда именно он переносит TP?

Есть ли версия для MT4?

 
Valeriy Belozertsev:

Спасибо, то, что нужно.

Только не понятен момент "Если прибыль не достигла "Take Profit" пунктов - тогда переносит уровень take profit". Куда именно он переносит TP?

Есть ли версия для MT4?


Адепты старого терминала лишены поддержки. В наказание за лень.

 
Valeriy Belozertsev:

Только не понятен момент "Если прибыль не достигла "Take Profit" пунктов - тогда переносит уровень take profit". Куда именно он переносит TP?

Это тайна
 
Vladimir Karputov:

Адепты старого терминала лишены поддержки. В наказание за лень.

Резануло.

 
Vladimir Karputov:

Адепты старого терминала лишены поддержки. В наказание за лень.


"Наш ответ Чемберлену" (с)

Без поддержки "адептов МТ4" ваши кода так и останутся лучшими примерами "как лучше не делать"

void OnTimer()
  {
//---
   for(int i=PositionsTotal()-1;i>=0;i--)
      if(m_position.SelectByIndex(i)) // selects the position by index for further access to its properties
         if(TimeCurrent()-m_position.Time()>InpSeconds)
           {
            double ExtTakeProfit=0;
            double m_adjusted_point;               // point value adjusted for 3 or 5 points
            if(!InitTrade(m_position.Symbol(),m_position.Magic(),m_adjusted_point,ExtTakeProfit))
               continue;
...
  }
//+------------------------------------------------------------------+
//| Init trade object                                                |
//+------------------------------------------------------------------+
bool InitTrade(const string symbol,const ulong magic,double &adjusted_point,double &ext_take_profit)
  {
...
//--- tuning for 3 or 5 digits
   int digits_adjust=1;
   if(m_symbol.Digits()==3 || m_symbol.Digits()==5)
      digits_adjust=10;
   adjusted_point=m_symbol.Point()*digits_adjust;

   ext_take_profit=InpTakeProfit*adjusted_point;
//---
   return(true);
  }


Значность котировок (5-знак) известны уже на этапе OnInit() и их не нужно выполнять и выполнять на анализе каждой позиции

 
Andrey F. Zelinsky:

"Наш ответ Чемберлену" (с)

Без поддержки "адептов МТ4" ваши кода так и останутся лучшими примерами "как лучше не делать"


Значность котировок (5-знак) известны уже на этапе OnInit() и их не нужно выполнять и выполнять на анализе каждой позиции


Обычно я так и делаю: один раз определяю разрядность в OnInit(), но в данном советнике возможен вариант, когда в терминале открыты позиции по совершенно разным символам. Поэтому для каждой позиции приходится подстраховываться и определять разрядность.

 
Vladimir Karputov:

... но в данном советнике возможен вариант, когда в терминале открыты позиции по совершенно разным символам. Поэтому для каждой позиции приходится подстраховываться и определять разрядность.


Вы встречали хоть один торговый счёт, где значность котировок (5-знак и 4-знак) были разными для разных символов?

 
Andrey F. Zelinsky:

Значность котировок (5-знак) известны уже на этапе OnInit() и их не нужно выполнять и выполнять на анализе каждой позиции

Так и не смог понять, для чего подобные конструкции многие используют (неоднократно попадались) - смотрят point/digits, чтобы что-то с ними сделать дополнительно.

Смысл должен быть, но осознать не получилось, почему все же пишут так. Ведь от кого-то это пошло.

 
Andrey F. Zelinsky:

Вы встречали хоть один торговый счёт, где значность котировок (5-знак и 4-знак) были разными для разных символов?


Полно примеров (только нужно поднять шоры с глаз и смотреть ширше и ширее). Подожду когда осознаете :)

 
fxsaber:

Так и не смог понять, для чего подобные конструкции многие используют (неоднократно попадались) - смотрят point/digits, чтобы что-то с ними сделать дополнительно.

Смысл должен быть, но осознать не получилось, почему все же пишут так. Ведь от кого-то это пошло.


логика там простая -- 1) чтобы одни и теже настройки подходили для разной значности и 2) многим просто привычней 4-значность.

просто одни используют это корректно и ненавязчиво, а другие безобразно.