프랙탈 브레이크 아웃 멈춤 - 페이지 3

 

나는 OrderModify 및 OrderSelect 기능 모두에서 매개변수를 전환하여 아무 소용이 없었습니다...

흐름이 논리적으로 보이며 모든 매개변수를 다시 확인했습니다.


이것은 백테스트 중에 발생하지만 중요하지 않습니다.

 
//----------------------------------------------//
//-----------------EXITING ORDERS---------------//


for ( int i= OrdersTotal ()- 1 ; i>= 0 ;i--)
   {
     if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)== false )   break ;
     if (OrderMagicNumber()!=MagicNumber || OrderSymbol() != Symbol ()) continue ;
     double SL=OrderStopLoss();
     bool    result;
     int     error;
     //Different OrderTypes
     if (OrderType()==OP_BUY)
       {
         if (BreakEven > 0 ) 
          {
           if (Bid - OrderOpenPrice() >= Point * BreakEven * mypoint)   //make input for BreakEven    StopLoss)
              {                                                                   //and don't forget mypoint !!!
               if (OrderStopLoss() < OrderOpenPrice()) 
                 {
                  SL = OrderOpenPrice()+ Point ;
                 }
              }
          }
       }
     if (OrderType()==OP_SELL)              
       {
         //For you to do
          
              
               
                
               
                  
                   
             
             
       }
     if (SL != OrderStopLoss()) result=OrderModify(OrderTicket(),OrderOpenPrice(),SL,OrderTakeProfit(), 0 , CLR_NONE );
         if (result!=TRUE) { error= GetLastError (); Print ( "ModifyError = " ,OrderTicket(), "   " ,error);}       
   }

코딩을 읽기 쉽게 만들기

자신의 글과 차이점을 확인하세요. {{{{{{{{{{{{{{ }}}}}}}}}}}}}

 
ZacharyRC :

여전히 어려움이 있습니다. 이유를 알아보기 위해 오류를 수행했습니다.


저널 보고:

1) 오류 4051=잘못된 매개변수

2) 주문 수정을 위한 유효하지 않은 티켓

 //----------------------------------------------//
//-----------------EXITING ORDERS---------------//


for ( int i= OrdersTotal ()- 1 ; i>= 0 ;i--)
   {
   if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)== false )   break ;


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

   if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)== true ) Print ( GetLastError (),i);
   if (OrderType()==OP_BUY)
      {
       if (Move.BE && StopLoss > 0 ) 
         {
         if (Bid - OrderOpenPrice() >= Point * StopLoss)
            {
             if (OrderStopLoss() < OrderOpenPrice() + Point * MoveStopTo) 
               {
               OrderModify(OrderTicket(),OrderOpenPrice(), OrderOpenPrice() + Point * MoveStopTo, OrderTakeProfit(), 0 , Red);
               Print ( "Cant Modify Order" + GetLastError (),i);
               }
            } 
         }
      }
   else
      {
       if (Move.BE && StopLoss > 0 ) 
         {
         if (OrderOpenPrice() - Ask >= Point * StopLoss)
            {
             if (OrderStopLoss() > OrderOpenPrice() - Point * MoveStopTo)
               {
               OrderModify(OrderTicket(),OrderOpenPrice(), OrderOpenPrice() - Point * MoveStopTo, OrderTakeProfit(), 0 , Red);
               Print ( "Cant Modify Order" + GetLastError (),i);
               }
            }
         }
      }
   }

매수 의 경우 어떻게 SL이 공개 가격 보다 높을 수 있습니까? OrderOpenPrice() + 포인트 * MoveStopTo

 
deVries :

for BUY 수정 후 OrderOpenPrice()보다 높은 OrderStopLoss()를 가질 수 있고 성공하고 거래가 이익
ㅋㅋㅋ . . . 웁스 <빨간 얼굴 스마일>
 
RaptorUK :
ㅋㅋㅋ . . . 웁스 <빨간 얼굴 스마일>


부끄러움 조심해 내 게시물 삭제
 
ZacharyRC :

여전히 어려움이 있습니다. 이유를 알아보기 위해 오류를 수행했습니다.


저널 보고:

1) 오류 4051=잘못된 매개변수

2) 주문 수정을 위한 유효하지 않은 티켓

네, 오류 메시지가 가짜일 수 있습니다. . .

 if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)== true ) Print ( GetLastError (),i);


               OrderModify(OrderTicket(),OrderOpenPrice(), OrderOpenPrice() - Point * MoveStopTo, OrderTakeProfit(), 0 , Red);
               Print ( "Cant Modify Order" + GetLastError (),i);

OrderSelect()가 작동하는 경우 GetLastError()를 호출하는 이유는 무엇입니까? 오류가 표시되면 OrderSelect()로 인한 것이 아닙니다.

OrderModify()의 경우와 동일한 경우 수정이 작동하면 여전히 GetLastError()를 호출하고 있습니다. 그 이유는 무엇입니까? 함수가 실패하는 경우에만 호출합니다. . .

             if (OrderStopLoss() > OrderOpenPrice() - Point * MoveStopTo)
               {
               if (!OrderModify(OrderTicket(),OrderOpenPrice(), OrderOpenPrice() - Point * MoveStopTo, OrderTakeProfit(), 0 , Red))
                   Print ( "Cant Modify Order, error# " + GetLastError (), " index " , i);
 
deVries :

부끄러움 조심해 내 게시물 삭제
아니요, 저도 사람이고 실수도 해요. 사람들이 그걸 알아도 상관없어요 :-)
 

아하하하하하하하하하하하하하하하하하 두 가지 모두 많은 의미가 있습니다.


{{{{}}}}}-훨씬 더 쉽습니다!

오류는 함수 가 실패하는 경우에만 호출되어야 합니다.


두 분께 감사드리며 주말 잘 보내시기 바랍니다.

 
RaptorUK :

매수 의 경우 어떻게 SL이 공개 가격보다 높을 수 있습니까? OrderOpenPrice() + 포인트 * MoveStopTo


SL은 주문보다 낮습니다.



판매 섹션을 참조하지 않는 것이 확실합니까?

 else {
 
     if (Move.BE && StopLoss > 0 ) {
               if (OrderOpenPrice() - Ask >= Point * StopLoss)
                {
                   if (OrderStopLoss() > OrderOpenPrice() - Point * MoveStopTo)
                   {
                  OrderModify(OrderTicket(),OrderOpenPrice(), OrderOpenPrice() - Point * MoveStopTo, OrderTakeProfit(), 0 , Red);
                   Print ( "Cant Modify Order" + GetLastError (),i);
}
 
RaptorUK :
ㅋㅋㅋ . . . 웁스 <빨간 얼굴 스마일>

제 실수였습니다.