내 EA가 이중 항목을 수행합니다. - 페이지 2

 
angevoyageur :

이것은 가능한 설명처럼 보이지만, 만약 그렇다면 정상이 아닙니다. 비동기 모드를 사용하고 있습니까? 그렇지 않은 경우 EA는 서버의 응답을 기다렸다가 다음 틱만 계속 진행해야 합니다.

내가 잘 이해한다면 이것은 임의의 문제이며 재현할 수 없습니까?

m_Trade 선언 뒤에 다음 줄을 추가하여 더 많은 디버그 정보를 인쇄할 수 있습니다.


안녕

내 솔루션이 https://www.mql5.com/en/forum/14327 게시물에 설명된 이후로 이중 거래가 1회 더 있었습니다.

문제는 PositionSelect(Symbol()) 함수의 (느린) 실행이라고 생각합니다. 새 틱이 너무 빨리 들어와서 EA가 PositionSelect(Symbol())의 응답을 받기 전에 새 순서를 보낼 수도 있습니다. 따라서 현재 위치 크기가 제대로 계산되지 않습니다. 내 코드에서 현재 위치 크기가 최대 허용 위치 크기보다 크거나 같으면 새/이중 순서로 보내는 것이 이론적으로 불가능합니다(코드 참조).

브로커 X의 라이브 서버(ECN)는 거시 경제 뉴스 이벤트 동안 많은 틱을 생성합니다. 메타쿼트 시뮬레이션 서버에서 볼 수 있는 모든 틱에 대해 이 서버는 20, 30 또는 40개의 틱을 생성합니다!


 PositionSelect ( Symbol ());

// Check of het model al LONG zit.             
if ( PositionGetInteger ( POSITION_TYPE ) == POSITION_TYPE_BUY )
      {
                                                           
// Check of het model al de maximale size in positie zit.                     
       if ( PositionGetDouble ( POSITION_VOLUME ) >= MAX_Trade_Size)
            {
             return ;
            }
      } 


My EA는 자동으로 이중 위치를 반전시켜 추가 백업으로 정확한 위치 크기를 얻습니다.

Problem: Multiple Trades at brokerX
Problem: Multiple Trades at brokerX
  • www.mql5.com
Problem: Multiple Trades at brokerX.
 
snelle_moda :
....

브로커 X의 라이브 서버(ECN)는 거시 경제 뉴스 이벤트 동안 많은 틱을 생성합니다. 메타쿼트 시뮬레이션 서버에서 볼 수 있는 모든 틱에 대해 이 서버는 20, 30 또는 40개의 틱을 생성합니다!

예, DOM이 활성화되어 있기 때문입니다.

....

My EA는 자동으로 이중 위치를 반전시켜 추가 백업으로 정확한 위치 크기를 얻습니다.

입력해 주셔서 감사합니다. 다른 브로커와 동일한 브로커에 이 문제가 있습니까? 아니면 브로커 독립적입니까?
 
angevoyageur :
예, DOM이 활성화되어 있기 때문입니다.
입력해 주셔서 감사합니다. 다른 브로커와 동일한 브로커에 이 문제가 있습니까? 아니면 브로커 독립적입니까?


"DOM"이 무엇인가요???


이 브로커 서버에서만 https://www.mql5.com/en/forum/14327 스레드가 시작된 이후로 시뮬레이션(Metaquotes) 서버에서 경험한 적이 없습니다.

그 기간 전에 브로커 X의 서버는 Metaquotes 서버와 거의 동일한 양의 틱을 생성합니다.

Problem: Multiple Trades at brokerX
Problem: Multiple Trades at brokerX
  • www.mql5.com
Problem: Multiple Trades at brokerX.
 
snelle_moda :


"돔"이 무엇입니까???


이 브로커 서버에서만 https://www.mql5.com/en/forum/14327 스레드가 시작된 이후로 시뮬레이션 서버에서 경험한 적이 없습니다.

그 기간 전에 브로커 X의 서버는 Metaquotes 서버와 거의 동일한 양의 틱을 생성합니다.

DOM = 시장 깊이, 활성화되면 더 많은 Tick 이벤트가 있습니다.
 
angevoyageur :
DOM = 시장 깊이, 활성화되면 더 많은 Tick 이벤트가 있습니다.


비활성화하는 것이 가능합니까?

 
snelle_moda :


비활성화하는 것이 가능합니까?

나는 그것이 브로커 측에서 활성화된다는 것을 아는 한 그렇게 생각하지 않습니다. 브로커에게 요청할 수도 있습니다.
 

가격 자체가 변경된 경우에만 틱을 허용하여 들어오는 틱의 수를 최소화했습니다.


 // De sum van de BID/LAST 
   static double dPriceSum;   
   double dOldPriceSum = dPriceSum;
   
// To be used for getting recent/latest price quotes
   MqlTick Latest_Price;      
   SymbolInfoTick ( Symbol () ,Latest_Price);

   dPriceSum = Latest_Price.bid + Latest_Price.last; 

// Check if the price is (not)changed.
   if (dPriceSum == dOldPriceSum)
         {
         return ;
         }
 
snelle_moda :

가격 자체가 변경된 경우에만 틱을 허용하여 들어오는 틱의 수를 최소화했습니다.


매도호가가 변경되거나 입찰가가 1포인트 증가하고 마지막 감소가 1포인트이면 어떻게 됩니까? "정상적인" 틱은 입찰 및/또는 매도의 변경입니다.
 
angevoyageur :
매도호가가 변경되거나 입찰가가 1포인트 증가하고 마지막 감소가 1포인트이면 어떻게 됩니까? "정상적인" 틱은 Bid 및/또는 Ask의 변경 사항입니다.

그건 좋은 지적이야. BID 가격의 변경 사항만 사용해야 할 수도 있습니다.

차트의 BAR도 BID 가격을 기반으로 합니까?


내 EA의 트리거 신호의 경우 1분 BAR이 기반으로 하는 가격의 변화에만 관심이 있습니다.

 
어머나. 그래서 잠은 도움이 되지 않는다?

이것을 피하기 위해 우리는 무엇을 할 수 있습니까?
사유: