リーグ・オブ・トレーディング・システムズこれからもよろしくお願いします。 - ページ 24

 
Boris Gulikov:

テストもMT4テスターで行います。

ただし、引用符は端末がmetaquotesからアップロードした斜めのものではなく、Dukasやあなたのブローカーからの本物のものです。

フィックスについて。


ああ...古いバージョンを使っているのか...MT4...それなら納得です。

いや...メタトレーダー4は私たちのやり方ではありません。数年前からMT5だけでテストしています。 そして、MT4用の作業バージョンをコンパイルしています。

1.私がテストしている引用文は、現実と全く同じものです。特に、「すべてのティックをリアルベースにする」モードを使用する場合。しかし、見ての通り......これでは冗長です。ポジションTCの場合 - 1M OHLSモードでよい。

2.MT5を24スレッドで同時にテストしています - ローカルのホームネットワークのすべてのコアを使用しています。

3.MT5では - 任意のプロバイダの引用符を簡単にインポートすることができます(DucaCopiのように - インポート、何でも可能です)。でも、アルパリシュのものはかなり満足しています。

4.MT5では - スリッページを非常によく模倣しています。しかし、ポジションTSの場合は、スリッページは関係ない。まあ、十数点、二十数点はたまに滑るんですけどね...。これは、平均的なTPやSLの10%以下です...。なぜこの滑りを追うのか?

5.MT5では、実際のスプレッドを想定したテストが正確に行われます。All ticks based on real" モードを有効にする必要があります。しかし、リーグTSのポジション戦略では、すべてのティックが「1分間に4ティック」モード(1M OHLC)と実質的に同じ画像を提供します。この違いは、先ほど言ったように、DCに非常識なスプレッドがある場合に生じます。しかし、このスプレッドそのものが原因ではなく、Asc価格の取得方法が全く異なるため、結果としてトレードが異なるということなのです。

また、ダニのデータも違う方かもしれません。私にとっては、ほとんど違いはありません。それよりも、スプレッドの違いに影響されることが多い。

MT4は時代遅れのプラットフォームであり、テストには適していません。MT5のみ !!!


MT5が最初に提供するものをすべて備えていて、さらに、私が理解しているように、TDSが許可していないこと(たとえば、異なるコアで並列テストを使用したり、複数のシンボルを同時にテストしたり)も許可している場合、TDSが必要なものだとどうすれば同意できますか。利点がわからない。MT4では、TDSは大きな可能性を提供します(そしてMT4では、ティック生成は 実際とは大きく異なります)。しかし、MT4はとっくに時代遅れのプラットフォームで、私のDC口座がMT4なので使っているだけです。

 
Georgiy Merts:

えー...理解できない。なぜ「そのようなEAはテスターに合わない」のでしょうか?どこでテストしてると思ってるんだ?

TCリーグの構想は2年前に私が提案したもので、みんな非常に懐疑的でした。 リーグの一般的なテンプレートと最初のTCは1年前に書き、当時私は古いコンピューターを持っていて、テストに参加する人を募集しました。前回のTCリーグのスレッドで、やり方を説明し、2人の方がテストに協力してくれたのですが...。MetaTraderのテスターが一番多かったです。

エキスパートアドバイザーでのデータの直接読み込みは、チャートからのデータの読み込みと変わりません。機能は同じですが、チャートからのデータが欲しい場合は、現在のシンボルとタイムフレームを指定し、いくつかの特定のデータが欲しい場合は、それを指定します。内部設定の制御はそれほど複雑ではなく、すべてのデータを単純な関数で等化し、個々の機能のON/OFFを切り替えるためのコードを追加しています。あまり複雑ではありません。

私はすでに私自身のオプティマイザを持っている - 私はMetaTraderによって提供される機能を使用します -最適化の間にエキスパート-アドバイザは、データフレームを収集し、それらを調べる、最大の原理に基づいて最適なものを選択する - バックとフォワードテストで最大のパフォーマンスが最小となるように(したがって、TSは全体の歴史の中でこの見つかった最大よりも悪い実行しないことを保証します)。このような入力パラメータの組み合わせが見つかり、レディファンクションテキストとしてログに書き込まれます。最適化の後、このログを取り、この機能を直接TCクラスのコードに転送しています。以上です。TCは最適化され、「共通プール」に送られる。そして、再び制御パラメータを超えるまで、そこで動作する。

つまり、1つのEAという形で事実上のリーグがあっても、リアルタイムにしかテストする必要がない、オプティマイザで定期的にブロックを走らせるという話ではないので、他のEAに比べて後手に回る、つまり多通貨はプラスだがテスターがいないのはマイナスということです。

MT5の通常の多通貨EAのように、テスターでLeagueを動かすことができれば話は別なのでしょうが。

私の理解する限り、コードはMT4口座と互換性があり、ビルトインブロックオプティマイザーを作れば、テスターで実行できると思いますし、もしそうなら、現在のテストモードと比較して、年数を節約できるかもしれませんね:)。

 
Ivan Negreshniy:

つまり、Leagueに事実上のシングルEAがあっても、リアルタイムにしかテストする必要がない、オプティマイザーで定期的にブロックを走らせるという話ではなく、他のEAに比べて一歩後退している、つまり多通貨はプラスだが、テスター不在はマイナスだということです。

例えば、テスターでLeagueをMT5で通常の多通貨EAとして動かすことができれば話は別です。

私が理解した限りでは、MT4アカウントで動作しているにもかかわらず、コードはMT5とも互換性があり、ビルトインのブロックオプティマイザーを作れば、テスターでレースすることも十分可能だと思いますし、そうなれば、現在のテストモードと比較して、何年も節約できるかもしれません:)。

はい、その通りです。

リーグコードはマルチプラットフォーム対応で、MT4とMT5で変更なくコンパイルできます。

各TSは独立したクラスとして編成されています。したがって、リーグの実行モジュールは次のようになる。

//+------------------------------------------------------------------+ //|                                                        TS_090817 | //|                                     Copyright 2017, George March | //+------------------------------------------------------------------+ /* Советник на основе фабрик, сделанный 090817 - оболочка для МТ5. */ #property description "TS_090817" #include <MyLib\DebugOrRelease\DebugSupport.mqh> #include <MyLib\Common\CurSymEnum.mq5> #include <MyLib\Factories\ForTrade\EURUSD\EURUSD_FactoriesIncludes.mqh> // Объявляем фабрики частей эксперта. // ЕМА сопровождение CTrendDTS_EURUSD_01_EPF epfFact_0(NULL); CTrendSAR_EURUSD_01_EPF epfFact_1(NULL); CTrendSP_EURUSD_01_EPF epfFact_2(NULL); CFlatSP_EURUSD_01_EPF epfFact_3(NULL); CFlatSAR_EURUSD_01_EPF epfFact_4(NULL); CFlatRTS_EURUSD_01_EPF epfFact_5(NULL); CTrendRTS_EURUSD_01_EPF epfFact_6(NULL); CFlatDTS_EURUSD_01_EPF epfFact_7(NULL);

// PriceChannel сопровождение CTrendDTS_EURUSD_PrCh_EPF epfFact_8(NULL); CTrendSAR_EURUSD_PrCh_EPF epfFact_9(NULL); CTrendSP_EURUSD_PrCh_EPF epfFact_10(NULL); CFlatSP_EURUSD_PrCh_EPF epfFact_11(NULL); CFlatSAR_EURUSD_PrCh_EPF epfFact_12(NULL); CFlatRTS_EURUSD_PrCh_EPF epfFact_13(NULL); CTrendRTS_EURUSD_PrCh_EPF epfFact_14(NULL); CFlatDTS_EURUSD_PrCh_EPF epfFact_15(NULL);

// ZZPendings сопровождение CTrendDTS_EURUSD_ZZPnd_EPF epfFact_16(NULL); CTrendSAR_EURUSD_ZZPnd_EPF epfFact_17(NULL); CTrendSP_EURUSD_ZZPnd_EPF epfFact_18(NULL); CFlatSP_EURUSD_ZZPnd_EPF epfFact_19(NULL); CFlatSAR_EURUSD_ZZPnd_EPF epfFact_20(NULL); CFlatRTS_EURUSD_ZZPnd_EPF epfFact_21(NULL); CTrendRTS_EURUSD_ZZPnd_EPF epfFact_22(NULL); CFlatDTS_EURUSD_ZZPnd_EPF epfFact_23(NULL); // Файл шаблона советника #include <MyLib\TSTemplate\ExpertAdvisorT.mq5>

すべて。

この場合、これはユーロドルのすべてのTSのコードであり、最小限のロットで一緒に動作しています。

私たちは、他のシンボルのために、他のTSを宣言することがあります。すべてコンパイル済みなので、そのままテストしてください。

しかし、最適化のために、TSの基本クラスの子孫で、設定を行うことができ、TSで設定を行うために必要な機能を持つファイルそのものを形成することができる特別なクラスが使用されています。

 
Georgiy Merts:

えー...理解できない。なぜ「そのようなEAはテスターに合わない」のでしょうか?どこでテストしてると思ってるんだ?

TCリーグの構想は2年前に私が提案したもので、みんな非常に懐疑的でした。 リーグの一般的なテンプレートと最初のTCは1年前に書き、当時私は古いコンピューターを持っていて、テストに参加する人を募集しました。前回のTCリーグのスレッドで、やり方を説明し、2人の方がテストに協力してくれたのですが...。MetaTraderのテスターが一番多かったです。

エキスパートアドバイザーでのデータの直接読み込みは、チャートからのデータの読み込みと変わりません。機能は同じですが、チャートからのデータが欲しい場合は、現在のシンボルとタイムフレームを指定し、いくつかの特定のデータが欲しい場合は、それを指定します。内部設定の制御はそれほど複雑ではなく、すべてのデータを単純な関数で等化し、個々の機能のON/OFFを切り替えるためのコードを追加しています。あまり複雑ではありません。

私はすでに私自身のオプティマイザを持っている - 私はMetaTraderによって提供される機能を使用する -最適化の間に、エキスパート-アドバイザは、データフレームを収集し、それらを調べる、最大の原則に基づいて最適なものを選択する - バックとフォワードテストで最大のパフォーマンスが最小であったように(それによってTSは歴史全体でこの見つかった最大よりも悪い実行しないようにすること)。このような入力パラメータの組み合わせが見つかり、レディファンクションテキストとしてログに書き込まれます。最適化の後、このログを取り、この機能を直接TCクラスのコードに転送しています。以上です。TCは最適化され、「共通プール」に送られる。そして、再び制御パラメータを超えるまで、そこで動作する。

チャネルが構築され、ロボットがポンドバックで取引するのは何TFですか?

 
Roman Shiredchenko:

チャネルはどのTFに構築され、ロボットはポンドバックスで取引するのでしょうか?

М15

 
Georgiy Merts:

М15

しゃい

 
Georgiy Merts:

はい、その通りです。

リーグコードはマルチプラットフォームで、MT4とMT5で変更なくコンパイルされます。

各TSは独立したクラスとして編成されています。したがって、リーグの実行モジュールは次のようになる。

すべて。

この場合、これはユーロドルのすべてのTSのコードであり、最小限のロットで一緒に動作しています。

私たちは、他のシンボルのために、他のTSを宣言することがあります。すべてコンパイルしてからテストしています。

しかし、最適化のために、TSの基本クラスの後継として、設定を行うことができる特別なクラスを使用し、TSで設定を行うために必要な機能を持つファイルそのものを形成することができるようにした。

構造はモジュール式で、テスト中に個々の戦略を過剰に最適化しても、原理的にはうまくいくはずです。

一見したところ、問題はスピードとテスターのコードキャッシングだけで、コンパイルされたMQLコードをその場で動的にロードすることはできないかもしれません。

このような方向でリーグを展開する予定があるかどうかはわかりませんが、私自身、最近同じようなことを考えていたので、興味がありますね。

小さなタイムフレームでの短期最適化の驚くべき効果に出会い、それを再現することができるのですが、残念ながらテスターで動かすためのツールはまだ持っていないのです。

 
Ivan Negreshniy:

構造はモジュール化されており、テスト中に別の戦略の再最適化を行うことも原理的には可能である。

一見したところ、問題はテスターのスピードとコードのキャッシュのみで、コンパイルされたMQLコードをその場で動的にロードすることはできないかもしれません。

このような方向でリーグを展開する予定があるかどうかはわかりませんが、私自身、最近同じようなことを考えていたので、興味がありますね。

偶然にも小さなタイムフレームでの短期最適化の意外な効果に出会い、再現することができましたが、残念ながらテスターで動かすためのツールはまだ持っていません。

MetaTraderでは、本当の意味でのダイナミックコンパイルはほとんど不可能です。

私は「セミダイナミック」にしています。つまり、あるTSは制御パラメータを示しています。私はそれを再最適化し、過去2年間(年-戻る、年-進む)で良い結果を示したパラメータを見つけ、TSクラスに変更を加え(ここで「動的コンパイル」が機能します)、それから私はすべてを再コンパイルして仕事に送り込みました。

短期的な最適化...私見ですが、ここではすべてが非常に不安定で、不安定で......。私の目標は、あまり利益が出なくても、長く使える安定したTSを手に入れることです...。

 
Georgiy Merts:

MetaTraderでは、本当の意味でのダイナミックコンパイルはほとんど不可能です。

私は「セミダイナミック」にしています。つまり、あるTSは制御パラメータを示しています。私はそれを再最適化し、過去2年間(年-戻る、年-進む)で良い結果を示したパラメータを見つけ、TSクラスに変更を加え(ここで「動的コンパイル」が機能します)、すべてを再コンパイルして会社に送ります。

短期的な最適化...私の意見では、ここではすべてが非常に不安定である...。私の課題はただ、あまり利益が出なくても、長く使える安定したTCを手に入れることです。

動的コンパイルはコマンドラインのmql.exeで行えますが、テスト中にコンパイルしたモジュールを再読み込みするのは問題があります。

しかし、長期的で安定したストラテジーの開発やデバッグには、短期的なものと比べて、高速にテストできるツールが重要になります。

 
Ivan Negreshniy:

動的コンパイルはmql.exeのコマンドラインから行うことができますが、テスト中にコンパイルしたモジュールを再ロードするのは問題があります。

まあ、アイデアとしては、「最適化-コンパイル-最適化-コンパイル」のサイクルで、最適化のたびにフレームから得られた結果を処理し、コンパイルモジュールに変更を加え、コマンドラインからコンパイルを実行し、次に最適化、またコマンドラインから実行して、また結果を処理...というのが考えられるでしょう。

でも、個人的には、理不尽に思えてしまうのですが......TCは修正すべきです。また、許容できないパラメータを表示しない限り、動作するはずです。 頻繁な過剰最適化もよくありません。ベンチマークのパラメータに到達したときの過剰最適化の必要性については、すでにここで質問させていただきましたが、まあ、頻繁に過剰最適化するのは、逆に極端な気もしますけどね。

ニューラルネットワークは、規則性を見つけることはできても、常識に導かれることはまったくないので、自信が持てないのです。私は、シンプルで明快な技術を支持します。一方、利益を得るための秘訣は、常にその時々に有効な手法に変えていくことです。