MT4テスターは、他のタイムフレームからの情報を提供しません。 - ページ 9

 
avatara >>:

да не в том вопрос.

Получается, что на тесторе нельзя тестировать советника если его логика основана на показаниях мультитайфреймных индикаторов.

Нужно выносить расчётную часть в советник.

Или я не прав?

できる

 
Vinin >>:


Конечно не прав.
Но правда не понятно зачем использовать мультитаймфреймные индикаторы?
Советник может обращаться к нужному таймфрейму или брать значения индикатора с нужного таймфрейма.
Использование мультитаймфреймных индикаторов нужно только для ручной торговли.
Получается дополнительное усложнение кода и возможность вноса дополнительных ошибок.

どうしたんですか?過去ログはご覧になりましたか?

TesterとiCustomを信じるライターも...。

理解しようとすると......出入り禁止になる可能性があります。

可能であれば、iCustomから呼び出されるインジケータで、別のタイムフレームの正しいデータを受け取る方法(iCustomに渡される期間ではない)と、テスターでの動作の可能性を示してください。

私としては、明らかな制約ではありません。どこを探してもないんです。

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

また、iCustomの代わりにすべてのロジックとインジケータのコードを使用すると、確かにEAが複雑になりますが、あなたが主張するようにその逆はありません...。;)

 
avatara писал(а)>>

どうしたんですか?過去ログはご覧になりましたか?

TesterやiCustomを信じて書いている人もいますが...。

理解しようとすると、出入り禁止になる可能性があります。

可能であれば、iCustomインジケータが海外のTFの正しいデータ(iCustomに渡された期間ではない)を受信する方法とテスターでの動作を示してください。

私としては、明らかな制約ではありません。どこを探してもないんです。


テスターのビジュアルモードで正しいデータを取得したい場合(より正確には、ビジュアルテストチャートにオーバーレイされたインジケータで)、インジケータに時間同期を提供する必要があります。
したがって、このモードでのiOpen()、iCloseなどの使用は不正確です。実データにアクセスしているところです。ゼロバーを呼び出すことは、実際の最後のバーをアドレス指定することを意味します。

そして、可視化モードの終値に基づくほとんどの多時間指標は、(時間同期を使用しても)未来を見ます。
ですから、このような作業は不要であり、間違ったデータを与えてしまうので、有害である可能性が高いと申し上げているのです。

ただし、EAからのiCustomコールには適用されません。

 
Vinin >>:


Если ты хочешь получить корректные данные в визуальном режиме работы тестера (точнее в индикаторе, наброшенном на график визуального тестирования), то нужно в индикаторе предусмотреть синхронизацию времени.
Так любые обращение типа iOpen(), iClose и прочее в таком режиме работы некорректно. Идет обращение к реальным данным. И обращение к нулевому бару означает обращение к действительному последнему бару.

И большинство мультитаймфреймных индикаторов построенных на ценах закрытия в режиме визуализации заглядывают в будущее (даже используя синхронизацию по времени)
Потому и говорю, что подобная работа не нужна, а скорее всего и вредна, так как дает не корректные данные.

繰り返す。

可視化せずに確認 する。

あなたのアドバイザーが私のインダクタを呼んでいます。

TFの分単位で、何をどうカウントしているのか、過去ログを見てみてください。

-------

例を少しいじってみました。tf=1では正常に動作せず、それ以外では正常に動作する。

ファイル:
curval.mq4  4 kb
 
avatara писал(а)>>

繰り返す。

可視化せずに確認 する。

あなたのアドバイザーが私のターキーを呼んでいます。

何をどのようにカウントするかは問題ではありません。ログを見て、分単位のTFから価格として取得するものを見てください。


論理エラーで作られているため、インジケータはゼロを返します。
ちょっとした調整の後、正常に動作するようになりました
 
Vinin >>:

Зачем так сложно
В режиме визуализации работать будет не корректно

すみません、昼寝してました、こちらは+6gmtです。
複雑」の間違いです、提示されたコードはEAコードの一部に過ぎず、インジケータに表示されて確認するものです
をクリックして、テストモードでEAが正しく動作するかどうかを確認してください。
さて、「可視化モードでは正しく動作しない」についてですが、正しく書かれたプログラムが正しく動作する場合、プログラムはプログラマが指示したことを行い、それ以外のことは行わない(行わなければならない)ものです。
プログラムが正しく動作しない、プログラマーが設定したことを行う(行わなければならない)、そうでなければソフトウェアが粗雑で調整されていない、これは私の意見であり私一人の意見ではありません。
可視化・非可視化に関することは、明るい未来のおとぎ話の分野から:)))
処理したデータを確認するコードを渡したところ、明らかに隣接するTFが
このインジケータをOnlin EAに装着し、Onlinで確認することができます。
提示されたコードは正しく動作し、5つの指標はすべてほぼ同じ論理的な表示をしています。
関連するデータは、コードが詳細に記述されている、それはBUTを記述したようにする必要があります...打ち手の欠点をどう克服するか?
建設的な議論、提案があれば、それが実際に証明されるあなたのコードを見ることができます。
と表示され、ここに現在のTFのデータがあり、ここにTESTORモードでの上位と下位のTFのデータがあります。
お願いですから、何でもない議論は他のスレッドに移してください。そうでないと、このような不必要な論争で有用なアイデアを見逃すことになります。

何か問題があれば申し訳ありません。悪気はないんです。まだデバッグが必要で、提案もある。

 
vladv002 писал(а)>>

すみません、昼寝してました、こちらは+6gmtです。
複雑」の間違いです、提示されたコードはEAコードの一部に過ぎず、インジケータに表示されて確認するものです
をクリックして、テストモードでEAが正しく動作するかどうかを確認してください。
さて、「可視化モードでは正しく動作しない」についてですが、正しく書かれたプログラムが正しく動作する場合、プログラムはプログラマが指示したことを行い、それ以外のことは行わない(行わなければならない)ものです。
プログラムが正しく動作しない、プログラマーが設定したことを行う(行わなければならない)、そうでなければソフトが生ぬるい、私一人の意見ではないのです。
可視化と非可視化に関すること - これは、明るい未来のおとぎ話の分野からです:))
処理したデータを確認するコードを渡したところ、明らかに隣接するTFが
このインジケータをOnlin EAに装着し、Onlinで確認することができます。
提示されたコードは正しく動作し、5つの指標はすべてほぼ同じ論理的な表示をしています。
関連するデータは、コードが詳細に記述されている、それはBUTを記述したようにする必要があります...打ち手の欠点をどう克服するか?
建設的な議論、提案があれば、それが実際に証明されるあなたのコードを見ることができます。
と表示され、ここに現在のTFのデータがあり、ここにTESTORモードでの上位と下位のTFのデータがあります。
お願いですから、何でもない議論は他のスレッドに移してください。そうでないと、このような不必要な論争で有用なアイデアを見逃すことになります。

何か問題があれば申し訳ありません。悪気はないんです。ソフトウェアのデバッグをしなければならない、まだ提案がある。


このインジケーターはリアルタイムに動作するように設計されています。
ここでもまた、仮想化グラフからではなく、実際の最近のデータから値を取っています。
仮想化チャートでも動作させることは可能ですが、やはりデータはシミュレーションされたものではなく、実際の履歴から取得されるため、正しく動作しないことを理解する必要があります。未来を垣間見ることができるだろう。もしかしたら、計算上、歴史が足りなくなるかもしれない。そして、もっとたくさんあるかもしれません。
全く別の問題が出てくるでしょう。
 
ここでは、6つのタイムフレームのClose値を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には、それぞれの時間があるバーがあります。なぜ、先読みをするのでしょうか?
先読みのExpert Advisorがあることは知っています。
子供の遊びのようなものです。
何を言ってるんだ「インジケータはリアルタイムで動作するように設計されています」、俺たちはテスターの話をしているんだ!
具体的な質問 -テスターが隣接するTFからのデータを与えず、現在のTFからのデータしか入ってきません。どのようにすれば、適切に
、MT4システムテスターのこの欠点を回避
できますか?
MQL4のどの関数も、テスター内の上下に隣接するTFからデータを返すことはできません。
データがあれば、修正、チェック、表示 -Comment,Alert,Print - または処理に渡すことができます。
テスターのこの欠点を解消する方法があれば、非常にありがたく、私一人ではないと思います。


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


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

開発者の納得のいく事例をありがとうございました。

手元に置いておくと非常に便利。テスト前に、作業の正しさを確認するため。

しかし、私のローカルな問題は残っています。ご覧の通り、M1=0.0です。:(

履歴ファイルなどを削除したとはいえ...。

もっと勉強します。

また、いろいろとお世話になりました。