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

 
traveller00:
はい、パラメータからコピーして、どのようなフォームが期待されているのかを見ました。しかし、そのような値を扱うのはあまり便利 ではありません。 そこで、ソースのように、そこに日付フォーマットのサポートを導入できないかと考えたわけです。

セットファイルを編集している人ですか?


もしdatetime-intputsが数字ではなく文字列として表示される(set-files, CTRL+C tester, tpl-files, and probably something else)と、このデータをパースするための利便性がすべて崩壊します。

これで入力データはdouble、long、stringの3種類だけとなった。最初の2つは常に数字です。こちらはdatetimeだけでなく、colorやenumなど、string以外のものも含まれています。これ、超便利です!


エンティティを1つ増やして、多くのコードを使えなくするのは、あまり賢明ではありません。コメントがあります。以下は、自動生成されたセットの例です。

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

ライブラリ: TesterCache

fxsaber, 2019.11.11 04:45

; saved on 2019.11.13 19:40:01
; Experts\Examples\MACD\MACD Sample LImitTP.ex5
; EURUSD
; 2019.09.01 - 2019.11.13
; 479, 10, Max, 47.92, -253.60
;
InpLots=0.1
InpTakeProfit=200||10||5||500||Y
InpTrailingStop=290||30||10||300||Y
InpMACDOpenLevel=5||5||5||200||Y
InpMACDCloseLevel=180||5||5||200||Y
InpMATrendPeriod=8||1||1||200||Y
;
; Pass = 1838
; initial_deposit = 10000.0
; withdrawal = 0.0
; profit = 479.15
; grossprofit = 479.15
; grossloss = 0.0
; maxprofit = 99.8
; minprofit = 0.0
; conprofitmax = 479.15
; maxconprofit = 479.15
; conlossmax = 0.0
; maxconloss = 0.0
; balance_min = 10000.0
; maxdrawdown = 0.0
; drawdownpercent = 0.0
; reldrawdown = 0.0
; reldrawdownpercent = 0.0
; equity_min = 9997.700000000001
; maxdrawdown_e = 253.6000000000004
; drawdownpercent_e = 2.457388152985982
; reldrawdown_e = 253.6000000000004
; reldrawdownpercnt_e = 2.457388152985982
; expected_payoff = 47.91500000000001
; profit_factor = 1.797693134862316 e+308
; recovery_factor = 1.889392744479493
; sharpe_ratio = 1.069726339729858
; margin_level = 1.797693134862316 e+308
; custom_fitness = 0.0
; deals = 15
; trades = 10
; profittrades = 10
; losstrades = 0
; shorttrades = 6
; longtrades = 4
; winshorttrades = 6
; winlongtrades = 4
; conprofitmax_trades = 10
; maxconprofit_trades = 10
; conlossmax_trades = 0
; maxconloss_trades = 0
; avgconwinners = 10
; avgconloosers = 0
; 
; version = 515
; copyright = Copyright 2000-2019, MetaQuotes Software Corp.
; name = TesterOptCache
; header_size = 2526
; record_size = 328
; expert_name = MACD Sample LImitTP
; expert_path = Experts\Examples\MACD\MACD Sample LImitTP.ex5
; server = MetaQuotes-Beta
; symbol = EURUSD
; (ENUM_TIMEFRAMES)period = PERIOD_M1
; date_from = 2019.09.01 00:00:00
; date_to = 2019.11.13 00:00:00
; date_forward = 1970.01.01 00:00:00
; opt_mode = 1
; ticks_mode = 4
; last_criterion = 0
; msc_min = 501
; msc_max = 2342
; msc_avg = 801
; group = demo (netting)
; trade_currency = USD
; trade_deposit = 10000
; trade_condition = 0
; trade_leverage = 100
; trade_hedging = 1
; trade_currency_digits = 2
; trade_pips = 0
; parameters_size = 28
; parameters_total = 6
; opt_params_size = 40
; opt_params_total = 5
; dwords_cnt = 0
; snapshot_size = 0
; passes_total = 0
; passes_passed = 2510

他の人はどうか知りませんが、セットファイルにすべての情報が含まれていると便利ですね。それが何なのか、どこから来て、いくらなのかを把握するのはとても早いです。


もういいんじゃないですか?


ZZY 「datetime」と「optimized」を覚えておくと、「Start」「Step」「Stop」を設定することができます。もちろん、GUIでもStepは秒単位で設定されています。

 
CTRL+Cでバッファにコピーして、そのままの数値を残すという意味です。しかし、CTRL+Vによる貼り付けは、古い形式(基本的にulong)と新しい文字列 形式の両方を理解できるように拡張されるべきです。これは何も壊さないはずですが、数値の代わりに文字列を指定したい人のために拡張されます。
 
traveller00:
CTRL+Cでバッファにコピーして、そのままの数値を残すという意味です。しかし、CTRL+Vによるペーストを拡張して、古いフォーマット(基本的にulong)と新しい文字列 フォーマットの両方を理解できるようにします。これは何も壊さないはずですが、数値の代わりに文字列を指定したい人のために拡張されます。

分かりやすくて良い。本当に何も壊れないんです。本当に、CTRL+Vで日付設定してる人っていないんですね。

 
fxsaber:

しかし、CTRL+Vで日付設定をしている人を私は知りません。

むしろ、日付ではなく、日付がどこなのかを含めたパラメータ全般を設定することが重要です。第一に、mql自体が日付フォーマットを保持しているので、それを統一するため、第二に、コメントを多重にしないために、明確にするためです。私のテストでは、目視で評価すべき入力パラメータを生成し、それを追加することができます。

スラバ
そうかもしれませんね。します。

Expert Advisorの入力パラメータの挿入(CTRL+V)を同時にサポートすることは可能ですか?テスト用として、Parametersにぴったりと挿入されています。しかし、テストではなく、単にEAをチャートに追加する場合、Input Parametersタブが貼り付けに対応していないようで、同じパラメータを手入力しなければならないのです。ありがとうございます。

 
traveller00:

EAの入力パラメータの挿入(CTRL+V)にも対応できないか?パラメータでのテストにぴったりと挿入されます。しかし、テストではなく、単にEAをチャートに追加する場合、Input Parametersタブが貼り付けに対応していないようで、同じパラメータを手入力しなければならないのです。ありがとうございます。

とCTRL+C。

 

デベロッパーの皆さん、こんにちは。

なぜか、OnTimerのこのチェックが、Strategy Testerで EAを実行したときにうまくいかないことがあります(どういう関係があるのか分かりません)。

    if (MQLInfoInteger(MQL_PROFILER) == 0 && MQLInfoInteger(MQL_TESTER) == 0) {
        Print("You can't use this version of EA in trade mode!");
        return;
    }

OnInitは常に正常に動作しているようです。

PS.同時に、トレードは必ずしもうまくいくとは限りません。なぜ取引ができないかについては、テストモード用のログを追加します。何らかのフローティングの不具合。
Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
  • www.metatrader5.com
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии (советники) перед началом использования их в реальной торговле. При тестировании советника происходит его однократная прогонка с начальными параметрами на исторических данных. При оптимизации торговая стратегия прогоняется несколько раз с различным набором параметров...
 

MT5テスターの可視化モードにおいて、グラフィカルオブジェクトが期待通りに描画されないという事実に直面したことがあります。テスト用Expert Advisorは、50本目と45本目のバーを基準にした座標で長方形を構築するよう、限界まで簡素化しました。コードは添付ファイルにありますが、すべてのロジックは1行にまとまっています。

if (!IsNewBar()) return;
RectangleCreate(0, "5BarZone", 0, iTime(NULL,0,50), iHigh(NULL,0,50), iTime(NULL,0,0), iLow(NULL,0,45), clrGreen, STYLE_SOLID, 1, true, true);
ChartRedraw(0);

EAは、現在のTFのすべての新しいバーでそのようなチャネルを再描画する必要があります。このような画像になるはずです。


実際には、長方形が縦にも横にも無秩序に伸びて、このような絵になります。


作業用EAのコードにはさらに多くのオブジェクトが含まれ、それぞれがさらに歪んでしまい、結果的にごちゃごちゃになってしまいます。

さらに、テスト用EAを低速で 目視テストすると、ほぼ正しくレンダリングされるのです。しかし、テスト用のExpert Advisorを最高 速度または最高速度に近い速度で実行したり、最低速度でもオブジェクトの多い実際のEAを実行 すると、上記のような歪みが発生するのだそうです。

何が問題なのか、解決できるのか、アドバイスをお願いします。回答を検索しようとしたが失敗した。

どのような形であれ、ご協力をお願いします。

ファイル:
 
Andrey Pogoreltsev:

デベロッパーの皆さん、こんにちは。

なぜかEAを実行するとストラテジーテスターで OnTimerのチェックが効かないことがある(関係ないのかわからない)。

OnInitは常に正常に動作しているようです。

PS.同時に、トレードは必ずしもうまくいくとは限りません。なぜ取引ができないのか、テストモード用のログを追加します。何らかのフローティングの不具合。
&& を || に置き換えてください。
 
Grigori.S.B:

MT5テスターの可視化モードにおいて、グラフィカルオブジェクトが期待通りに描画されないという事実に直面したことがあります。テスト用Expert Advisorは、50本目と45本目のバーを基準にした座標で長方形を構築するよう、限界まで簡素化しました。コードは添付ファイルにありますが、すべてのロジックは1行にまとまっています。

EAは、現在のTFのすべての新しいバーでそのようなチャネルを再描画する必要があります。このような画像になるはずです。


実際には、長方形が縦にも横にも無秩序に伸びて、このような絵になります。


作業用EAのコードにはさらに多くのオブジェクトが含まれ、それぞれがさらに歪んでしまい、結果的にごちゃごちゃになってしまいます。

さらに、テスト用EAを低速で 目視テストすると、ほぼ正しくレンダリングされるのです。しかし、テスト用のExpert Advisorを最高 速度または最高速度に近い速度で実行したり、最低速度でもオブジェクトの多い実際のEAを実行 すると、上記のような歪みが発生するのだそうです。

何が問題なのか、解決できるのか、アドバイスをお願いします。回答を検索しようとしたが失敗した。

どのような形であれ、ご協力をお願いします。

一度作成したオブジェクトの 座標を単純に変更してみる
 
Grigori.S.B:

MT5テスターの可視化モードにおいて、グラフィカルオブジェクトが期待通りに描画されないという事実に直面したことがあります。テスト用Expert Advisorは、50本目と45本目のバーを基準にした座標で長方形を構築するよう、極限まで簡略化しました。コードは添付ファイルにありますが、すべてのロジックは1行にまとまっています。

EAは、現在のTFのすべての新しいバーでそのようなチャネルを再描画する必要があります。このような画像になるはずです。


実際には、長方形が縦にも横にも無秩序に伸びて、このような絵になります。


作業用EAのコードにはさらに多くのオブジェクトが含まれ、それぞれがさらに歪んでしまい、結果的にごちゃごちゃになってしまいます。

さらに、テスト用EAを低速で 目視テストすると、ほぼ正しくレンダリングされるのです。しかし、テスト用のExpert Advisorを最高 速度または最高速度に近い速度で実行したり、最低速度でもオブジェクトの多い実際のEAを実行 すると、上記のような歪みが発生するのだそうです。

何が問題なのか、解決できるのか、アドバイスをお願いします。回答を検索しようとしたが失敗した。

どのような形であれ、ご協力をお願いします。

ERR_OBJECT_ALREADY_EXISTS の ようなエラーがないか、コードをチェックします。

オブジェクトを削除してから再作成するか、または

スラバ
一度作成したオブジェクトの 座標を単純に変更してみる