10핍 간격으로 주문을 엽니다. - 페이지 4

 
     //datetime lastTime  = 0;
     double highest_open_price= 0 ;
     //int      lastTicket = -1; // None open.
     int       highest_Ticket = - 1 ; // None open.
     for ( int pos = OrdersTotal ()- 1 ; pos >= 0 ; pos--) if (
         OrderSelect ( 0 , SELECT_BY_POS,MODE_TRADES)                 // Only my orders w/
    &&  OrderMagicNumber()  == 0            // my magic number
    &&  OrderSymbol()       == Symbol ()                 // and my pair.
     //&&  OrderOpenTime()     >=  lastTime
    &&  ?????????()     >=  highest_open_price
    ){
      highest_open_price= ????????();
      highest_Ticket = OrderTicket();
    }

내가 말했듯이-간단한 대체

 
GumRai :

내가 말했듯이-간단한 대체



GumRai 감사합니다: 하지만 제 추가 질문은 ????????()가 OrderOpenTime()이라고 믿습니다.

이제 당신이 일찍 지적한 것처럼 내 거래 논리와 함께 작동하도록 하려면 어떻게 해야 합니까?




      
rsi1= iRSI ( NULL , 0 , 14 , PRICE_CLOSE , 1 );
rsi2= iRSI ( NULL , 0 , 14 , PRICE_CLOSE , 0 ); 
     
 if (rsi2> 70 && Ask > High[ 1 ] + ( 10 *pips2dbl) )
  {
      Opn_S= true ;
     } 
     else 
   if (rsi2> 70 && Ask < High[ 1 ] + ( 10 *pips2dbl)) 
      {
      Opn_S= false ;
     }

 Here you give value to Opn_S, but you do nothing with it







   lastTicket= OrderSend ( Symbol (),OP_BUY,mylot(),Ask, 0 , 0 , 0 , "My Comment" ,magic, 0 ,Green);

여기에는 주문을 여는 조건이 없으며 lastTicket의 값을 덮어씁니다.

귀하의 코드에는 논리가 없습니다. 서로 완전히 관련이 없는 3개의 코드 섹션일 뿐입니다.

==================================================== ==================================================== =========================




헉

내가 묻는 이유는 내가 원하는 결과를 얻었지만 문제는 한 줄에 여러 주문을 여는 것입니다. 위의 결과 사진을 참조하십시오

// Orders accounting 
   datetime lastTime  = 0;
    double highest_open_price=0;
    lastTicket = -1; // None open.
    int      highest_Ticket = -1; // None open.
    for(int pos = OrdersTotal()-1; pos >= 0 ; pos--) if (
        OrderSelect(0, SELECT_BY_POS,MODE_TRADES)                 // Only my orders w/
    &&  OrderMagicNumber()  == 0           // my magic number
    &&  OrderSymbol()       == Symbol()                 // and my pair.
    &&  OrderOpenTime()     >=  lastTime
    &&  OrderOpenTime()     >=  highest_open_price
    ){
      highest_open_price= OrderOpenTime();
      highest_Ticket = OrderTicket();
    }





        
 if(Bid > High[1] && OrderOpenTime()     > highest_open_price )
  {
      Opn_S=true;
     }   
CurrentTime= Time[1];





if(Opn_S==true)               // No opened orders +
        {                                       // criterion for opening Sell
         RefreshRates();                   // Refresh rates     
         lastTicket =OrderSend(Symbol(),OP_SELL,mylot(),Bid,0,0,0,"My Comment",magic,0,Red);
         if( lastTicket >0)
      
           {
            Comment("Opened order Sell ","#",lastTicket);
            return(0);                                 // Exit start()
           }
         if(Fun_Error(GetLastError())==1) // Processing errors
            continue;                             // Retrying
         return(0);                                   // Exit start()
        }
      break;                                    // Exit while
     }
//--------------------------------------------------------------- 9 --------------------------------------
   return(0);                                       // Exit start()
  }


 

코드가 서로 관련이 없는 3개의 섹션이므로 논리가 없습니다.

다른 EA에서 코드 섹션을 복사하여 붙여넣었다는 결론만 내릴 수 있습니다.

" ?????????()가 OrderOpenTime()이라고 생각합니다."

루프가 무엇을 하는지 모르고 작성하지 않았음을 증명합니다.

 

GumRai 제발 이것은 내 전체 코드는 주로 판매만 엽니다. 당신이 말했듯이이 모든 연결 끊김은 내 ea가 여러 주문을 열 수 있도록 허용하고 이전에 반복되는 작업의 결과로 발생했습니다.


{
   int cnt;
   int NumTrades;   // Number of buy and sell trades in this symbol
   
   NumTrades = 0 ;
   for (cnt = OrdersTotal ()- 1 ; cnt >= 0 ; cnt--)
     {
     if ( OrderSelect (cnt, SELECT_BY_POS, MODE_TRADES)== true )
       if ( OrderSymbol() != Symbol ()) continue ;
       if ( OrderMagicNumber() != magic)   continue ;
      
       if (OrderType() == OP_BUY )  NumTrades++;
       if (OrderType() == OP_SELL ) NumTrades++;
             
     }
    
  }




then getting my ea to work with my loop by just adding  if(NumTrades==0 && Opn_B==true) // No new orders +

this ensures my ea to open just 1 order on a giving chart but now i want to expand my ea to open more than one order i remove  NumTrades==0 

to let the ea open order unrestricted with my ordersend as little i know now i know we can loop through order for so many reason and when it comes
to the looping for highest order on the chart i dont know that well,but can do it if example is giving. please bear with my little coding knowledge and put me through

below is my ea please assist me 
 
귀하의 응답을 기다리십시오
 

EA가 제대로 작성되지 않았는지, 불완전한지 또는 코드 조각이 제거 된 작동 중인 EA인지 확실하지 않습니다.

주로 매도를 연다고 하는데, 절대 매수를 열 수 없을 것 같습니다.

구매를 여는 주요 조건은

 if (Opn_B== true )

코드에서 Opn_B가 표시되는 유일한 다른 위치는

Opn_B= false

따라서 사실로 설정할 수 있는 곳은 없습니다.

덧붙여서

   while ( true ) // Orders closing loop

주문만 여는 루프 - 훌륭한 논평.

   double highest_open_price= 0 ;
   int     highest_Ticket=- 1 ;
   for ( int pos= OrdersTotal ()- 1 ; pos>= 0 ; pos--)
       if ( OrderSelect ( 0 ,SELECT_BY_POS,MODE_TRADES) // Only my orders w/
         && OrderMagicNumber()== 0            // my magic number
         && OrderSymbol()== Symbol () // and my pair.
         && OrderOpenPrice()>=highest_open_price)
        {
         highest_open_price=OrderOpenPrice();
         highest_Ticket=OrderTicket();
        }
 
GumRai :

EA가 제대로 작성되지 않았는지, 불완전한지 또는 코드 조각이 제거된 작동 중인 EA인지 확실하지 않습니다.

주로 매도를 연다고 하는데, 절대 매수를 열 수 없을 것 같습니다.

구매를 여는 주요 조건은

코드에서 Opn_B가 표시되는 유일한 다른 위치는

따라서 사실로 설정할 수 있는 곳은 없습니다.

덧붙여서

주문만 여는 루프 - 훌륭한 논평.

내 코드를 검토하고 권장 사항 및 수정 사항을 찾아 주셔서 감사합니다.

GumRai : 그래서 많은 사람들이 그것을 이해하지 못할 수도 있지만 나는 이해하고 당신이 코드를 매우 잘 이해하기 때문에 이해할 수 있다고 말한 이유입니다.

또한 나는 ea를 판매 전용으로 공개한 이유가 있습니다. 이 요청에 대한 내 문제는 내 ea를 거칠게 만들었지 만 솔루션을 얻었을 때 모든 것을 다시 재구성 할 것입니다.

ea를 살펴보고 조건을 닫고 구매 조건을 제거 하면 ea가 불완전해 보입니다.

.왜 이 조건을 충족하는지 확인하고 싶기 때문입니다......주문 시작

현재 차트 기호에서 가장 높은 오픈 가격 이며, 매수/오픈 시 10핍이 매도인 경우 10핍 위를 엽니다.

다른 조건이 적용되기 전에 코드가 올바른지 테스트하는 동안 백테스트가 거래를 마감하는 것을 원하지 않기 때문에 닫기 조건을 제거합니다.

해결책에 도달하면 적절한 폐쇄 조건 으로 내 ea를 다시 정리할 것입니다.




 

글쎄, 나는 당신에게 가장 높은 공개 가격 으로 주문을 찾는 코드를 주었다.

이제 가격이 이 값보다 10핍 이상 높은지 확인하고 그렇다면 다른 주문을 여는 간단한 문제입니다.

 

GumRai : 내가 했던 방식이 백테스트 에서 작동하지 않았기 때문에 어떻게 ea에 루프를 배치할 수 있습니까? ......

내가 어떻게 했지? 나는 EA 에서 내 조건 중 일부를 작성하기 위해 가장 높은 가격과 가장 높은 티켓 을 사용했지만 백 테스트에서 원하는 결과를 얻지 못했습니다.

아마도 뭔가를 놓치고 있습니까?


   double highest_open_price= 0 ;
   int     highest_Ticket=- 1 ;
   for ( int pos= OrdersTotal ()- 1 ; pos>= 0 ; pos--)
       if ( OrderSelect ( 0 ,SELECT_BY_POS,MODE_TRADES) // Only my orders w/
         && OrderMagicNumber()== 0            // my magic number
         && OrderSymbol()== Symbol () // and my pair.
         && OrderOpenPrice()>=highest_open_price)
        {
         highest_open_price=OrderOpenPrice();
         highest_Ticket=OrderTicket();
        }
 
예, 코드 표시가 누락되었습니다. 당신이 한 일/하지 않은 일을 어떻게 알 수 있습니까?