Вопрос. Верна ли реализация: Если ордер с указанным символом присутствует, то символ равен true.

 

Подскажите, верно ли написан код:

int total=OrdersTotal();
// если ордер с указанным символом присутствует, то символ равен true.
for(int i=total-1;i>=0;i--)
  {
   OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
   if(OrderSymbol()=="USDCHF" && OrderMagicNumber()==MAGIC)bool USDCHF = true;
  }
Интересует выяснить, есть ли среди открытыл позиций ордер по USDCHF?
 
ExpertTrader:

Подскажите, верно ли написан код:Интересует выяснить, есть ли среди открытыл позиций ордер по USDCHF?

Вполне, true будет, если 1) ордер по USDCHF среди открытых присутствует 2) Его MagicNumber = MAGIC

 

Спасибо! Еще вопрос.

В следующем ниже коде я получу значение profit?

   for(cnt=0;cnt<total;cnt++)
     {
      OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
      if(OrderType()<=OP_SELL && OrderSymbol()==Symbol())
      double profit = OrderProfit();
     }
 
ExpertTrader:

Спасибо! Еще вопрос.

В следующем ниже коде я получу значение profit?

Это что, "проверка на вшивость" ? Вы ведь сами всё прекрасно знаете!
 

Да не обижайтесь, я просто этим делом пол года не занимался, проверяю на вшивость себя.

 
Лучше почитайте новую статью: 'Можно ли прогнозировать рынок Форекс? Как создать собственную торговую стратегию?' , во где разводят по-полной ! Даже представить себе не мог, что подобное можно увидеть на страницах данного форума.
 
Ага, только что читал.
 
ExpertTrader:

Подскажите, верно ли написан код:

И первый и второй код неправильный.
Объявлять переменную надо перед циклами.

Чтоб она была объявлена в любом случае, даже если условия не выполнятся.

bool USDCHF = false;
int total=OrdersTotal();
// если ордер с указанным символом присутствует, то символ равен true.
for(int i=total-1;i>=0;i--)
  {
   if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
   if(OrderSymbol()=="USDCHF" && OrderMagicNumber()==MAGIC) USDCHF = true;
  }
Причина обращения: