この戦略は,トンチャンチャネル指標をベースに,価格突破チャネル上下軌道を取引シグナルとして取り,stock/futures/crypto/forexなどの品種のトレンド追跡操作を実現し,中長線保有のトレンド突破戦略に属します.
与えられた周期 (例えば20日) の最高値と最低値を計算して,トンヒアン通路の上線と下線を得る.
通路中位線は上下軌道の平均値である。上軌道の突破は傾向転換多信号,下軌道の突破は傾向転空信号である。
価格の収束が軌道上を突破すると,トレンドとして判断し,追加入場を行う.
価格が中位線を下回ったとき,終了とみなされます.
リアルな取引シグナルを生成する,参照回帰の時間帯.
選択的に,価格の突破下線を空調信号として使用することもできます.
この戦略は,チャネル判断のトレンドを突破して,中線まで出場ポイントを打つことで起動し,中長線のトレンドの動きをキャプチャします.チャネルパラメータは市場に対応して調整できます.
ドンヒアン通路の計算は簡単で,指標は実現しやすい.
価格の突破チャネルは,トレンドの変化を判断する.
経路中位線は,止場として,合理的な設定である.
取引シグナルのルールは明確で実行しやすい.
経路のパラメータを柔軟に調整し,複数の品種と周期に対応します.
長線または短線取引の効果を評価することができる.
拡張空間は広く,他の技術指標を導入することができます.
経路の突破が遅れて,早期のチャンスを逃す危険性がある.
突破前の背離を考慮していないと,誤った信号が発せられるかもしれない.
中位線のストップは固定され,市場ショックに敏感である.
誤った反射回路選択は,過適合を引き起こす可能性があります.
損失拡大の危険に注意してください.
テスト最適化チャネル周期パラメータ
他のタイプの移動平均を基準線として評価する.
取引量の増加などの指標のフィルタリング条件.
移動停止または追跡停止戦略を設定する.
機械学習が価格突破を予測する
資金管理戦略の最適化と利益率の設定
長短線混合操作や多種混合を考えてみてください.
この戦略は,トンヒアン通路に基づいて,トレンドの方向を判断し,突破操作を行う,典型的な中長線トレンド追跡戦略の1つである.通路パラメータを最適化して,他の技術指標と補足することで,比較的安定した突破システムを形成することができる.この戦略は,簡潔で清晰で,拡張可能なスペースが広く,量化取引の基本的な戦略モジュールとして,優れた実用性がある.
/*backtest
start: 2023-09-11 00:00:00
end: 2023-09-15 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
//future strategy
//strategy(title = "stub", default_qty_type = strategy.fixed, default_qty_value = 1, overlay = true, commission_type=strategy.commission.cash_per_contract,commission_value=2)
//stock strategy
strategy(title = "dc", default_qty_type = strategy.percent_of_equity, default_qty_value = 100, overlay = true, commission_type=strategy.commission.cash_per_contract,commission_value=.005)
//forex strategy
//strategy(title = "stub", default_qty_type = strategy.percent_of_equity, default_qty_value = 100, overlay = true)
//crypto strategy
//strategy(title = "stub", default_qty_type = strategy.percent_of_equity, default_qty_value = 100, overlay = true, commission_type=strategy.commission.percent,commission_value=.25,default_qty_value=10000)
testStartYear = input(2000, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
testEndYear = input(2018, "Backtest Start Year")
testEndMonth = input(12, "Backtest Start Month")
testEndDay = input(1, "Backtest Start Day")
testPeriodEnd = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
testPeriod() =>
true
//time >= testPeriodStart ? true : false
dcPeriod = 20
dcUpper = highest(close, dcPeriod)[1]
dcLower = lowest(close, dcPeriod)[1]
dcAverage = (dcUpper + dcLower) / 2
plot(dcLower, style=line, linewidth=3, color=red, offset=1)
plot(dcUpper, style=line, linewidth=3, color=aqua, offset=1)
plot(dcAverage, color=yellow, style=line, linewidth=1, title="Mid-Line Average")
strategy.entry("simpleBuy", strategy.long, when=close >= dcUpper)
strategy.close("simpleBuy",when=close < dcAverage)
//strategy.entry("simpleSell", strategy.short,when=close <= dcLower)
//strategy.close("simpleSell",when=close > dcAverage)