無料でロボットをダウンロードする方法を見る
Facebook上で私たちを見つけてください。
私たちのファンページに参加してください
私たちのファンページに参加してください
スクリプトを気に入りましたか?MetaTrader 5ターミナルの中でそれを試してみてください。
News Filter for the Strategy Tester (DST-corrected calendar export) - MetaTrader 5のためのライブラリ
- ビュー:
- 19
- 評価:
- パブリッシュ済み:
-
このコードに基づいたロボットまたはインジケーターが必要なら、フリーランスでご注文ください フリーランスに移動
問題点
ほとんどのニュースフィルターは、MQL5の経済カレンダー(CalendarValueHistory)を参照しています。このカレンダーはストラテジーテスターには存在しないため、バックテストではこれらのフィルターは黙って何もしません。その結果、EAはNFP、CPI、あるいは金利決定の直前に取引を行ってしまい、バックテストの結果は実取引時の挙動と一致しなくなってしまいます。 私のテストの一つでは、XAUUSDの保留注文が米国CPI発表の5分前に約定し、ストップロスが45米ドルのスリッページを伴って執行されました。この1回の取引だけで、計画されたリスクの6.5倍の損失が発生したのです。
2つ目として、あまり知られていない問題があります。ターミナルは、過去のカレンダー上の時刻を「現在の」サーバーオフセットで変換してしまうのです。GMT+2/GMT+3のブローカーで夏期にデータをエクスポートすると、冬のイベントはすべて1時間遅れて表示されます(サーバー時間の15:30ではなく、16:30にNFPが発表されるなど)。 これらの時刻に基づいて構築されたフィルターは、1年の半分において誤った時刻をブロックしてしまいます。
解決策 - 3つのファイル
NewsCalendarExport.mq5(スクリプト) - イベントを Terminal\Common\Files\NewsCalendar.csv にエクスポートし、各イベントをその日付のサーバーオフセットで再計算します。最後に自己チェックを出力します:USD関連イベントの最も頻度の高い時刻は、冬と夏で同一でなければなりません。
NewsFilter.mqh(クラス CNewsFilter) - ライブ取引とバックテストの両方に対応する単一のフィルターです。 実取引では経済カレンダーを読み込み(1分間に最大1回クエリを実行)、ストラテジーテスターではCSVファイルを読み込みます。対象となるのは、シンボルの通貨のみです(EURUSD:EUR + USD、XAUUSD:USD、USD建ての指数CFD:USD)。
NewsFilter_Example.mq5 - ニュースウィンドウの開始と終了時にメッセージを表示し、チャート上にブロックされたウィンドウを描画する最小限のEAです。これにより、テスターのビジュアルモードでフィルターの動作を確認できます。
使用方法
NewsFilter.mqhをMQL5\Includeに、NewsCalendarExport.mq5をMQL5\Scriptsに、NewsFilter_Example.mq5をMQL5\Expertsにコピーします。スクリプトとサンプルをコンパイルします(.mqhファイルはこれらと一緒にコンパイルされます)。
接続済みのターミナルの任意のチャート上で、NewsCalendarExportを1回実行してください。「Experts」タブに「OK: 冬夏で時刻が同じ」と表示されるはずです。
EAに以下のコードを追加してください:
C++
#include <NewsFilter.mqh>
CNewsFilter news;
int OnInit()
{
news.Init(_Symbol, 30, 30); // 各イベントの前後30分間をブロックする
return(INIT_SUCCEEDED);
}
void OnTick()
{
if(news.IsBlocked())
return; // ニュース中は新しいエントリがない
// ... エントリーロジック ...
}
通常通りバックテストを実行します。ジャーナルには、その銘柄に対して読み込まれたイベントの数が表示されます。
スクリプトの入力パラメータ
イベントのエクスポート元:エクスポートの開始日。
また、N日先までの予定イベントもエクスポート:今後のイベントを含みます。
通貨:カンマ区切りのリスト(デフォルト:USD、EUR、GBP、JPY、CAD、AUD、NZD、CHF)。
重要度:影響度の高いイベントのみ、または中~高影響度のイベント。
ブローカーサーバーの夏時間ルール:米国ルール(デフォルト、サーバー = ニューヨーク + 7h、ほとんどの GMT+2/+3 ブローカー)、EU ルール、または夏時間なし。
ファイル名:Terminal\Common\Files に保存されます。
CNewsFilter::Init(symbol, minutesBefore, minutesAfter, mediumToo = false, csvFile = "NewsCalendar.csv")
注記および制限事項
FTMO(GMT+2 / GMT+3、米国夏時間ルール)および IC Markets EU でテスト済み。 出力例:5645 件のイベントがエクスポートされ、そのうち 1897 件が 1 時間ずれています。修正前は、USD の最も頻繁な時間は冬が 16:30、夏が 15:30 でしたが、修正後は両シーズンとも 15:30 になりました。
自己診断で冬と夏の時間が依然として異なる場合は、別の「ブローカーサーバーの夏時間ルール」を試してみてください。
MQL5カレンダーの履歴は限定的であり、ターミナルによって異なります。私のターミナルでは2020年から始まっているため、それ以前のバックテストにはイベントが含まれません。
シンボルの通貨のみが使用されるため、指数や商品については、見積通貨によってどのイベントが適用されるかが決まります。
リモートエージェントおよびクラウドエージェントは Common\Files を読み取ることができないため、ローカルエージェントを使用して最適化してください。
MQL5カレンダーには、影響度の大きいイベントがほとんどない通貨もあります(例:AUD)。そのような通貨には「中~高影響度」を使用してください。
このフィルターは、EAに対して「新しいトレードをいつ開いてはいけないか」を指示するだけです。すでにオープンしているポジションの管理は、EA次第です。
新しいイベントを反映させるため、スクリプトを随時再実行してください。
このフィルターの統合についてサポートが必要ですか?
プログラミングの知識がなく、このニュースフィルターを既存のEAに組み込みたい場合、またはプロップファームの評価に合わせてカスタマイズされたリスク管理ルールが必要な場合は、私のMQL5フリーランスプロフィールから直接ご連絡ください。喜んでコーディングいたします!
バージョン 1.00 - 初回リリース(例:EA 1.01:チャート上にブロックされたニュースウィンドウを表示します)。
MetaQuotes Ltdによって英語から翻訳されました。
元のコード: https://www.mql5.com/en/code/77617
CSetupLedger: a per-setup win rate ledger for Expert Advisors
EA内のあらゆるセットアップタイプについて、それらを1つのエクイティカーブにまとめずに、それぞれ個別の記録としてスコアを算出します。初期化時に口座の取引履歴から自動的に再構築されるため、再起動しても記録が消えることはありません。生の勝率の横にウィルソンスコアの下限値を表示するため、3回連続の勝ちトレードがあっても、それが優位性であるかのように見えることを防ぎます。
Session Candle Counter: candles numbered from the cash open, DST aware
フランクフルト、ロンドン、ニューヨーク、または東京の現物市場開始時刻を起点として、当日の各ローソク足に番号を振ります。基準時刻は、取引所の現地時間からブローカーのサーバー時間へ、自動夏時間調整を適用して変換されるため、夏時間・冬時間を問わず、市場開始後の最初のローソク足は常に1番となります。
Safe Risk Manager EA - Daily Loss, Break-Even and Trailing Stop
リスク管理機能、スプレッド保護、継続的な日次損失制限、ブレークイーブン、トレーリングストップを備えた、MT5のヘッジング口座向け教育用取引パネル。
Trade Reporter Lite - Telegram trade notifications
MT5での売買の開始・終了情報をTelegramチャットに投稿します:ポジション方向、銘柄、エントリー価格、ストップ価格、ターゲット価格(ピップス単位)、ロット数、そして約定時の結果、ピップス、R倍率、保有時間。リトライキュー機能付き、再起動後も正常に動作し、自身では取引を行いません。MT5用の無料TelegramおよびDiscord取引通知ツールです。