ホーム システムトレード 投稿

MetaTrader 5用のVR-Movingエキスパートアドバイザー

添付ファイル
20610.zip (8.81 KB, ダウンロード 0回)

アイデア提供者: Vladimir Pastushak

MQL5コード提供者: Vladimir Karputov

このEAは、移動平均(Moving Average)を基に取引を行います。すべての準備及び取引機能は、CMovingというトレーディングクラスとして、Moving.mqhという別ファイルに実装されています。

設定項目

  • マジックナンバー - EAの一意の識別子;
  • ロット数 - ポジションのボリューム(ゼロ以上のポジションボリュームまたはリスクサイズが指定可能);
  • リスク - 取引ごとのフリーマージンに対するリスクのパーセンテージ(ゼロ以上のポジションボリュームまたはリスクサイズが指定可能);
  • MA: 期間 - 移動平均のインジケーター: 時間枠;
  • MA: 平均化期間 - 移動平均のインジケーター: 平均化期間;
  • MA: 水平シフト - 移動平均のインジケーター: 水平シフト;
  • MA: スムージングタイプ - 移動平均のインジケーター: 平均化メソッド;
  • MA: 価格タイプ - 移動平均のインジケーター: インジケーターが計算される価格の種類;
  • テイクプロフィット - テイクプロフィット(1つのポジションがオープンしている場合);
  • ポジションのロット乗数 - 一連のポジションのボリュームを増加させる;
  • 移動平均からの距離 - 移動平均インジケーターからの距離;
  • 全体的な利益がある場合の追加インデント - 一般的な利益がある場合にインデントを追加。

このEAはスイング原則を使用し、ロット数を増やす可能性があります。また、シンプルな戦略が採用されています:

  • 価格が移動平均インジケーターの上にあり、設定された移動平均からの距離に達した場合、BUYポジションをオープンします。
  • 価格が移動平均インジケーターから下に移動し、設定された移動平均からの距離に達した場合、同じロット数でSELLポジションをオープンします。
  • 価格がBUYポジションの最高価格から設定された移動平均からの距離に達した場合、次のBUYポジションをオープンします。
  • 価格がBUYポジションの最低価格から設定された移動平均からの距離に達した場合、次のSELLポジションをオープンします。

CMovingクラス

設定パラメータ
初期化

初期化時に設定される主なパラメータ:

  • シンボル - EAが動作するシンボルの名前
  • マジック - EAの一意の識別子
  • スリッページ - スリッページ。
GetFlag
初期化フラグの状態を返します。基本EAから呼び出す際に、CMovingクラスの内部変数m_initのステータスを確認するための補助機能として使用されます。
LotsOrRisk
ポジションロットの計算方法を定義します:手動(ロット数パラメータがゼロ以上)か、取引ごとのフリーマージンのパーセンテージ(リスクパラメータがゼロ以上)で計算されます。
CreateMA
移動平均インジケーターを作成します。
TakeProfit
テイクプロフィットパラメータを定義します。
Multiplier
ロット増加パラメータを定義します。
DistanceMA
移動平均インジケーターからのインデントを定義します。
ProfitPlus
全体的な利益がある場合の追加インデントを定義します。
メイン関数
Processing
すべての計算が行われるメイン関数です。
保護されたアクセス指定子を持つクラス関数
RefreshRates
シンボルのための価格を更新します。
CheckVolumeValue
入力されたポジションボリュームの正確性を確認します(手動でポジションボリュームを定義する際に使用されます)。
IsFillingTypeAllowed
オーダーのフィリングモードを確認します。
iMAGet
インジケーターの移動平均値を取得します。
CalculateAllPositions

呼び出しごとのポジション情報を取得します:

  • count_buys - BUYポジションの数;
  • price_highest_buy - 最高BUYポジションの価格;
  • price_lowest_buy - 最低BUYポジションの価格;
  • lot_highest_buy - 最高BUYポジションのボリューム;
  • lot_lowest_buy - 最低BUYポジションのボリューム;
  • total_lots_buy - BUYポジションの総ボリューム;
  • count_sells - SELLポジションの数;
  • price_lowest_sell - 最低SELLポジションの価格;
  • price_highest_sell - 最高SELLポジションの価格;
  • lot_lowest_sell - 最低SELLポジションのボリューム;
  • lot_highest_sell - 最高SELLポジションのボリューム;
  • total_lots_sell - SELLポジションの総ボリューム。
Prices
設定された移動平均からの距離を考慮して、BUYおよびSELLポジションの基準価格を取得します。
LotCheck
ポジションボリュームの確認と正規化(手動でポジションサイズを定義する際に使用されます)。
OpenBuy
BUYポジションをオープンします。
OpenSell
SELLポジションをオープンします。
PrintResult
ポジションオープンの取引操作の結果を印刷します。
SetTakeProfit
ポジションのテイクプロフィットレベルを設定するか、すべてのテイクプロフィットおよびストップロスレベルを削除します(delete_take_profitパラメータが「true」の場合)。
CompareDoubles
2つの実数が等しいかを比較します。
AwerageTakeProfit
特定のタイプのポジションpos_typeのための単一のテイクプロフィットレベルを計算し設定します。

GBPUSD, H1, "リアルティックに基づくすべてのティック"。

VR---MUVING

関連記事

コメント (0)