MetaTrader 5 Strategy Tester: バグ、不具合、改善のための提案 - ページ 54

 
Alexey Viktorov:

では、ベータ版でアカウント登録ができなかったのですか?

いいえ。
 

MT4-Testerには、そんなGAのアシスタントがありました。


最適化の時間を大幅に短縮することができました。例えば、バランスが床にあるのなら、なぜそれ以上進むのか。MT5にはそれがないんです。だから、そういう合理的なものをEAに組み込んでいかなければならないのです。そんな作家は少ないと思います。そのため、このような機能をMT5-Testerに移植することは、おそらく妥当なことでしょう。


また、GAのアシストも関連しています。ここでは、最もシンプルなものを紹介します。

トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム

エキスパートアドバイザー:検証

fxsaber, 2020.01.29 15:55

私のEAでは、同様のGAヘルパーを使用することを推奨しています。

sinput int inMinTrades = 500; // Минимальное количество трейдов (позиций).
sinput int inMaxTrades = 90000; // Максимальное количество трейдов (позиций).

double OnTester()
{
  return(((TesterStatistics(STAT_TRADES) >= inMinTrades) && (TesterStatistics(STAT_TRADES) <= inMaxTrades)) ? TesterStatistics(STAT_PROFIT) : 0);
}

GAが弱い統計結果の側に行くことを許さないのです。結果の品質とスピードが向上します。また、Validateについては、統計的な値が弱い文章からのフィルタリングも行っています。


例えば、3ヶ月の計算をもとに再調整する場合、最低取引回数>100回に設定しています。そうでなければ、成功した(ランダムな)取引の数が少ないため、最大の利益を得ることができるGAに遭遇する確率が高くなります。 明らかに、そのようなパスは、さらなる取引のためにそれを選択することとは関係がないはずです。

テスターがそのようなヘルパーを持つのは合理的だと思います。ましてや、計算コストがかからないのだからなおさらだ。

 

皆さん、こんにちは。

マルチマーケットロボットを持っています。統計的アービトラージ、スプレッドを取引している。ロボットは、マーケット概要自体から商品を取得するか、スプレッドファイル(プログラムのルートディレクトリのファイルフォルダにあります)から商品を取得するように設計されています。ロボットがデータを分析し、最も有望な商品ペアを選択し、取引する。

質問ですが、mt5ストラテジーテスターはテストできるのでしょうか? 取引商品が通常のようにロボットの入力パラメーターにリストされておらず、マーケット概要やファイルフォルダから商品が取られている場合、テスターは機能するように意図されているのでしょうか?

 
Peresvet Timonkin:

皆さん、こんにちは。

マルチマーケットロボットを持っています。統計的アービトラージ、スプレッドを取引している。ロボットは、マーケット概要自体から商品を取得するか、スプレッドファイル(プログラムのルートディレクトリのファイルフォルダにあります)から商品を取得するように設計されています。ロボットがデータを分析し、最も有望な商品ペアを選択し、取引する。

質問ですが、mt5ストラテジーテスターはテストできるのでしょうか? 取引商品が通常のようにロボットの入力パラメーターにリストされておらず、マーケット概要やファイルフォルダから商品が取られている場合、テスターは機能するように意図されているのでしょうか?

マーケット概観はコードからシンボルへの呼び出しによって生成されます。テスターの場合、どんなバリエーションでも通貨リストがあるはずです。そして、現実の世界では何の問題もないのです。

スクリーンショットに写っているのは、最適化のためのものです。
 
Alexey Viktorov:

マーケットレビューは、コードからのシンボル呼び出しによって形成されます。テスターのためには、どんなバリエーションでも通貨のリストが必要です。そして、現実の世界では何の問題もないのです。

スクリーンショットに写っているのは、最適化のためのものです。

私のようにこのような設定でのテストはできないという理解で合っていますか?

テスターは、履歴からマーケットレビューのデータを取ることはできないのですか?

取引ツールが規定されているファイルについては、テスターも作業できないのでは?

マルチストラテジーのテストと最適化ができると書いてありますが、よくわかりません。

 
Peresvet Timonkin:

私のようにこのような設定でのテストはできないという理解で合っていますか?

テスターは、履歴からマーケットレビューのデータを取ることはできないのですか?

取引ツールが規定されているファイルについては、テスターも作業できないのでは?

テスターのマニュアルを全部読みましたが、それについての言葉は見つかりませんでした。マルチレート戦略のテストと最適化ができると書かれていますが、それについてはよくわかりません。

努力すれば、何でもできる。例えば、OnInit()で必要な通貨のティックを要求し、それによって市場概観に追加し、市場概観で作業します。しかし、この場合、どう考えても通貨の一覧表があるはずです。リストで作業するか、マーケットレポートにあるもので作業するか、2つのオプションが考えられます。従って、OnInit()の中で、テスターで動作する場合は、リストだけで動作するという条件を設定する必要があります。そんなExpert Advisorがマーケットにあるのです。

ファイルについて:できるのですが、ファイルの場所を考えなければなりません。テスターフォルダーまたは全端末の共有フォルダーに配置する必要があります。あるいは資料として挿入する。
 

トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム

MetaTrader 5 Strategy Tester: バグ、不具合、改善のための提案

fxsaber, 2020.01.22 23:08

マイビルド2300。ポイントモードでは、音量を考慮することを学びました。


ただし、このモードでのInOutトレードの利益は正しく計算されません。


通常モードで実行すれば、利益は正しいのです。



そのため、現在Nettingではpipsモードが機能しません(利益が過大に表示されます)。


2310が該当します。Nettingでpipsモードを使用することはできません。

 

2310で、頻繁に修正を加える私のEAがプロファイリングできないことに気づきました。

テスト用のスケッチをした。

input int inFakeRange = 0;
sinput int inOffset = 10000;

#include <MT4Orders.mqh> // https://www.mql5.com/ru/code/16006

#define  Ask SymbolInfoDouble(_Symbol, SYMBOL_ASK)

void OnTick()
{
  static long Ticket = -1;
  
  if (Ticket == -1)
    Ticket = OrderSend(_Symbol, OP_BUYLIMIT, 1, Ask - inOffset * _Point, 0, 0, 0);
  else
    OrderModify(Ticket, Ask - inOffset * _Point, 0, 0, 0);
}

リアルティクモードで文字通り即座にプロファイリングすることは不可能で、すべてが非常に遅いことを再現しています。


ただし、リアルティクで実行するとターミナルがHOLDになる(pipsモードでも)1パス!ある種の殺人者だ


その最適化(最初のパラメータで)を行うと、何事もなく終了するのですが、パフォーマンスについて悪い考えが浮かんできて...。


HH Visualizer で実行し、終了する前に閉じると、Terminal がハングアップしてしまいます。

 
fxsaber:

最初のパラメーターを)最適化すれば問題ないのですが、パフォーマンスについて悪い考えが出てしまう...。

Virtualのバリエーションと比較するしかないですね。

input int inFakeRange = 0;
sinput int inOffset = 10000;

#include <MT4Orders.mqh> // https://www.mql5.com/ru/code/16006

#define  VIRTUAL_TESTER // Запуск в виртуальном торговом окружении
#include <fxsaber\Virtual\Virtual.mqh> // https://www.mql5.com/ru/code/22577

#define  Ask SymbolInfoDouble(_Symbol, SYMBOL_ASK)

void OnTick()
{
  static long Ticket = -1;
  
  if (Ticket == -1)
    Ticket = OrderSend(_Symbol, OP_BUYLIMIT, 1, Ask - inOffset * _Point, 0, 0, 0);
  else
    OrderModify(Ticket, Ask - inOffset * _Point, 0, 0, 0);
}


ノーマルバリアント。

optimization finished, total passes 5
optimization done in 1 minutes 04 seconds
shortest pass 0:00:12.560, longest pass 0:00:13.608, average pass 0:00:12.808
local 5 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)


バーチャルで。

optimization finished, total passes 5
optimization done in 0 minutes 06 seconds
shortest pass 0:00:00.954, longest pass 0:00:02.060, average pass 0:00:01.231
local 5 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)


Pipsモードの基本的なExpert Advisorでは、テスターは13倍も遅くなり、チェックもされません。ビルド2310。

 
fxsaber:

テスターでは、チェックすらないピップスモードの初級EAで13倍も遅くなっていますよ。ビルド2310。

このEAでもPipsモードではVirtualの2倍以上の速度が出ます。

input int inFakeRange = 0;
sinput int inOffset = 10000;

#include <MT4Orders.mqh> // https://www.mql5.com/ru/code/16006

#define  Ask SymbolInfoDouble(_Symbol, SYMBOL_ASK)

void OnTick()
{
  static long Ticket = -1;
  
  if (Ticket == -1)
    Ticket = OrderSend(_Symbol, OP_BUYLIMIT, 1, Ask - inOffset * _Point, 0, 0, 0);
}

なぜ、このようなことが起こるのでしょうか。Expert Advisor全体では、最初のティックでBuyLimitを設定しています。それ以外にはないのです!