Пишу первый код.Торгует прибыльно,но мало. Добрался до магических номеров.В тестере Alert( ) после OrdersTotal( ) возвращает только нули.Так и должно быть или я что-то закрутил?Ведь без этих показателей,грош цена всей системе!

 
Пишу первый код.Торгует прибыльно,но мало. Добрался до магических номеров.В тестере Alert( ) после OrdersTotal( ) возвращает только нули.Так и должно быть или я что-то закрутил?Ведь без этих показателей,грош цена всей системе!
 

значит что либо условие не правильное, либо нет открытых ордеров.

вот переборо по ордерам:

/----
int order_type, order_magic;
int b_orders, s_orders, bs_orders, ss_orders;
string order_symbol;
for (int i=1; i<=OrdersTotal(); i++)                    //Цикл по всем ордерам,..     
      {                                                  //отражённым в терминале      
      if(OrderSelect(i-1,SELECT_BY_POS)==true)           //Если есть следующий        
         {                                               // Здесь должен выполняться анализ характеристик ордеров   
          //--------------------
         order_type=OrderType();
         order_magic=OrderMagicNumber();
         order_symbol=OrderSymbol();
            if(order_type==OP_BUYSTOP && order_magic==magic && order_symbol==Symbol())             // выбран ордер buy stop
               {bs_orders++;}
            if(order_type==OP_SELLSTOP && order_magic==magic && order_symbol==Symbol())             // выбран ордер sell stop
               {ss_orders++;}
            if(order_type==OP_BUY && order_magic==magic && order_symbol==Symbol())             // выбран ордер buy 
               {b_orders++;}
            if(order_type==OP_SELL && order_magic==magic && order_symbol==Symbol())             // выбран ордер sell 
               {s_orders++;}
          //--------------------
         }     
       } 
 
dmmikl86 >>:

значит что либо условие не правильное, либо нет открытых ордеров.

вот переборо по ордерам:


но сделки он совершае

dmmikl86 >>:

значит что либо условие не правильное, либо нет открытых ордеров.

вот переборо по ордерам:



у меня 4-ре условия и каждому я хочю присвоить свой mn . это будет работать?

 
и потом будете опрделять ордер по мажику? если да, тогда будет.
 
определять через мажик:
if(order_magic==magic_if_1)
    {
     order_if_1++;
    }
.
.
.
.
 и т.д.
 
dmmikl86 >>:
и потом будете опрделять ордер по мажику? если да, тогда будет.

т.е. если у меня 3-и открытых ордера и созрело 4-е условие как впереборе программы свашим циклом мне объявить что уменя 3 ордера с такими mn

 
redok >>:

т.е. если у меня 3-и открытых ордера и созрело 4-е условие как впереборе программы свашим циклом мне объявить что уменя 3 ордера с такими mn

спасибо завтра попробую и напишу вышли уменя показатели а название программы всегда в квадратных скобках?

 

допустим у вас есть mn1, mn2, mn3, mn4 - каждый мажик своему условию. тогда для того чтобы получить количтсво ордеров (открытых и отложенных в том числе), нужно

получишь количество ордеров открытых по условиям

int order_magic;
int total_orders;

for (int i=1; i<=OrdersTotal(); i++)                    //Цикл по всем ордерам,..     
      {                                                  //отражённым в терминале      
      if(OrderSelect(i-1,SELECT_BY_POS)==true)           //Если есть следующий        
         {                                               // Здесь должен выполняться анализ характеристик ордеров   
          //--------------------
         
         order_magic=OrderMagicNumber();
         
            if(order_magic==mn1)            
               {total_orders++;}
            if(order_magic==mn2)             
               {total_orders++;}
            if(order_magic==mn3)            
               {total_orders++;}
            if(order_magic==mn4)           
               {total_orders++;}
          //--------------------
         }     
       } 
 
redok >>:

спасибо завтра попробую и напишу вышли уменя показатели а название программы всегда в квадратных скобках?

чето я совсе это предложение не понял?

 
dmmikl86 >>:
допустим у вас есть mn1, mn2, mn3, mn4 - каждый мажик своему условию. тогда для того чтобы получить количтсво ордеров (открытых и отложенных в том числе), нужно

int d;
   
  for(d=0;d<=sos;d++)
  {
  OrderSelect(d,SELECT_BY_POS);
  ident_mn=OrderMagicNumber();
  Alert("mnmn=",ident_mn);
  if(ident_mn==mag_num_usl1_s)
  ord_usl1_s=true;
  else
  ord_usl1_s=false;
  Alert("iden_usl1=",ord_usl1_s);
  if(ident_mn==mag_num_usl2_s)
  ord_usl2_s=true;
  else
  ord_usl2_s=false;
  Alert("iden_usl2=",ord_usl2_s);
  if(ident_mn==mag_num_usl1_b)
  ord_usl1_b=true;
  else
  ord_usl1_b=false;
  Alert("iden_usl1=",ord_usl1_b);
  if(ident_mn==mag_num_usl2_b)
  ord_usl2_b=true;
  else
  ord_usl2_b=false;
  Alert("iden_usl1=",ord_usl2_b);            а тут есть ошибка?
  }



 

вставляйте код через кнопку SRC...

а где ваше

if(OrderSelect(i-1,SELECT_BY_POS)==true)           //Если есть следующий        
         {                                               // Здесь должен выполняться анализ характеристик ордеров   
          //--------------------
         
         вот тут нужно переберать. .... а у вас просто сразу закрываеться.... после OrderSelect(d,SELECT_BY_POS); и даже не производиться перебор ордеров
          //--------------------
         }     
    
Причина обращения: