長期ブレイクランス取引戦略

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

概要

これは,価格が固定したバックバック範囲を突破したときの信号を生成する取引戦略である.価格がバックバック期間の最高値を超えると,ロングポジションが取られ,価格が最高値を下回ると,ポジションが閉鎖される.取引方向は簡単に切り替えることができる.

戦略の論理

  1. 復習期間パラメータを設定します 例えば4日

  2. 過去4日間の最高値を計算します.

  3. この4日間の最高値を超えると 長期取引をします

  4. 価格が4日間の最高値を突破できないとき ポジションを閉じる

  5. 逆パラメータで取引方向を切り替える

利点分析

この戦略の利点:

  1. 突破は簡単で 信号は明確だ

  2. 固定ブレイク範囲は,複雑な最適化とオーバーフィッティングを避けます.

  3. ロング/ショートから簡単に切り替える 異なる市場条件に適応できる

  4. フォローする範囲は 騒音をフィルタリングして トレンドを追跡します

  5. 複雑な指標は不要で 効率的な戦略です

リスク分析

主なリスク:

  1. 固定ブレイク範囲は市場の変化に適応できない.

  2. ストップロスのない場合 戦略はリスクの許容範囲を超えた過度の損失に晒されます

  3. 固定パラメータは市場体制の変化に脆弱である.

  4. 過剰な騒音取引は取引コストを増加させる可能性があります.

  5. パラメータの最適化がないと,最適な結果が得られない.

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

改善:

  1. 最適な組み合わせを見つけるために キーパラメータを最適化します

  2. ATRなどに基づいて動的範囲を導入する

  3. トレイリングストップ損失または固定パーセントストップ損失を追加することを検討します.

  4. トレンドフィルタを組み込み,変動市場での過剰取引を避ける.

  5. 複数の取引手段でパラメータの安定性をテストする.

  6. 自動パラメータ最適化のための機械学習を追加します

概要

これは非常にシンプルな価格ブレイクトレード戦略です.最適化されたパラメータレンジ,ストップ損失,トレンドフィルターなど,拡張により,実行しやすい実用的な定量戦略になります.


/*backtest
start: 2023-08-19 00:00:00
end: 2023-09-18 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version = 2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 28/11/2016
// Breakout Range Long Strategy
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
strategy(title="Breakout Range Long Strategy Backtest", overlay = true)
look_bak = input(4, minval=1, title="Look Bak")
reverse = input(false, title="Trade reverse")
xHighest = highest(high, look_bak)
pos =	iff(high > xHighest[1], 1, 0)
if (pos == 1 and strategy.position_size == 0 and reverse == false) 
    strategy.entry("Long", strategy.long)
if (pos == 1 and strategy.position_size == 0 and reverse == true) 
    strategy.entry("Short", strategy.short)
if (pos == 0 and strategy.position_size > 0)
    strategy.close("Long")
if (pos == 0 and strategy.position_size < 0)
    strategy.close("Short")
barcolor(strategy.position_size > 0 ? green: strategy.position_size < 0 ? red: blue)   
plotshape(pos, style=shape.triangleup, location = location.belowbar, color = green)

もっと