EA는 여러 쌍에서 실행되지 않으므로 도움이 필요합니다. - 페이지 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 );
}
My Ea는 주문 열기 및 닫기를 중지하지 않습니다. 내 코드에서 무언가를 무시하는 것 같습니다. 내 닫기 주문 기능 에 문제가 있습니까?
 
Matt_Townsend : 내 주문 마감 기능 에 문제가 있습니까?

예 - 주문을 마감할 때 카운트다운해야 합니다.

for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--)
여기에서 이유를 읽을 수 있습니다.
 
honest_knave :

예 - 주문을 마감할 때 카운트다운해야 합니다.

for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--)
여기에서 이유를 읽을 수 있습니다.
그것은 여전히 거의 즉시 거래를 시작하고 닫는 것뿐입니다. 코드에 다른 문제가 있습니까?
 
Matt_Townsend : 코드에 다른 문제가 있습니까?
변수를 인쇄하고 그 이유를 찾으십시오.
 
if(OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol()) continue;

왜 계속 하시겠습니까?

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


더 의미가있을 것입니다
 
Keith Watford :
if(OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol()) continue;

왜 계속 하시겠습니까?

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


더 의미가있을 것입니다
코드에 ||가 있으면 주문을 닫지 않지만 거기에 !=가 있으면 더 잘 작동합니다.
 
//+---------------------------------------------+
//|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 );
}
여기 내 코드가 현재 상태로 있습니다. 내가 설정한 모든 쌍에서 거래를 열 수 있지만 무작위로 열린 거래가 있는 특정 코드가 있습니다. 나는 코드를 기본적으로 어떤 쌍에 넣든 독립적으로 실행하려고 노력했지만 불행히도 코드는 다른 모든 거래가 닫힐 때까지 거래를 열지 않고 모든 쌍에 대한 거래를 열지 않습니다. 설정되어 있습니다. 어쨌든 프로그램이 그렇게 하도록 할 수 있습니까? 그것은 내가 원하는 방식으로 사고 팔 수 있습니다.
 
당신은 코딩
   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 )
쉽게 한
   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 :
당신은 코딩
   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 )
쉽게 한
   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 )

각 차트가 여전히 독립적으로 실행되고 있지 않습니다. 내가 할 수 있는 다른 작업이 있습니까?

그리고 코딩된 방식은 더 이상 거래를 마감하지 않습니다.

 
키스 왓포드 2016.12.14 03:10 | 122.155.43.228 금지 KO

    total = OrdersTotal ();
     //---Start operations
    
     if (total <= 1 )
열린 주문을 반복하고 EA의 매직 넘버와 차트 기호가 있는 거래만 계산합니다.