Выбор нужной позиции - страница 3

 
int total = 0;


for(int i=PositionsTotal()-1;i>=0;i--)
{
     if( _Symbol != PositionGetSymbol(i) ) continue;
     {
     if( PositionGetInteger(POSITION_MAGIC) != MAGIC ) continue;
             {   
              
               if((ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY || (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_SELL)
                total++;
                }
                }
                }
//---
   return(total);
  }
По тикету тот же результат
 
Vitaly Stepanov:
if((ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY || (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_SELL)

Это условие всегда будет выполняться.

 
Vitaly Stepanov:
По тикету тот же результат
int total = 0;

for(int i=PositionsTotal()-1;i>=0;i--)
{
     if( _Symbol != PositionGetSymbol(i) ) continue;
     if( PositionGetInteger(POSITION_MAGIC) != MAGIC ) continue;
     if((ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE)!=POSITION_TYPE_BUY && (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE)!=POSITION_TYPE_SELL) continue;
     total++;
//---
}
return(total);

Почитайте чтоб и это понять.
Оператор продолжения continue

 

Пример рабочего кода для модификации тейк-профита у всех позиций по определенной паре

CPositionInfo  m_position;  // объявляем экземпляры классов
CTrade  trade;
//--------------------------------------------------            
for(int j=0; j<PositionsTotal(); j++)
    {
      if(m_position.SelectByIndex(j))
         {
             ulong tick = m_position.Ticket();
             if(m_position.Magic()==Magic && m_position.Symbol() == pair && m_position.TakeProfit() != NormalizeDouble(take,SymbolInfoInteger(pair,SYMBOL_DIGITS)))
                {
                  trade.PositionModify(tick,sl,NormalizeDouble(take,_Digits));
                 }
          }
     }
 
Evgeniy Zhdan:

Пример рабочего кода для модификации тейк-профита у всех позиций по определенной паре

Неверно:

  • во первых создание на каждом тике каждый раз по-новой объекты m_position и trade - это нужно сделать один раз (делается в "шапке" эксперта)
  • объект trade не инициализирован 
 
Vladimir Karputov:

Неверно:

  • во первых создание на каждом тике каждый раз по-новой объекты m_position и trade - это нужно сделать один раз (делается в "шапке" эксперта)
  • объект trade не инициализирован 
Ясно дело, что в шапке. Кому надо, поймёт