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

 

내가 명확하게 묻지 않았을 수도 있습니다.

M1 기간의 차트에 있기 때문에 M5 기간에 "Stochastic" 표시선 이 이제 55 수준 이상인 경우 버퍼를 채우고 싶습니다.

input ENUM_TIMEFRAMES    TimeFrame2  =   PERIOD_M5 ; //ЭТО ВО ВНЕШНИХ Н
////////////////////////////////////////////////
       for ( int i=limit; i>= 0 ; i--) {
       int bar_sto2_0= iBarShift ( Symbol (),TimeFrame2, iTime ( Symbol (),TimeFrame2,i));
       int bar_sto2_1= iBarShift ( Symbol (),TimeFrame2, iTime ( Symbol (),TimeFrame2,i+ 1 ));
    
       double sto2_0= iStochastic ( Symbol (),TimeFrame2,kperiod2,dperiod2,slowing2, MODE_LWMA , STO_CLOSECLOSE , MODE_MAIN ,bar_sto2_0);
       double sto2_1= iStochastic ( Symbol (),TimeFrame2,kperiod2,dperiod2,slowing2, MODE_LWMA , STO_CLOSECLOSE , MODE_MAIN ,bar_sto2_1);
    
       if (sto2_0> 55.0 )
       {
      BufferUP[i]=low[i]-distance*MyPoint;
       }
      
       if (sto2_0< 44.0 )
       {
      BufferDN[i]=high[i]+distance*MyPoint;
       }

       Comment (sto2_0);
       }

해설에서는 현재 값이 M5부터 맞지만, 화살표의 역사에 따르면 상태에 따라 카오스가 아닙니다.

무엇이 잘못될 수 있습니까?

M5를 사용하는 " 지하실 " 확률론에서

신호에 없는 동그라미 화살표



자옥
 

저는 동시에 2개의 중지 주문(하나는 판매용, 다른 하나는 구매용)을 지정하는 Expert Advisor를 작성하고 있습니다.

하나의 Stop Order가 트리거되면 두 번째(반대)가 삭제되는 조건을 규정하는 방법은 무엇입니까?

고맙습니다.

 
RichLux :

저는 동시에 2개의 중지 주문(하나는 판매용, 다른 하나는 구매용)을 지정하는 Expert Advisor를 작성하고 있습니다.

하나의 Stop Order가 트리거되면 두 번째(반대)가 삭제되는 조건을 규정하는 방법은 무엇입니까?

고맙습니다.

조건은 간단합니다. 오더가 발생하면 시장에 포지션이 나타나며 추적해야 하는 것은 포지션의 출현이며, 존재하는 경우 반대 주문을 삭제합니다.

이것은 생각할 코드입니다)

void DeleteOppositeOrders( string sy= "" , int op=- 1 , int mn=- 1 , color cl= clrOliveDrab ) {
   bool b, s;
   switch (op) {
     case OP_BUY : b=ExistPositions(sy, OP_BUY , mn); break ;
     case OP_SELL : s=ExistPositions(sy, OP_SELL , mn); break ;
  }

   if (b) {
    DeleteOrders(sy, OP_SELLLIMIT , mn, cl);
    DeleteOrders(sy, OP_SELLSTOP , mn, cl);
  }
   if (s) {
    DeleteOrders(sy, OP_BUYLIMIT , mn, cl);
    DeleteOrders(sy, OP_BUYSTOP , mn, cl);
}}
 
Vitaly Muzichenko, 내가 아는 한, 지금도 ExistPositions 및 DeleteOrders 기능을 등록해야 합니다.
 
RichLux :
Vitaly Muzichenko, 내가 아는 한, 지금도 ExistPositions 및 DeleteOrders 기능을 등록해야 합니다.
네 필요합니다.
 
RichLux :
Vitaly Muzichenko, 내가 아는 한, 지금도 ExistPositions 및 DeleteOrders 기능을 등록해야 합니다.
당신은 쓸 수 없습니다, 그들은 모두 준비
 
Vitaly Muzichenko :
당신은 쓸 수 없습니다, 그들은 모두 준비

음 ... 교육 목적으로 매우 유용합니다 ...

실제로 각 기능에서 사이클을 구동하는 것은 매우 비용이 많이 듭니다.

 
Artyom Trishkin :

음 ... 교육 목적으로 매우 유용합니다 ...

실제로 각 기능에서 사이클을 구동하는 것은 매우 비용이 많이 듭니다.

그래서 바로 붙이지는 않고 '반대편 닫기' 작업의 논리만 설명하고 적용했습니다.)
 

중지 / 200이면해야 할 일

하지만

tp=NormalizeDouble((price+(TakeProfit*_Point)), Digits );

달러-엔에 117.000의 비율로 317.000을 줄 것입니다

예상 결과 117.200

 
trader781 :

중지 / 200이면해야 할 일

하지만

tp=NormalizeDouble((price+(TakeProfit*_Point)),Digits);

달러-엔에 117.000의 비율로 317.000을 줄 것입니다

예상 결과 117.200

왜 이렇게 많은 괄호가 있습니까? 물론 취향의 문제지만 과합니다.

tp=NormalizeDouble(price+TakeProfit*_Point,_Digits);

결과가 출력에서 올바르지 않으면 값이 잘못 대체됩니다. 이 코드 행은 추가 괄호가 있어도 모든 것을 올바르게 평가하기 때문입니다.