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

 
haron312 :

안녕하세요! 주문을 수정하려고 할 때 테스터에서 발생하는 오류를 처리하도록 도와주세요(손익분기점으로 이전): SL 대신 OrderOpenPrice() 함수를 넣었고 테스터에서는 error1 오류가 발생했습니다(에 따라 문서에서 이는 매개변수 함수로 변경되지 않은 값을 전달하려는 시도가 있음을 의미합니다). 코드 첨부할게요! 미리 감사합니다!

void DeleteOrderFunction2() //2번째 보류를 삭제하고 특정일 저녁에 2번째 주문을 손익분기점으로 옮기는 함수

{

부울 플래그 = 거짓;

if (FlagDeleteSecondOrder2 == true)

{

if(DayOfWeek() == DAYOFWEEK && // 찢어진 요일인 경우

Hour() == 22 //저녁이면

)

{

if(BuyCount() == 1 && //미결제 구매 주문 이 있는 경우

SellStopCount() == 1 // 그리고 보류 중인 판매가 있습니다.

)

{

for( int i = 0; i < OrdersTotal(); i++) // 주문 루프

{

OrderSelectX(i, SELECT_BY_POS, MODE_TRADES);

스위치(주문 유형())

{

케이스 OP_BUY: if(OrderProfit() > 0 &&

입찰 > 주문OpenPrice()

)

{

OrderModifyX(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,Arrow_Color);

플래그=참;

}

부서지다;

경우 OP_SELLSTOP: if(flag==true)

{

OrderDeleteX(OrderTicket(), Arrow_Color);

}

부서지다;

}

}

}

if(SellCount() == 1 && //오픈 매도 주문이 있는 경우

BuyStopCount() == 1 // 그리고 구매 지연이 있습니다.

)

{ Print("입니다!!!!");

for( int i = 0; i < OrdersTotal(); i++) // 주문 루프

{

OrderSelectX(i, SELECT_BY_POS, MODE_TRADES);

스위치(주문 유형())

{

케이스 OP_SELL: if (OrderProfit() > 0 &&

Ask<OrderOpenPrice()

)

{

OrderModifyX(OrderTicket(), OrderOpenPrice(), OrderOpenPrice(),OrderTakeProfit(),0, Arrow_Color);

플래그 = true;Print("플래그 =, 플래그);

}

부서지다;

경우 OP_BUYSTOP: if(플래그 == true)

{

Print("플래그 =", 플래그);

OrderDeleteX(OrderTicket(), Arrow_Color);

}

부서지다;

}

}

}


}


}

}

주문 중 OP_BUY가 먼저 발생한다는 가정에서 진행하여 수정하고 flag = true로 설정하고 발생하면 보류 중인 항목이 제거됩니다. 그리고 연기가 더 일찍 발생하면 어떻게되는지보십시오 ...
 

지표를 스크립트로 변환하는 것을 도와주세요!

 double buf_1[];
double buf_2[];
//+------------------------------------------------------------------+
//| Функция инициализации, запускается один раз                      |
//+------------------------------------------------------------------+
int init() 
  {
   SetIndexBuffer ( 0 ,buf_1);
   SetIndexBuffer ( 1 ,buf_2);

   SetIndexStyle ( 0 , DRAW_ARROW , STYLE_SOLID , 1 );
   SetIndexStyle ( 1 , DRAW_ARROW , STYLE_SOLID , 1 );
   SetIndexArrow ( 0 , 233 );
   SetIndexArrow ( 1 , 234 );

   SetIndexEmptyValue ( 0 , 0.0 );
   SetIndexEmptyValue ( 1 , 0.0 );
   
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Основная Функция, запускается на каждом тике                     |
//+------------------------------------------------------------------+
int start() 
  {
   if ( Bars <= 100 ) return ( 0 );
   int ExtCountedBars = IndicatorCounted ();
   if (ExtCountedBars < 0 ) return (- 1 );
   if (ExtCountedBars > 0 ) ExtCountedBars--;
   for ( int i= Bars -ExtCountedBars- 1 ; i>= 0 ; i--)
     { 
       if ( High [i+ 2 ] == High [i+ 3 ])
       bool DOWN   = High [i+ 1 ]== High [i+ 2 ]; 
                                               
                    
       if ( Low [i+ 2 ] == Low [i+ 3 ])             
     bool UP =   Low [i+ 1 ]== Low [i+ 2 ] ;
      
       
       if (UP)   buf_1[i+ 1 ] = Low [i+ 1 ]- 3 * Point ;
       if (DOWN) buf_2[i+ 1 ] = High [i+ 1 ]+ 3 * Point ;
     }
   return ( 0 );
 }
   //  ---- end

High [i+ 2 ] 및 Low [i+ 1 ] 대신에 i High(NULL,PERIOD_H1, [i+ 2 ]) 및 i Low (NULL,PERIOD_H1, [i+ 2 ])로 작성하면 시간 프레임을 제어할 수 있습니까? 원칙?

Hi가 SELL이면 Loi가 BUY!

 
Rewerpool :

지표를 스크립트로 변환하는 것을 도와주세요!

High [i+ 2 ] 및 Low [i+ 1 ] 대신에 i High(NULL,PERIOD_H1, [i+ 2 ]) 및 i Low (NULL,PERIOD_H1, [i+ 2 ])로 작성하면 시간 프레임을 제어할 수 있습니까? 원칙?

Hi가 SELL이면 Loi가 BUY!

세 경기는 오래 기다려야 한다

 
STARIJ :

세 경기는 오래 기다려야 한다

나는 스캘퍼가 아닙니다. 기다릴게요. 4자리로 정규화 가능

 

mql5에는 열린 포지션이 있습니다. 이 포지션의 모든 거래를 찾아 시장에 의해 개설되었는지 아니면 보류 중인 주문 에 의해 개설되었는지 확인합니다.

mql4에서 공개 주문이 시장 또는 보류 주문에 의해 열렸는지, 그리고 그 티켓을 확인하는 방법은 무엇입니까? 보류 주문이 트리거되면 변경됩니까?

 
Rewerpool : 나는 스캘퍼가 아닙니다. 기다릴게요. 4자리로 정규화 가능

예, 결과가 약합니다 ...

5개의 최고점과 일치하고 가격이 올라갑니다.

 
Pavel Kolchin :

mql5에는 열린 포지션이 있습니다. 이 포지션의 모든 거래를 찾아 시장에 의해 개설되었는지 아니면 보류 중인 주문 에 의해 개설되었는지 확인합니다.

mql4에서 공개 주문이 시장 또는 보류 주문에 의해 열렸는지, 그리고 그 티켓을 확인하는 방법은 무엇입니까? 보류 주문이 트리거되면 변경됩니까?

그들에게 다른 마법을 줘

 
STARIJ :

그들에게 다른 마법을 줘

사용자가 주문을 열 때 열 때 유형을 확인해야 합니다.

 
문제는 "더 세게 로드"하는 것입니다. 각 특정 InChartEvent 이벤트에 대해 표시기의 핸들을 재정의하거나 미리 OnInit에서 배열 형태로 가능한 모든 핸들을 정의합니까?
 
Roman Sharanov :
문제는 "더 세게 로드"하는 것입니다. 각 특정 InChartEvent 이벤트에 대해 표시기의 핸들을 재정의하거나 미리 OnInit에서 배열 형태로 가능한 모든 핸들을 정의합니까?
다양한.