私たちのファンページに参加してください
- ビュー:
- 51
- 評価:
- パブリッシュ済み:
- 2025.06.06 11:53
-
このコードに基づいたロボットまたはインジケーターが必要なら、フリーランスでご注文ください フリーランスに移動
XAUUSD (金) は、その高いボラティリティと利益の可能性から、外国為替市場で人気のある取引商品です。しかし、非農業部門雇用者数、FRBの金利決定、欧州中央銀行の発表など、主要な経済ニュースイベントが価格の大幅な上昇を引き起こし、自動売買戦略にリスクをもたらすことがあります。このようなリスクを管理するために、エキスパートアドバイザー(EA)のニュースフィルターを使用すると、インパクトの大きいニュースの時間帯に取引を一時停止することができます。この記事では、MT5でXAUUSD取引を行うためのシンプルなニュースフィルターの作成方法を紹介し、実践的なコード例を共有します。
XAUUSD取引にニュースフィルターを使用する理由
米ドル、英ポンド、またはユーロに関連するニュースイベントは、しばしばXAUUSD価格の急激な動きにつながります。例えば、FRBの利上げ発表が金価格の急落を引き起こし、自動売買システムでストップロスや予想外の損失を引き起こすかもしれません。ニュースフィルターは次のような場合に役立ちます:
- 取引の一時停止: 主要ニュースの前後で一時的に取引を停止し、ボラティリティを回避します。
- リスクの軽減: 市場の急激な変動からお客様の口座を守ります。
- 一貫性の向上: 安定した市場環境でのみEAが取引を行うようにします。
次のセクションでは、XAUUSD取引戦略にニュースフィルターを実装するための簡単なMQL5コードスニペットを提供します。
//+------------------------------------------------------------------+ | XAUUSD取引のためのシンプルなニュースフィルター| //+------------------------------------------------------------------+ #property copyright "Duy Van NGUY" #property link " https://www.mql5.com/ja/users/wazatrader" #property version "1.00" input int MinutesBeforeNews = 15; // ニュースの数分前に取引を一時停止 input int MinutesAfterNews = 15; // ニュースの数分後に取引再開 // シミュレートされたニュース時間(デモのため、実際のニュースデータソースに置き換える) datetime newsTimes[] = {D'2025.05.07 14:30:00'}; // 例2025年5月7日14時30分のニュース //+------------------------------------------------------------------+ //| ニュースのために取引を一時停止すべきかどうかをチェックする。 //+------------------------------------------------------------------+ bool IsNewsTime() { datetime currentTime = TimeCurrent(); for(int i = 0; i < ArraySize(newsTimes); i++) { datetime newsTime = newsTimes[i]; datetime startPause = newsTime - MinutesBeforeNews * 60; // ニュースのX分前に一時停止 datetime endPause = newsTime + MinutesAfterNews * 60; // ニュースのX分後に再開 if(currentTime >= startPause && currentTime <= endPause) { Print("News Filter: Trading paused due to upcoming news at ", newsTime); return true; // 取引を一時停止する } } return false; // 安全な取引 } //+------------------------------------------------------------------+ //| エキスパート初期化関数| //+------------------------------------------------------------------+ int OnInit() { return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| エキスパート・ティック機能| //+------------------------------------------------------------------+ void OnTick() { if(IsNewsTime()) { return; // ニュースの時間帯は取引をスキップする } // ここにXAUUSDの取引ロジックを追加する。 Print("Safe to trade XAUUSD"); } //+------------------------------------------------------------------+ |エキスパート初期化関数| //+------------------------------------------------------------------+ void OnDeinit(const int reason) { // 必要に応じてコードをクリーンアップする } //+------------------------------------------------------------------+
コードの説明
- 入力 MinutesBeforeNewsと MinutesAfterNewsで、ニュースイベントの前後で取引を一時停止する時間窓(分単位)を定義できます。
- ニュースの時間: newsTimes 配列には、あらかじめ定義されたニュースイベントの時間(例:2025 年 5 月 7 日 14:30)が格納されています。実際には、これを経済カレンダー API からの実際のニュースフィードに置き換えることができます。
- ロジック IsNewsTime() 関数は、現在時刻(TimeCurrent()) とニュース・イベントの時刻を比較します。現在時刻が一時停止ウィンドウ内にある場合、取引は停止される。
- 使用方法 取引を実行する前にOnTick() 関数内でIsNewsTime() を呼び出すことにより、このフィルターをEAに統合します。
XAU OneShot EA MT5でXAUSD取引を強化する
上記のコードは基本的なニュースフィルターを提供しますが、XAUUSD取引にはより強固なソリューションが必要かもしれません。そこで、私はXAU OneShot EA MT5を 開発しました。これは、高度なリスク管理を備えた金取引専用のエキスパートアドバイザーです。これには以下が含まれます:
- 米ドル/ポンド/ユーロの主要なニュースイベントの前後15分間に取引を一時停止する内蔵ニュースフィルター。
- 利益を確定するための自動ブレイクイーブンとトレイリングストップ。
- パーシャルテイクプロフィット(ポジションの50%をクローズ)により、利益を確保しながら残りを実行させます。
- 過度のドローダウンからお客様の口座を保護するデイリーロスリミット。
結論
ニュースフィルターをXAUUSD取引戦略に組み込むことは、不安定なニュース期間中のリスクを管理するシンプルで効果的な方法です。この記事で提供されたコードは、あなたのEA開発の出発点として役立ちます。より包括的なソリューションとして、XAU OneShot EA MT5を お試しください。良い取引を!
MetaQuotes Ltdによって英語から翻訳されました。
元のコード: https://www.mql5.com/en/code/59130

市場のトレンドや支持線、抵抗線を判断するための指標。 出来高データがある場合はMFIで計算し、ない場合はRSIで計算する。 モメンタム:RSIとMFI ボラティリティ:ATR

タイマー用コールバック・インターフェース

適応移動平均線は、ノイズの影響を受けにくい移動平均線を作るときに使われ、トレンドを検知する際にラグが最小に抑えられるという特徴を持ちます。

アクセルレーション/デセレレーションインジケーター(AC)は現在の市場を動かす力の加速と減速を測ります。