【MQL5】KuniRangeBreakoutEA
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
* 目次 [#w2892cc0]
#contents
* はじめに [#m6ecd251]
このページは半自動RangeBreakoutのEAを作るメモである。
手動だと、レジサポライン付近で待機していないといけないの...
* EAだいたいの動き [#jd9da880]
このEAは、トレンドフォロー時専用のEAなのである。なので、...
* 仕様 [#o3b436ee]
- 指定した時刻で自動売買を停止できるように設定できるよう...
- ブレークアウト時は指定したロットで2つの注文を入れる。...
- レジストラインの値はEA実行時に手動で入力する
- 入力した値に基づいてStopBuyオーダを設定する。エントリー...
- ロスカットは、レジストラインに対してスワップポイント+30...
- ロスカット時は、直近高値にレジストラインの値を再度設置...
- 利確ポイントは複数の条件で利確する。
* 利確条件 [#qf741547]
- リスクリワード、レンジ幅に対して指定した倍率のポイント...
- 移動平均が下向きになったら、2つ目を利確する
- 急激な値上がりをした場合は利確をし急激な値上がりの半値...
- 2つ目の利確時に売り注文も入れる
- 売り注文が1つのとき、5期間移動平均と20期間移動平均...
- 5期間移動平均が横ばいになったら売り注文を1つ閉じる
- 5期間移動平均が上向きになったら、売り注文を閉じる
* 微調整 [#r6a7eb7d]
利確の判定で出来高の増加が3期間連続の場合は、条件を厳しめ...
** 入力項目 [#l3680bd9]
- 自動売買開始時刻と終了時刻: UTCまたは日本時間で指定可能。
- タイムゾーン: ユーザーが選択可能。
- レジスタンスライン値とサポートライン値: 手動入力。
- リスク許容金額: ドルで入力し、ロスカット金額から自動で...
- 移動平均傾きの閾値: ユーザーが指定したATRのn%を使用。
- 動作モード: ブレークアウト待ち、レジストラインブレーク...
** メソッド [#y99dda37]
- トレンド判定: レジスタンスとサポートラインの範囲内をボ...
- エントリー注文設定: レジスタンスまたはサポートラインを...
- 利確判定: 指定条件に基づく利確タイミングの判定。
- ロスカット判定: レジスタンスまたはサポートラインに基づ...
- 移動平均傾き判定: 指定されたATRのパーセンテージを閾値と...
** 共通メソッド [#oa4c8748]
- 価格データ取得: 現在の価格データの取得。
- 時間チェック: 指定された時間が到達したかのチェック。
* 詳細設計 [#s6e28787]
** 入力項目 [#wd37db52]
- 自動売買開始時刻と終了時刻:
-- 変数
input string inputStartTime = "2023.01.01 00:00";
input string inputEndTime = "2023.12.31 23:59";
-- 書式:
YYYY.MM.DD HH:MM(年月日 時分)
- タイムゾーン:
-- Enum:
TimeZone(UTC、JST)
-- 変数:
input TimeZone timeZone = UTC;(デフォルトはUTC)
- レジスタンスライン値とサポートライン値:
-- 変数:
input double resistanceLine;
input double supportLine;
- リスク金額:
-- 変数:
input double riskMoney;
** グローバル変数 [#sc75ec85]
- currentTick (MqlTick型):
-- 説明: 現在の市場のティックデータを保持する。これには価...
-- 使用例: MqlTick currentTick;
- trade (CTrade型):
-- 説明: 取引操作を管理するためのオブジェクト。注文の発注...
-- 使用例: CTrade trade;
- 5期間移動平均 (MA) ハンドルとバッファ:
-- ハンドル: int handleMA5;
-- バッファ: double bufferMA5[];
- 20期間移動平均 (MA) ハンドルとバッファ:
-- ハンドル: int handleMA20;
-- バッファ: double bufferMA20[];
-- 説明: 20期間移動平均のデータを保持。
- ATR ハンドルとバッファ:
-- ハンドル: int handleATR;
-- バッファ: double bufferATR[];
-- 説明: 平均真の範囲 (ATR) のデータを保持。
** メソッド [#u2460688]
- トレンド判定 (IsTrend):
-- 引数: double resistanceLine, double supportLine
-- 戻り値: bool (トレンドがある場合は true)
-- 機能: レジスタンスとサポートラインの範囲内をボックス相...
- エントリー注文設定 (SetEntryOrder):
-- 引数: double lineValue, bool isResistance
-- 戻り値: なし
-- 機能: レジスタンスまたはサポートラインを超えた際にエン...
- 利確判定 (CheckTakeProfit):
-- 引数: double takeProfitLevel
-- 戻り値: bool (利確する場合は true)
-- 機能: 指定条件に基づいて利確するタイミングを判定。
- ロスカット判定 (CheckStopLoss):
-- 引数: double stopLossLevel
-- 戻り値: bool (ロスカットする場合は true)
-- 機能: レジスタンスまたはサポートラインに基づいてロスカ...
- 移動平均傾き判定 (CheckMovingAverageSlope):
-- 引数: double atrThreshold
-- 戻り値: int (傾きの状態を表す)
-- 機能: 指定されたATRのパーセンテージを閾値として移動平...
* 実装計画 [#o913638c]
手始めに以下の2項目を実装するのを目標にする
** ステップ1: 指定時間範囲での売買機能の実装 [#nfc594ac]
*** 時間管理メソッドの開発: [#fad61f3f]
- 時間管理メソッドの開発:
- これにより、EAは指定された時間範囲内でのみ取引を行いま...
*** Buy Stop オーダーの実装: [#le54bf2c]
- 時間管理メソッドの開発:
-- 指定された時間範囲を管理し、現在時刻がその範囲内かを判...
-- これにより、EAは指定された時間範囲内でのみ取引を行いま...
- Buy Stop オーダーの実装:
-- レジスタンスラインを超えた際にBuy Stop オーダーを発注...
-- 市場がレジスタンスラインを超えると、EAは自動的に取引を...
** ステップ2: ロスカット検出と再エントリー機能の実装 [#g3...
- ロスカット検出メソッドの開発:
-- 取引がロスカットに達したかを検出するメソッドを開発。
-- これにより、EAは取引が不利になった場合にそれを認識し、...
- ロスカット後の再エントリー:
-- ロスカットが発生した後、再度条件が満たされるとBuy Stop...
-- これにより、市場が再び有利な方向に動いた場合に、EAは追...
終了行:
* 目次 [#w2892cc0]
#contents
* はじめに [#m6ecd251]
このページは半自動RangeBreakoutのEAを作るメモである。
手動だと、レジサポライン付近で待機していないといけないの...
* EAだいたいの動き [#jd9da880]
このEAは、トレンドフォロー時専用のEAなのである。なので、...
* 仕様 [#o3b436ee]
- 指定した時刻で自動売買を停止できるように設定できるよう...
- ブレークアウト時は指定したロットで2つの注文を入れる。...
- レジストラインの値はEA実行時に手動で入力する
- 入力した値に基づいてStopBuyオーダを設定する。エントリー...
- ロスカットは、レジストラインに対してスワップポイント+30...
- ロスカット時は、直近高値にレジストラインの値を再度設置...
- 利確ポイントは複数の条件で利確する。
* 利確条件 [#qf741547]
- リスクリワード、レンジ幅に対して指定した倍率のポイント...
- 移動平均が下向きになったら、2つ目を利確する
- 急激な値上がりをした場合は利確をし急激な値上がりの半値...
- 2つ目の利確時に売り注文も入れる
- 売り注文が1つのとき、5期間移動平均と20期間移動平均...
- 5期間移動平均が横ばいになったら売り注文を1つ閉じる
- 5期間移動平均が上向きになったら、売り注文を閉じる
* 微調整 [#r6a7eb7d]
利確の判定で出来高の増加が3期間連続の場合は、条件を厳しめ...
** 入力項目 [#l3680bd9]
- 自動売買開始時刻と終了時刻: UTCまたは日本時間で指定可能。
- タイムゾーン: ユーザーが選択可能。
- レジスタンスライン値とサポートライン値: 手動入力。
- リスク許容金額: ドルで入力し、ロスカット金額から自動で...
- 移動平均傾きの閾値: ユーザーが指定したATRのn%を使用。
- 動作モード: ブレークアウト待ち、レジストラインブレーク...
** メソッド [#y99dda37]
- トレンド判定: レジスタンスとサポートラインの範囲内をボ...
- エントリー注文設定: レジスタンスまたはサポートラインを...
- 利確判定: 指定条件に基づく利確タイミングの判定。
- ロスカット判定: レジスタンスまたはサポートラインに基づ...
- 移動平均傾き判定: 指定されたATRのパーセンテージを閾値と...
** 共通メソッド [#oa4c8748]
- 価格データ取得: 現在の価格データの取得。
- 時間チェック: 指定された時間が到達したかのチェック。
* 詳細設計 [#s6e28787]
** 入力項目 [#wd37db52]
- 自動売買開始時刻と終了時刻:
-- 変数
input string inputStartTime = "2023.01.01 00:00";
input string inputEndTime = "2023.12.31 23:59";
-- 書式:
YYYY.MM.DD HH:MM(年月日 時分)
- タイムゾーン:
-- Enum:
TimeZone(UTC、JST)
-- 変数:
input TimeZone timeZone = UTC;(デフォルトはUTC)
- レジスタンスライン値とサポートライン値:
-- 変数:
input double resistanceLine;
input double supportLine;
- リスク金額:
-- 変数:
input double riskMoney;
** グローバル変数 [#sc75ec85]
- currentTick (MqlTick型):
-- 説明: 現在の市場のティックデータを保持する。これには価...
-- 使用例: MqlTick currentTick;
- trade (CTrade型):
-- 説明: 取引操作を管理するためのオブジェクト。注文の発注...
-- 使用例: CTrade trade;
- 5期間移動平均 (MA) ハンドルとバッファ:
-- ハンドル: int handleMA5;
-- バッファ: double bufferMA5[];
- 20期間移動平均 (MA) ハンドルとバッファ:
-- ハンドル: int handleMA20;
-- バッファ: double bufferMA20[];
-- 説明: 20期間移動平均のデータを保持。
- ATR ハンドルとバッファ:
-- ハンドル: int handleATR;
-- バッファ: double bufferATR[];
-- 説明: 平均真の範囲 (ATR) のデータを保持。
** メソッド [#u2460688]
- トレンド判定 (IsTrend):
-- 引数: double resistanceLine, double supportLine
-- 戻り値: bool (トレンドがある場合は true)
-- 機能: レジスタンスとサポートラインの範囲内をボックス相...
- エントリー注文設定 (SetEntryOrder):
-- 引数: double lineValue, bool isResistance
-- 戻り値: なし
-- 機能: レジスタンスまたはサポートラインを超えた際にエン...
- 利確判定 (CheckTakeProfit):
-- 引数: double takeProfitLevel
-- 戻り値: bool (利確する場合は true)
-- 機能: 指定条件に基づいて利確するタイミングを判定。
- ロスカット判定 (CheckStopLoss):
-- 引数: double stopLossLevel
-- 戻り値: bool (ロスカットする場合は true)
-- 機能: レジスタンスまたはサポートラインに基づいてロスカ...
- 移動平均傾き判定 (CheckMovingAverageSlope):
-- 引数: double atrThreshold
-- 戻り値: int (傾きの状態を表す)
-- 機能: 指定されたATRのパーセンテージを閾値として移動平...
* 実装計画 [#o913638c]
手始めに以下の2項目を実装するのを目標にする
** ステップ1: 指定時間範囲での売買機能の実装 [#nfc594ac]
*** 時間管理メソッドの開発: [#fad61f3f]
- 時間管理メソッドの開発:
- これにより、EAは指定された時間範囲内でのみ取引を行いま...
*** Buy Stop オーダーの実装: [#le54bf2c]
- 時間管理メソッドの開発:
-- 指定された時間範囲を管理し、現在時刻がその範囲内かを判...
-- これにより、EAは指定された時間範囲内でのみ取引を行いま...
- Buy Stop オーダーの実装:
-- レジスタンスラインを超えた際にBuy Stop オーダーを発注...
-- 市場がレジスタンスラインを超えると、EAは自動的に取引を...
** ステップ2: ロスカット検出と再エントリー機能の実装 [#g3...
- ロスカット検出メソッドの開発:
-- 取引がロスカットに達したかを検出するメソッドを開発。
-- これにより、EAは取引が不利になった場合にそれを認識し、...
- ロスカット後の再エントリー:
-- ロスカットが発生した後、再度条件が満たされるとBuy Stop...
-- これにより、市場が再び有利な方向に動いた場合に、EAは追...
ページ名: