
ゴールド分割回測ロングポジション戦略は,スウィング取引戦略である.これは過去21日の最高価格と最低価格のゴールド分割点に基づいて信号生成を行い,反測機構を持ち,多頭のみを行い,ロングラインポジションの特徴を有する.
この戦略は,先21日の最高値 (high21) と最低値 (low21) を計算し,その間の差を計算する.取引シグナルは,現在の低値がlow21 + diff * 0.382より高く,前Kラインの閉盘価格が前Kラインの開盘価格より高く,多行する.ストップラインはlow21 + diff * 0.236である.つまり,価格が最近21日間の価格範囲の38.2%の金線分割を突破し,上向きの弾力があるとき,多行する.ストップラインは,金線分割の23.6%に設定する.
金分割線が重要な技術指標として用いられているのは,金分割線が市場における一般的なサポート・レジスタンス・ポイントに対応しているからです.0.382と0.236は,反調位または反発位としてよく監視され,自然界で最も不思議な数字の1つと言えるでしょう.
この戦略の利点は
金分割理論を用いた取引は,比較的成熟した技術分析方法である.
システム上のリスクを減らすために,多重な作業をするだけです.
トレンド追跡メカニズムを用いて,上向きの弾力によって入場を決定する.
リスクのコントロールを可能にする 明確な止損線がある
回測パラメータは調整可能で,異なる市場環境での効果をテストできます.
この戦略にはいくつかのリスクがあります.
市場構造の変化に敏感でない可能性もある.
ストップラインが近いので,夜間GAPで揺れる可能性があります.
状況が急激に変動すると,誤った回帰周期が偽信号を引き起こす可能性があります.
取引量化自体には滑りやすいコストが伴うため,利益にも影響する.
これらのリスクは,回測周期パラメータの調整,ストップロスの位置の最適化,滑点コストの考慮などの方法によって軽減することができる.
この戦略は,以下の点で最適化できます.
機械学習アルゴリズムに基づく自動最適化パラメータにより,反測周期パラメータを現在の市場環境に適合させる.
株式指数期貨などの金融デリバティブと組み合わせて,レバレッジを利用して拡大操作を行う.
跳び口の認識メカニズムなど,突発事件の処理にモデルを追加する.
市場変動の設定によるダイナミック・スライド・ストップによるストップ・ストラトジーを最適化する.
全体として,これは金分割線原理を利用し,明確な入場機構と止損思考を持つ長線多頭戦略である.パラメータ調整,モデル最適化,組み合わせ応用などの方法によって,信頼性の高い量化取引戦略に最適化することができる.
/*backtest
start: 2022-11-21 00:00:00
end: 2023-11-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © omkarkondhekar
//@version=4
strategy("GRBLong", overlay=true)
highInput = input(title = "High Days", type = input.integer, defval = 21, minval = 11)
lowInput = input(title = "Low Days", type = input.integer, defval = 21, minval = 5)
// Configure backtest start date with inputs
startDate = input(title="Start Date", type=input.integer,
defval=1, minval=1, maxval=31)
startMonth = input(title="Start Month", type=input.integer,
defval=1, minval=1, maxval=12)
startYear = input(title="Start Year", type=input.integer,
defval=2019, minval=1800, maxval=2100)
// See if this bar's time happened on/after start date
afterStartDate = (time >= timestamp(syminfo.timezone,
startYear, startMonth, startDate, 0, 0))
high21 = highest(high, highInput)
low21 = lowest(low, lowInput)
diff = high21 - low21
longEntrySignal = low > low21 + (diff * 0.382) and close[1] > open[1]
strategy.entry("Long", strategy.long, limit = low, when = longEntrySignal and afterStartDate)
strategy.exit("Long Exit", "Long", stop = low21 + (diff * 0.236))
plot(low21 + (diff * 0.382), color= color.green)
plot(low21 + (diff * 0.236), color = color.red)