다중 통화 EA 백테스팅 - 페이지 2

 
내 경우 솔루션은 IsNewBar() 방법이었고 내 EA가 공개 가격 에서만 작동하지 않는 한 "Every Tick" 실행 방법을 켭니다.
Documentation on MQL5: Standard Constants, Enumerations and Structures / Indicator Constants / Price Constants
  • www.mql5.com
Standard Constants, Enumerations and Structures / Indicator Constants / Price Constants - Documentation on MQL5
 
trendick :

Ali, 위에서 언급한 예는 귀하가 언급한 EA이며 귀하가 언급한 IsNewBar() 함수의 소스이며 이미 사용하고 있습니다.

이것을 어떻게 설명합니까?

두 개의 기호를 거래하는 EA에 대해 이야기하고 있었습니다. 하나의 기호는 ontick()으로 데이터를 가져 옵니다.

다른 하나는 Isnewbar()를 사용합니다.

데이터를 가져오는 방법을 변경해도 결과는 동일합니다. 이것을 시도하고 결과를 비교할 수 있습니다. 나는 또한 위에서 논의한 EA와 같은 isnewbar를 사용하여 두 따옴표를 모두 얻으려고 시도했지만 동일한 문제가 있었지만 ontick()을 사용하여 원래 기호의 따옴표를 얻는 문제가 해결되었습니다.

물론 테스터에 문제가 있습니다. 방금 제가 원하는 결과를 얻을 수 있었던 방법을 보여주었습니다.

 
kgo :
내 경우 솔루션은 IsNewBar() 방법이었고 내 EA가 공개 가격 에서만 작동하지 않는 한 "Every Tick" 실행 방법을 켭니다.

자세히 설명해 주시겠습니까? 시연할 코드 스니펫? 당신은 3 통화를 처리할 수 있습니까?
 
trendick :
자세히 설명해 주시겠습니까? 시연할 코드 스니펫? 당신은 3 통화를 처리할 수 있습니까?

알겠습니다. 무슨 말인지 알겠습니다. 쌍 중 하나는 새 막대 열기를 트리거하는 데 사용되며 나머지는 즉시 눈금을 읽습니다.

 

Kgo,하지만 여전히 내 경우에는 문제가 해결되지 않습니다. 당신이하는 일의 일부를 보여 주시겠습니까?

고마워, 유행

 
감사합니다Econmist! (나는 너희들이 랜덤 워크 가설을 고수한다고 생각했다...:-)): 이것을 지금 확인하고 있다.
 
나는 몇 가지 새로운 테스트를했고 내 이전 게시물이 올바르지 않습니다. IsNewBar() 메서드는 도움이 되지 않습니다. Economist는 OnTick()이 Multi-Currency EA를 위해 구현되어야 하는 좋은 예를 보여줍니다.
 
내가 이 IsNewBar() 메서드가 어디에 있는지조차 모른다는 사실을 믿을 수 있습니까? 어떤 수업?
 
TheEconomist :
내가 이 IsNewBar() 메서드가 어디에 있는지조차 모른다는 사실을 믿을 수 있습니까? 어떤 수업?

우리는 기사 105의 방법을 참조하고 있습니다. 여기에 있습니다(시작과 끝만 관련됨).

여기있어:

/+X================================================================X+
//| IsNewBar() function                                              |
//+X================================================================X+
bool IsNewBar( int Number, string symbol, ENUM_TIMEFRAMES timeframe)
  {
//----+
   static datetime Told[];
   datetime Tnew[ 1 ];
//----+ Declare variable to store sizes of variables arrays
   static int Size_= 0 ;

//----+ Change size of variables arrays
   if (Number+ 1 >Size_)
     {
       uint size=Number+ 1 ;
       //----
       if ( ArrayResize (Told,size)==- 1 )
        {
         string word= "" ;
         StringConcatenate (word, "IsNewBar( " ,Number,
                           " ): Error!!! Unable to change sizes of variables arrays!!!" );
         Print (word);
         //----          
         int error= GetLastError ();
         ResetLastError ();
         if (error> 4000 )
           {
             StringConcatenate (word, "IsNewBar( " ,Number, " ): Error code " ,error);
             Print (word);
           }
         //----                                                                                                                                                                                                  
         Size_=- 2 ;
         return (false);
        }
     }

   CopyTime (symbol,timeframe, 0 , 1 ,Tnew);
   if (Tnew[ 0 ]!=Told[Number])
     {
      Told[Number]=Tnew[ 0 ];
       return (true);
     }
//----+
   return (false);
  }