* 目次 [#w2892cc0]
#contents
* はじめに [#m6ecd251]
RangeBreakoutEAを作る
半自動RangeBreakoutEAを作る

手動だと、レジサポライン付近で待機していないといけないのが時間がもったいないとおもったので、自動化しようと思った。
手動だと、レジサポライン付近で待機していないといけないのが時間がもったいないとおもったので、半自動化しようと思った。

* EAだいたいの動き [#jd9da880]
このEAは、トレンドフォロー時専用のEAなのである。なので、三角持ち合い状態のレンジを絶対にエントリーしないようにするため、どこからどこまでがトレンドゾーンなのかは裁量で判断する必要がある。

* 仕様 [#o3b436ee]
- 指定した時刻で自動売買を停止できるように設定できるようにする。
- ブレークアウト時は指定したロットで2つの注文を入れる。下がる兆しがあれば半分を利確するためである。
- レジストラインの値はEA実行時に手動で入力する
- 入力した値に基づいてStopBuyオーダを設定する。エントリーはレジストラインに対してスワップポイント+1ポイント上に設定する。スワップポイントは必要経費。
- ロスカットは、レジストラインに対してスワップポイント+30ポイント下に置く
- ロスカット時は、直近高値にレジストラインの値を再度設置する
- 利確ポイントは複数の条件で利確する。

* 利確条件 [#qf741547]
- リスクリワード、レンジ幅に対して指定した倍率のポイントにデフォルトで入れる。 -- 5移動平均の傾きが横ばいになったら、1つ利確する
- 移動平均が下向きになったら、2つ目を利確する
- 急激な値上がりをした場合は利確をし急激な値上がりの半値で再エントリーする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) のデータを保持。


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS