ドンチアン運河からの脱出戦略

作者: リン・ハーンチャオチャン, 日付: 2023-09-19 21:47:41
タグ:

概要

この戦略は,中長期のトレンドブレークアウト戦略に属する株式/フューチャー/暗号通貨/フォレックスなどでトレンドをフォローする取引を可能にする上位および下位帯のトレードブレークアウトをドンチアンチャネル指標で利用する.

戦略の論理

  1. 特定の期間 (例えば20日) の最高高値と最低低値を計算して上位と下位帯を計算します.

  2. 中間線は上帯と下帯の平均線である.上帯を突破すると上昇傾向を示し,下帯を突破すると下降傾向を示します.

  3. 値が上位帯以上で閉じる時 上向き傾向が始まっていることを判断し 走行して入る

  4. 価格が中間線を下回ると 利益を得て出口します

  5. 実際の取引信号を生成するためにバックテストタイムフレームを参照することができます.

  6. 選択的に,下帯を断ち切ると短信号としても機能します.

戦略は,チャネルブレイクによってトレンド開始を決定し,中間線を利益の出口として使用し,中期から長期間のトレンドを把握します.チャネルパラメータは市場に合わせて調整できます.

利点分析

  1. ドンチアン・チャネルは 計算し実行するのが簡単です

  2. 価格チャネルを突破すると 傾向の変化が分かります

  3. 中間線は 利得のレベルとして 合理的に設定されています

  4. 明確で実行しやすい信号のルールです

  5. 異なる製品と時間枠に合わせてチャネルパラメータを柔軟に調整できます.

  6. 長期または短期間の取引パフォーマンスを評価することができます.

  7. 他の技術指標を導入することができます.

リスク分析

  1. チャンネルの突破が遅れて 早期の機会を逃す危険があります

  2. 突破前には 異議を考慮しない 誤った信号を生む可能性があります

  3. 市場変動に敏感な中間線ストップ損失固定

  4. バックテスト期間が不適切なら オーバーフィットする危険性があります

  5. ストップ・ロスは欠けているので 損失を増やすには気をつけなければなりません

オプティマイゼーションの方向性

  1. チャネル周期パラメータをテストして最適化します

  2. ストップ損失ラインとして他のMAタイプを評価する.

  3. ボリュームインジケーターのようなフィルターを追加します

  4. 移動または後退停止損失メカニズムを追加します.

  5. 価格変動を予測するために 機械学習を導入します

  6. 資金管理を最適化し 利益率を設定する

  7. 長期・短期間の事業や複数の製品を組み合わせることを検討する.

概要

この戦略は,トレンド方向,トレードブレイクアウト,典型的な中長期トレンドフォローアプローチを決定するためにドンチアンチャネルを使用する.チャネルパラメータを最適化し,他の技術指標を追加することで,より堅牢なブレイクアウトシステムを形成することができる.明確で簡潔なロジックは拡張を可能にするため,非常に実用的な有用性を持つ基礎的な量子戦略モジュールとなっています.


/*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)
    



もっと