MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 1652

 

안녕하세요!

특정 조건이 발생했을 때 TakeProfit 및 StopLoss를 지우기 위해 간단한 Expert Advisor에 주문을 등록(수정)하는 것이 더 쉬운 방법은 무엇입니까? ), 주문 카운팅을 사용하는 것으로 알고 있는데 새로 등록해야 하나요? 일반적으로 무관심하지 않을 것으로 기대합니다. 고마워.

 
Порт-моне тв # :

안녕하세요!

특정 조건이 발생했을 때 TakeProfit 및 StopLoss를 지우기 위해 간단한 Expert Advisor에 주문을 등록(수정)하는 것이 더 쉬운 방법은 무엇입니까? ), 주문 카운팅을 사용하는 것으로 알고 있는데 새로 등록해야 하나요? 일반적으로 무관심하지 않을 것으로 기대합니다. 고마워.

OrderModify(OrderTicket(), OrderOpenPrice(), 0 , 0 , 0 );
 
Ivan Butko # :

불행히도 그러한 코드를 사용하는 방법을 이해하는 것은 어렵습니다.


구매 주문을 열 때 플래그를 1로 설정하고 닫을 때 플래그를 0으로 설정하고 시작 조건에 후자를 추가했습니다. 롤 안함)
이상하게도 사실 규칙이 어겼습니다. 플래그==0인 경우 엽니다. 그리고 1시에도 여전히 촛불 하나에 열었습니다.

당신이 그것을 어떻게했는지 보여줍니다.
 
Alexey Viktorov # :

왜 그렇게 어렵습니까?

똑똑하지 마세요. 질문은 그것에 관한 것이 아니었습니다.

 
MakarFX # :
당신이 그것을 어떻게했는지 보여줍니다.

작동하는 것 같습니다, 저는 이렇게 변경했습니다. 이제 판매를 시도하고 서로 독립적일 수 있는지 확인하십시오.

 int Buy= 0 ,
    Sell= 0 ;

void OnTick ( void )
  {
     double 
    ma= iMA ( NULL , 0 , 20 , 0 , MODE_SMA , PRICE_CLOSE , 0 ),
    ma2= iMA ( NULL , 0 , 80 , 0 , MODE_SMA , PRICE_CLOSE , 0 );

     if (ma>ma2 && Buy== 0 ) 
      { 
         OrderSend ( Symbol (), OP_BUY, lots, Ask, 3 , Bid - SL * Point , 0 , NULL , 888 , 0 , Blue);
        Buy= 1 ; 
      }
      
   for ( int i= 0 ;i< OrdersTotal ();i++)
     {
       if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)== false ) break ;
       if (OrderMagicNumber()!= 888 || OrderSymbol()!= Symbol ()) continue ;
       //--- check order type 
       if (OrderType()==OP_BUY)
        {
         if (perceptron_B() < Porog_B)
           {
             if (!OrderClose(OrderTicket(),OrderLots(),Bid, 3 ,White))
               Print ( "OrderClose error " , GetLastError ());
            Buy= 1 ;
           }
           
         break ;
        }

UPD
휴, 디자인은 효과가 있었습니다) 셀에 대해서도 동일한 작업을 수행했습니다. 이제 셀이 서로 독립적으로 열릴 수 있고 다른 논리가 수반됩니다.

 
Ivan Butko # :

작동하는 것 같습니다, 저는 이렇게 변경했습니다. 이제 판매를 시도하고 서로 독립적일 수 있는지 확인하십시오.

UPD
휴, 디자인은 효과가 있었습니다) 셀에 대해서도 동일한 작업을 수행했습니다. 이제 셀이 서로 독립적으로 열릴 수 있고 다른 논리가 수반됩니다.

아마도 컴파일 할 때 맹세합니다)))

 
MakarFX # :

아마도 컴파일 할 때 맹세합니다)))

정확히! 약간 " 'OrderSend'의 반환 값을 확인해야 합니다. AI(2).mq4 34 9 "

하지만 효과가 있는 것 같습니다.)
 
Ivan Butko # :

정확히! 약간 " 'OrderSend'의 반환 값을 확인해야 합니다. AI(2).mq4 34 9 "

하지만 효과가 있는 것 같습니다.)

이런 식으로 하세요

     if (ma>ma2 && Buy== 0 ) 
      { 
         if ( OrderSend ( Symbol (), OP_BUY, lots, Ask, 3 , Bid - SL * Point , 0 , NULL , 888 , 0 , Blue))
        Buy= 1 ; 
      }
 
MakarFX # :

이런 식으로 하세요

고맙습니다!

 
MakarFX # :

감사합니다!