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

 
MakarFX :

판독값을 기반으로 지표에 대한 논리를 구축합니다.

아니오, 그것은 적합하지 않습니다.

여기 . 1 표시기는 항상 숫자 2147483647을 표시합니다. 신호가 발생하자마자 버퍼 중 하나에 다른 숫자가 표시됩니다. 나는 그것을 알아.

그러나 두 번째 표시기는 항상 2개의 버퍼에서 동시에 0 또는 2147483647을 표시합니다.

파일:
 
파악한 것 같습니다. 이론상 이렇게 되어야 한다
  
     if (in1b< 2147483647 && in2b> 0 && in2b< 2147483647 )
           Sell[i]=low[i];
     if (in1s< 2147483647 && in2s> 0 && in2s< 2147483647 )
            Buy[i]=high[i];
 
jarikn :
파악한 것 같습니다. 이론상 이렇게 되어야 한다

이 경우 구체적인 사항은 필요하지 않습니다. >0인 경우에만

 
MakarFX :

이 경우 구체적인 사항은 필요하지 않습니다. >0인 경우에만

그러나 신호가 없을 때 버퍼에 있는 것은 다음과 같습니다. 나는 >0이 여기에서 작동하지 않을 것이라고 생각합니다. 하지만 이제 나는 시도할 것이다

파일:
 
jarikn :

그러나 신호가 없을 때 버퍼에 있는 것은 다음과 같습니다. 나는 >0이 여기에서 작동하지 않을 것이라고 생각합니다. 하지만 이제 나는 시도할 것이다

신호가 없는 경우 첫 번째 표시기는 EMPTY_VALUE 값을 갖습니다.

이렇게 해야 해

   if ( iCustom ( NULL , 0 , "in1" , 1 ,i)> 0 && iCustom ( NULL , 0 , "in1" , 1 ,i)<Bid* 2 && iCustom ( NULL , 0 , "in2" , 0 ,i)> 0 ) // индикатор стрелка вниз

   if ( iCustom ( NULL , 0 , "in1" , 0 ,i)> 0 && iCustom ( NULL , 0 , "in1" , 0 ,i)<Bid* 2 && iCustom ( NULL , 0 , "in2" , 1 ,i)> 0 ) // индикатор стрелка вверх
 

테스터로 이 문제를 해결할 수 있도록 도와주세요. CME 를 위한 테스트 포지션 개시 EUR / USD 선물

테스터의 시장이 성장하면 자체 정지가 있는 고장을 위해 롱 포지션이 열리며 거래는 티켓 #2를 받습니다. 시장이 상승하고 다음 포지션이 자체 스톱으로 열리며 거래는 테스터에서 티켓 #3을 얻습니다.

시장이 위치 #3에 반대하여 움직이고 스톱에 도달하면 #3은 멈춰야 하고 #2는 정지 상태를 유지하면서 가격이 스톱 #2에 도달할 때까지 기다려야 합니다. 그러나 어떤 이유로 정지 #3이 트리거되면 테스터도 위치 #2를 닫습니다.

mql 5의 코드는 다음과 같습니다.

 MqlTradeRequest request={};
MqlTradeResult   result={};
                                 
request.action = TRADE_ACTION_DEAL ; //Вход рынку
request.symbol = Symbol ();
request.volume = 1.0 ; //Кол-во фьючей
request.type   = ORDER_TYPE_BUY ; //Купить
request.price  = SymbolInfoDouble ( Symbol (), SYMBOL_ASK );   
request.sl     = NormalizeDouble (sl,5); // Стоп

bool check     = OrderSend (request,result);


 
NastyaMaley :

테스터로 이 문제를 해결할 수 있도록 도와주세요. CME 를 위한 테스트 포지션 개시 EUR / USD 선물

시장의 성장에 따라 테스터에서 자체 스탑이 있는 브레이크아웃을 위해 롱 포지션이 열리며 거래는 2번입니다. 시장이 상승하고 다음 포지션이 자체 스탑으로 열리며 거래는 3번입니다. 테스터.

시장이 위치 #3에 반대하여 움직이고 정지에 도달하면 #3은 멈추고 #2는 정지 상태를 유지하면서 가격이 정지 #2에 도달할 때까지 기다려야 합니다. 그러나 어떤 이유로 정지 #3이 트리거되면 테스터도 위치 #2를 닫습니다.

mql 5의 코드는 다음과 같습니다.


mql 5를 잘 이해하지 못하지만 마감할 주문 선택이 어디로 가는지 모르겠습니다.
 
MakarFX :

신호가 없는 경우 첫 번째 표시기는 EMPTY_VALUE 값을 갖습니다.

이렇게 해야 해

네 맞습니다. 이거 야. 정말 감사합니다

 

테스터의 이런 행동에 대한 이유가 명확해진 것 같다. 로봇이 테스트되는 데모 계정 유형은 Netting입니다. 따라서 위치 #3을 열 때 지정된 정지가 트리거되면 포즈의 전체 볼륨이 닫힙니다. 따라서 #3의 정류장에 따라 #2도 닫히지만 열 때 별도의 정류장이 있습니다.

헤징 계정 유형을 사용하면 모든 것이 예전 mql4에서와 같이 작동합니다.

 
NastyaMaley :

테스터로 이 문제를 해결할 수 있도록 도와주세요. CME 를 위한 테스트 포지션 개시 EUR / USD 선물

테스터의 시장이 성장하면 자체 정지가 있는 고장을 위해 롱 포지션이 열리며 거래는 티켓 #2를 받습니다. 시장이 상승하고 다음 포지션이 자체 스톱으로 열리며 거래는 테스터에서 티켓 #3을 얻습니다.

시장이 위치 #3에 반대하여 움직이고 스톱에 도달하면 #3은 멈춰야 하고 #2는 정지 상태를 유지하면서 가격이 스톱 #2에 도달할 때까지 기다려야 합니다. 그러나 어떤 이유로 정지 #3이 트리거되면 테스터도 위치 #2를 닫습니다.

mql 5의 코드는 다음과 같습니다.

발을 사용할 필요가 없습니다. 정차 대신 반대 방향의 보류 주문을 해야 합니다.