MT4 테스터는 다른 시간대의 정보를 제공하지 않습니다. - 페이지 9

 
avatara >> :

예, 그것은 질문이 아닙니다.

논리가 다중 시간 프레임 표시기의 판독값을 기반으로 하는 경우 테스터에서 Expert Advisor를 테스트하는 것은 불가능합니다.

계산된 부분을 어드바이저에게 전달해야 합니다.

아니면 내가 틀렸습니까?

잘못된 - 아마도

 
Vinin >> :


물론 옳지 않습니다.
그러나 진실은 왜 다중 기간 표시기를 사용하는지 명확하지 않습니다.
EA는 원하는 기간을 참조하거나 원하는 기간에서 지표 값을 가져올 수 있습니다.
다중 기간 표시기의 사용은 수동 거래에만 필요합니다.
코드의 추가 복잡성과 추가 오류가 발생할 가능성이 나타납니다.

뭐가 잘못 되었 니? 로그를 보았습니까?

몇몇 작가들은 테스터와 아이커스텀을 굳게 믿고...

그것을 알아 내려고하기 위해-금지가 위협합니다.

가능하면 EA에서 iCustom이 호출한 표시기에서 다른 사람의 시간 프레임에 대한 올바른 데이터를 얻는 방법(iCustom에 전달된 기간이 아님)과 테스터에서 작동하는 방법을 보여줍니다.

나에게는 한계가 분명하지 않습니다. 어디에서도 찾지 못했습니다.

------------------

그리고 iCustom 대신 표시기의 모든 논리와 코드를 사용하면 분명히 고문이 복잡해 지지만 그 반대의 경우도 마찬가지입니다... ;)

 
avatara писал(а) >>

뭐가 잘못 되었 니? 로그를 보았습니까?

일부 작가는 테스터와 iCustom을 굳게 믿습니다 ...

그것을 알아 내려고하기 위해-금지가 위협합니다.

가능하면 EA에서 iCustom이 호출한 표시기에서 다른 사람의 시간 프레임에 대한 올바른 데이터를 얻는 방법(iCustom에 전달된 기간이 아님)과 테스터에서 작동하는 방법을 보여주세요.

나에게는 한계가 분명하지 않습니다. 어디에서도 찾지 못했습니다.


테스터의 시각적 모드(보다 정확하게는 시각적 테스트 차트에 표시된 표시기에서)에서 올바른 데이터를 얻으려면 표시기에서 시간 동기화를 제공해야 합니다.
따라서 이 작동 모드에서 iOpen(), iClose 등과 같은 호출은 올바르지 않습니다. 실제 데이터에 대한 매력이 있습니다. 그리고 제로 바를 참조한다는 것은 실제 마지막 바를 참조하는 것을 의미합니다.

그리고 시각화 모드에서 종가를 기반으로 하는 대부분의 다중 기간 표시기는 미래를 봅니다(시간 동기화를 사용하는 경우에도).
따라서 나는 그러한 작업이 필요하지 않으며 올바른 데이터를 제공하지 않기 때문에 가장 해로울 수 있다고 말합니다.

그러나 이것은 고문으로부터 IKust를 호출하는 경우에는 적용되지 않습니다.

 
Vinin >> :


테스터의 시각적 모드(보다 정확하게는 시각적 테스트 차트에 표시된 표시기에서)에서 올바른 데이터를 얻으려면 표시기에서 시간 동기화를 제공해야 합니다.
따라서 이 작동 모드에서 iOpen(), iClose 등과 같은 호출은 올바르지 않습니다. 실제 데이터에 대한 매력이 있습니다. 그리고 제로 바를 참조한다는 것은 실제 마지막 바를 참조하는 것을 의미합니다.

그리고 시각화 모드에서 종가를 기반으로 하는 대부분의 다중 기간 표시기는 미래를 봅니다(시간 동기화를 사용하는 경우에도).
따라서 나는 그러한 작업이 필요하지 않으며 올바른 데이터를 제공하지 않기 때문에 가장 해로울 수 있다고 말합니다.

반복합니다.

시각화 없이 확인 합니다.

당신의 고문이 내 칠면조에 전화를 겁니다.

그가 무엇을 또는 어떻게 생각하든 상관없이. 로그를 보면 그가 1분 TF에서 얻은 대가로 무엇을 얻을 수 있는지 알 수 있습니다.

-------

예제를 약간 수정했습니다. tf=1에서는 예상대로 올바르게 작동하지 않습니다.

파일:
curval.mq4  4 kb
 
avatara писал(а) >>

반복합니다.

시각화 없이 확인 합니다.

당신의 고문이 내 칠면조에 전화를 겁니다.

그가 무엇을 또는 어떻게 생각하든 상관없이. 로그를 보면 그가 1분 TF에서 얻은 대가로 무엇을 얻을 수 있는지 알 수 있습니다.


표시기는 논리적 오류로 만들어졌기 때문에 0을 반환합니다.
약간의 조정 후에는 잘 작동합니다
 
Vinin >> :

왜 그렇게 어려운가
시각화 모드에서는 제대로 작동하지 않습니다.

죄송합니다. 자러 갑니다. 여기 +6gmt.
"복잡한"비용으로 당신은 헛된 것이며, 고문 코드의 전체 부분에 대한 제시된 코드가 확인 표시기에 표시됩니다
테스트 모드에서 어드바이저의 올바른 작동.
이제 "시각화 모드에서는 올바르게 작동하지 않습니다"에 대해, 올바르게 작성된 프로그램의 경우 및 올바르게 작동할 때 프로그램은 프로그래머가 요청한 대로 수행할 것이며 다른 작업은 수행하지 않을 것입니다.
그렇지 않으면 소프트웨어가 미완성이고 미완성인 것입니다. 이것은 제 의견일 뿐만 아니라 제 의견입니다.
시각화 및 비시각화와 관련하여 - 이것은 더 밝은 미래에 대한 동화의 영역에서입니다 :)
처리된 데이터를 확인하는 코드를 제공했는데, 거기에서 주변 TF가
데이터를 변경하지 마십시오. 이 표시기를 ONline Advisor에 걸어 놓고 ONline에서 다음을 확인할 수 있습니다.
제시된 코드는 올바르게 작동하고 5개의 모든 표시기는 거의 동일한 논리적
관련 데이터, 코드가 자세히 설명되어 있으므로 설명대로 해야 합니다. 하지만 ... 테스터의 단점을 해결하는 방법은 무엇입니까?
건설적인 주장, 제안이 있는 경우 실제로 입증될 코드를 볼 수 있습니다.
TESTOR 모드에서 현재 TF의 데이터가 표시되지만 더 오래된 것과 더 어린 것의 데이터가 여기에 표시됩니다.
나는 당신에게 아무 것도 아닌 것에 대한 분쟁을 다른 지점으로 옮기도록 요청합니다. 그렇지 않으면 이러한 불필요한 분쟁에서 좋은 아이디어를 놓칠 것입니다.

옳지 않다면 죄송합니다. 범죄가 없습니다. 소프트웨어를 제대로 디버깅하려면 여전히 제안 사항이 있습니다.

 
vladv002 писал(а) >>

죄송합니다. 자러 갑니다. 여기 +6gmt.
"복잡한"비용으로 당신은 헛된 것이며, 고문 코드의 전체 부분에 대한 제시된 코드가 확인 표시기에 표시됩니다
테스트 모드에서 어드바이저의 올바른 작동.
이제 "시각화 모드에서는 올바르게 작동하지 않습니다"에 대해, 올바르게 작성된 프로그램의 경우 및 올바르게 작동할 때 프로그램은 프로그래머가 요청한 대로 수행할 것이며 다른 작업은 수행하지 않을 것입니다.
그렇지 않으면 소프트웨어가 미완성이고 미완성인 것입니다. 이것은 제 의견일 뿐만 아니라 제 의견입니다.
시각화 및 비시각화와 관련하여 - 이것은 더 밝은 미래에 대한 동화의 영역에서 나온 것입니다. :)
처리된 데이터를 확인하는 코드를 제공했습니다.
데이터를 변경하지 마십시오. 이 표시기를 온라인 고문에 걸 수 있고 온라인에서 다음을 확인할 수 있습니다.
제시된 코드가 올바르게 작동하고 5개의 모든 표시기가 거의 동일한 논리를 보여줍니다.
관련 데이터, 코드가 자세히 설명되어 있으므로 설명대로 해야 합니다. 하지만 ... 테스터의 단점을 해결하는 방법은 무엇입니까?
건설적인 주장, 제안이 있는 경우 실제로 입증될 코드를 볼 수 있습니다.
그리고 그것은 표시됩니다 - 여기에 현재 TF의 데이터가 있지만 더 오래된 것과 더 어린 것의 데이터는 TESTOR 모드에서 표시됩니다.
나는 당신에게 아무 것도 아닌 것에 대한 분쟁을 다른 지점으로 옮기도록 요청합니다. 그렇지 않으면 이러한 불필요한 분쟁에서 좋은 아이디어를 놓칠 것입니다.

옳지 않다면 죄송합니다. 범죄가 없습니다. 소프트웨어를 제대로 디버깅하려면 여전히 제안 사항이 있습니다.


표시기는 실시간으로 작동하도록 설계되었습니다.
가상화 그래프가 아닌 실제 최근 데이터에서 값을 취한다는 것을 다시 한 번 반복합니다.
가상화 그래프에서 작동하도록 만들 수 있지만 데이터는 여전히 시뮬레이션된 기록이 아닌 실제 기록에서 가져오기 때문에 제대로 작동하지 않는다는 점을 이해해야 합니다. 미래에 대한 조사가 있을 것이며 아마도 계산을 위한 충분한 기록이 없을 것입니다. 예, 그리고 더 많은 것이 있을 수 있습니다.
다른 질문이 있을 것입니다.
 
다음은 6개의 시간 프레임에서 6개의 버퍼에 닫기 값을 쓰는 간단한 표시기입니다.
 //+------------------------------------------------------------------+
//|                                               MultiTimeframe.mq4 |
//|                      Copyright © 2007, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2007, MetaQuotes Software Corp."
#property link       "http://www.metaquotes.net"

#property indicator_chart_window
#property indicator_buffers 6
#property indicator_color1 Red
#property indicator_color2 Navy
#property indicator_color3 DarkSlateGray
#property indicator_color4 Orange
#property indicator_color5 Magenta
#property indicator_color6 CornflowerBlue
//---- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
double ExtMapBuffer4[];
double ExtMapBuffer5[];
double ExtMapBuffer6[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle( 0 , DRAW_LINE );
   SetIndexBuffer ( 0 ,ExtMapBuffer1);
   SetIndexStyle( 1 , DRAW_LINE );
   SetIndexBuffer ( 1 ,ExtMapBuffer2);
   SetIndexStyle( 2 , DRAW_LINE );
   SetIndexBuffer ( 2 ,ExtMapBuffer3);
   SetIndexStyle( 3 , DRAW_LINE );
   SetIndexBuffer ( 3 ,ExtMapBuffer4);
   SetIndexStyle( 4 , DRAW_LINE );
   SetIndexBuffer ( 4 ,ExtMapBuffer5);
   SetIndexStyle( 5 , DRAW_LINE );
   SetIndexBuffer ( 5 ,ExtMapBuffer6);
//----
   return ( 0 );
  }

//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int     counted_bars=IndicatorCounted();
//----
   ExtMapBuffer1[ 0 ]=iClose( Symbol (), PERIOD_M1 , 0 );
   ExtMapBuffer2[ 0 ]=iClose( Symbol (), PERIOD_M5 , 0 );
   ExtMapBuffer3[ 0 ]=iClose( Symbol (), PERIOD_M15 , 0 );
   ExtMapBuffer4[ 0 ]=iClose( Symbol (), PERIOD_M30 , 0 );
   ExtMapBuffer5[ 0 ]=iClose( Symbol (), PERIOD_H1 , 0 );
   ExtMapBuffer6[ 0 ]=iClose( Symbol (), PERIOD_H4 , 0 );   
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
그리고 여기에 이 표시기로부터 값을 수신하고 시각적 테스트 모드에서만 차트에 얻은 값을 표시하는 Expert Advisor가 있습니다.

 //+------------------------------------------------------------------+
//|                                                     SimpleEA.mq4 |
//|                      Copyright © 2007, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2007, MetaQuotes Software Corp."
#property link       "http://www.metaquotes.net"

//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
   if (IsTesting())
     {
       if (IsVisualMode())
        {
         double M1_Value= iCustom ( Symbol (), 0 , "MultiTimeframe" , 0 , 0 );
         double M5_Value= iCustom ( Symbol (), 0 , "MultiTimeframe" , 1 , 0 );
         double M15_Value= iCustom ( Symbol (), 0 , "MultiTimeframe" , 2 , 0 );
         double M30_Value= iCustom ( Symbol (), 0 , "MultiTimeframe" , 3 , 0 );
         double H1_Value= iCustom ( Symbol (), 0 , "MultiTimeframe" , 4 , 0 );
         double H4_Value= iCustom ( Symbol (), 0 , "MultiTimeframe" , 5 , 0 );
         string com= "Last Bid=" +DoubleToStr(Close[ 0 ], Digits )+ "\n" ;
         com=com+ "iClose(M1,0)=" +DoubleToStr(M1_Value, Digits )+ "\n" ;
         com=com+ "iClose(M5,0)=" +DoubleToStr(M5_Value, Digits )+ "\n" ;
         com=com+ "iClose(M15,0)=" +DoubleToStr(M15_Value, Digits )+ "\n" ;
         com=com+ "iClose(M30,0)=" +DoubleToStr(M30_Value, Digits )+ "\n" ;
         com=com+ "iClose(H1,0)=" +DoubleToStr(H1_Value, Digits )+ "\n" ;
         com=com+ "iClose(H4,0)=" +DoubleToStr(H4_Value, Digits )+ "\n" ;
         Comment (com);
        }
     }
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+

그 후에도 테스터가 지표를 잘못 계산하거나 기본이 아닌 기간의 가격 데이터를 시뮬레이션한다고 계속 주장하는 경우 증거를 제공해야 합니다. 그렇지 않으면 금지됩니다. 피곤한.
 
Vinin >> :


표시기는 실시간으로 작동하도록 설계되었습니다.
가상화 그래프가 아닌 실제 최근 데이터에서 그 가치를 취한다는 것을 다시 한 번 반복합니다.
가상화 그래프에서 작동하도록 만들 수 있지만 데이터는 여전히 시뮬레이션된 것이 아니라 실제 기록에서 가져오기 때문에 제대로 작동하지 않는다는 점을 이해해야 합니다. 미래에 대한 조사가 있을 것이며 아마도 계산을 위한 충분한 기록이 없을 것입니다. 예, 그리고 더 많은 것이 있을 수 있습니다.
다른 질문이 있을 것입니다.

제가 뭔가 표현을 잘 못한 것 같은데요, 죄송합니다. 다시 자세히 말씀드리겠습니다.
각 TF에는 자체 막대가 있으며 일부는 자체 시간이 있습니다.
올바른 막대와 올바른 TF의 시간을 고려하여 - 미래를 내다보는 전문가는 무엇입니까 - 알고 있습니다
이것은 어린이 영화입니다.
"지표는 실시간으로 작동하도록 설계되었습니다."는 무엇을 말하는지, 우리는 테스터에 대해 이야기하고 있습니다!
특정 질문 - 테스터가 인접 TF의 데이터를 반환하지 않고 현재 TF의 데이터만 전송 중입니다. - 어떻게 맞습니까?
MT4 시스템 테스터의 이러한 단점을 우회하십시오.

MQL4 함수 중 어떤 것도 위 및 아래에 있는 인접 TF에서 테스터의 데이터를 반환할 수 없습니다.
데이터가 있는 경우 수정, 확인, 표시( 코멘트, 경고 , 인쇄)하거나 처리를 위해 전송할 수 있습니다.
TESTER의 단점을 제거하기 위한 제안이 있습니다. 매우 감사할 것이며 혼자가 아니라고 생각합니다.


 
Rosh >> :
Вот простой индикатор, который пишет в 6 своих буферов значения Close с 6-ти таймфреймов.
А вот эксперт, который получает значения из этого индикатора и выводит полученные значения на график только в режиме визуального тестирования.


Если и после этого вы продолжите утверждать, что в тестере неверно считаются индикаторы или моделируются ценовые данные с неродных таймфреймов, то вы обязаны будет предоставить доказательства, иначе бан. Надоело.

개발자의 매력적인 예제에 감사드립니다.

손에 들고 매우 유용합니다. 테스트를 시작하기 전에 작업의 정확성을 확인하기 위해..

그러나 М1=0.0에서 볼 수 있듯이 지역 문제가 남아 있습니다. :(

히스토리 파일이 삭제되는 등이지만...

더 공부하겠습니다.

도움을 주셔서 다시 한 번 감사드립니다.