ブレイクアウトレンジに基づくロング取引戦略


作成日: 2023-09-19 17:19:55 最終変更日: 2023-09-19 17:19:55
コピー: 2 クリック数: 623
1
フォロー
1617
フォロワー

概要

この戦略は,価格が固定回転範囲を突破した上で取引シグナルを生成する戦略である.価格が回転期間中の最高価格を破るとき,多操作を行う.価格が最高価格を下回るとき,平を行う.ポジションは,多空方向に簡単に切り替えることができる.

戦略原則

  1. 4日間 参照周期を設定します

  2. この4日の最高値です.

  3. この4日間の最高値を超えた今日,もっと多くをやってください.

  4. 価格が過去4日間の最高値を突破できない場合,平仓する.

  5. reverseパラメータにより多空方向に切り替えることができる.

優位分析

この戦略の利点は以下の通りです.

  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)