アイデア提供者: 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クラス
| 設定パラメータ | |
初期化 |
初期化時に設定される主なパラメータ:
|
GetFlag |
初期化フラグの状態を返します。基本EAから呼び出す際に、CMovingクラスの内部変数m_initのステータスを確認するための補助機能として使用されます。 |
LotsOrRisk |
ポジションロットの計算方法を定義します:手動(ロット数パラメータがゼロ以上)か、取引ごとのフリーマージンのパーセンテージ(リスクパラメータがゼロ以上)で計算されます。 |
CreateMA |
移動平均インジケーターを作成します。 |
TakeProfit |
テイクプロフィットパラメータを定義します。 |
Multiplier |
ロット増加パラメータを定義します。 |
DistanceMA |
移動平均インジケーターからのインデントを定義します。 |
ProfitPlus |
全体的な利益がある場合の追加インデントを定義します。 |
| メイン関数 | |
Processing |
すべての計算が行われるメイン関数です。 |
| 保護されたアクセス指定子を持つクラス関数 | |
RefreshRates |
シンボルのための価格を更新します。 |
CheckVolumeValue |
入力されたポジションボリュームの正確性を確認します(手動でポジションボリュームを定義する際に使用されます)。 |
IsFillingTypeAllowed |
オーダーのフィリングモードを確認します。 |
iMAGet |
インジケーターの移動平均値を取得します。 |
CalculateAllPositions |
呼び出しごとのポジション情報を取得します:
|
Prices |
設定された移動平均からの距離を考慮して、BUYおよびSELLポジションの基準価格を取得します。 |
LotCheck |
ポジションボリュームの確認と正規化(手動でポジションサイズを定義する際に使用されます)。 |
OpenBuy |
BUYポジションをオープンします。 |
OpenSell |
SELLポジションをオープンします。 |
PrintResult |
ポジションオープンの取引操作の結果を印刷します。 |
SetTakeProfit |
ポジションのテイクプロフィットレベルを設定するか、すべてのテイクプロフィットおよびストップロスレベルを削除します(delete_take_profitパラメータが「true」の場合)。 |
CompareDoubles |
2つの実数が等しいかを比較します。 |
AwerageTakeProfit |
特定のタイプのポジションpos_typeのための単一のテイクプロフィットレベルを計算し設定します。 |
GBPUSD, H1, "リアルティックに基づくすべてのティック"。
