EA birden fazla çiftte çalışmayacak, yardıma ihtiyacınız var - sayfa 3

 
for ( int i= 0 ;i< OrdersTotal ();i++)
      {
         if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES )== false ) break ;
         if ( OrderMagicNumber ()==MagicNumber && OrderSymbol ()== Symbol ()) continue ;
         //---Check Order Type
         if ( OrderType ()== OP_BUY )
         {
           if (fastma < slowma)
           {
             if ( OrderClose ( OrderTicket (),Lots, OrderClosePrice (), 10 , clrNONE ))
               Print ( "Order Closed : " , OrderClosePrice ());
             else
               Print ( "Error Closing order " , GetLastError ());
              
           }
          
         }
       if ( OrderType ()== OP_SELL )
        {
           if (fastma > slowma)
          {
             if ( OrderClose ( OrderTicket (),Lots, OrderClosePrice (), 10 , clrNONE ))
               Print ( "Order Closed : " , OrderClosePrice ());
             else
               Print ( "Error Closing Order : " , GetLastError ());
              
          }
          
        }
      }
     Sleep ( 300000 );
     return ( 0 );
}
Ea'm emirleri açıp kapamayı bırakmıyor, kodumdaki bir şeyi görmezden geliyor gibi görünüyor, emir kapatma fonksiyonumda bir sorun mu var?
 
Matt_Townsend : bir sorun mu var?

Evet - emirleri kapatırken geri saymanız gerekir:

for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--)
Nedenini buradan okuyabilirsiniz
 
honest_knave :

Evet - emirleri kapatırken geri saymanız gerekir:

for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--)
Nedenini buradan okuyabilirsiniz
Hala hemen hemen işlemleri açıp kapatıyor, kodda başka bir sorun var mı?
 
Matt_Townsend : kodda başka bir yanlışlık var mı?
Değişkenlerinizi yazdırın ve nedenini öğrenin.
 
if(OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol()) continue;

Neden devam ettin?

if(OrderMagicNumber() != MagicNumber || OrderSymbol() != Symbol()) continue;


daha mantıklı olur
 
Keith Watford :
if(OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol()) continue;

Neden devam ettin?

if(OrderMagicNumber() != MagicNumber || OrderSymbol() != Symbol()) continue;


daha mantıklı olur
Kodda || varsa siparişleri kapatmaz, ancak orada != ile daha iyi çalışır
 
//+---------------------------------------------+
//|System start                                 |
//+---------------------------------------------+
int start()
{


     double fastma, slowma;
     int     ticket, total;
     //---define Ma's
    
    fastma = iMA ( NULL , 0 , 5 , 0 , MODE_EMA , PRICE_CLOSE , 0 );
    slowma = iMA ( NULL , 0 , 8 , 0 , MODE_SMA , PRICE_CLOSE , 0 );
    
    total = OrdersTotal ();
     //---Start operations
    
     if (total < 1 )
    {
       if (fastma > slowma)
        {
         ticket = OrderSend ( Symbol (), OP_BUY ,Lots, Ask , 10 , 0 , 0 , "" , 0 , 0 ,Blue);
         if (ticket > 0 )
         {
             if ( OrderSelect (ticket, SELECT_BY_TICKET , MODE_TRADES ))
             Print ( "Buy order opened : " , OrderOpenPrice ());
         }
         else
           Print ( "Error opening order : " , GetLastError ());
           return ( 0 );
       }
       if (fastma < slowma)
       {
         ticket = OrderSend ( Symbol (), OP_SELL ,Lots, Bid , 10 , 0 , 0 , "" , 0 , 0 ,Red);
         if (ticket > 0 )
         {
             if ( OrderSelect (ticket, SELECT_BY_TICKET , MODE_TRADES ))
             Print ( "Sell order opened : " , OrderOpenPrice ());
         }
         else
           Print ( "Error opening order : " , GetLastError ());
           return ( 0 );
       }
       return ( 0 );
    }
  
      
     for ( int i= OrdersTotal ()- 1 ;i>= 0 ;i--)
      {
         if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES )== false ) break ;
         if ( OrderMagicNumber ()!=MagicNumber && OrderSymbol ()!= Symbol ()) continue ;
         //---Check Order Type
         if ( OrderType ()== OP_BUY )
         {
           if (fastma < slowma)
           {
             if ( OrderClose ( OrderTicket (),Lots, OrderClosePrice (), 10 , clrNONE ))
               Print ( "Order Closed : " , OrderClosePrice ());
             else
               Print ( "Error Closing order " , GetLastError ());
           }
          
         }
       if ( OrderType ()== OP_SELL )
        {
           if (fastma > slowma)
          {
             if ( OrderClose ( OrderTicket (),Lots, OrderClosePrice (), 10 , clrNONE ))
               Print ( "Order Closed : " , OrderClosePrice ());
             else
               Print ( "Error Closing Order : " , GetLastError ());
          }
          
        }
      }
     Sleep ( 300000 );
     return ( 0 );
}
İşte kodum şu anda olduğu gibi, hangi çifte ayarladıysam işlem açabilir, ancak rastgele açık işlemlere sahip bazılarına sahip. Kodu, üzerine koyduğum çift üzerinde esasen bağımsız olarak çalışacak şekilde almaya çalışıyorum, ancak ne yazık ki kod, diğer tüm işlemler kapanana kadar herhangi bir işlem açmayacak ve ardından tüm çiftlerde işlemleri açmıyor. üzerine kuruludur. Programın bunu yapması zaten var mı, Benim istediğim şekilde alıp satıyor.
 
sen kodla
   for ( int i= OrdersTotal ()- 1 ;i>= 0 ;i--)
      {
         if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES )== false ) break ;
         if ( OrderMagicNumber ()!=MagicNumber || OrderSymbol ()!= Symbol ()) continue ;
         //---Check Order Type
         if ( OrderType ()== OP_BUY )
Basitleştirilmiş
   for ( int i= OrdersTotal ()- 1 ;i>= 0 ;i--) if (
     OrderSelect (i, SELECT_BY_POS )
  && OrderMagicNumber () == MagicNumber
  && OrderSymbol ()      == Symbol ()
  ){
     //---Check Order Type
     if ( OrderType ()== OP_BUY )
 
whroeder1 :
sen kodla
   for ( int i= OrdersTotal ()- 1 ;i>= 0 ;i--)
      {
         if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES )== false ) break ;
         if ( OrderMagicNumber ()!=MagicNumber && OrderSymbol ()!= Symbol ()) continue ;
         //---Check Order Type
         if ( OrderType ()== OP_BUY )
Basitleştirilmiş
   for ( int i= OrdersTotal ()- 1 ;i>= 0 ;i--) if (
     OrderSelect (i, SELECT_BY_POS )
  && OrderMagicNumber () == MagicNumber
  && OrderSymbol ()      == Symbol ()
  ){
     //---Check Order Type
     if ( OrderType ()== OP_BUY )

Her grafik hala bağımsız çalışmıyor, yapabileceğim başka bir şey var mı?

Ve bu şekilde kodlanmış, artık işlemleri kapatmıyor.

 
Keith Watford 2016.12.14 03:10 | 122.155.43.228 yasak TR

    total = OrdersTotal ();
     //---Start operations
    
     if (total <= 1 )
açık siparişler arasında dolaşın ve yalnızca EA'nın sihirli numarasına ve grafik sembolüne sahip işlemleri sayın