ダイナミック・スリージングル価格変化のブレイクアウト戦略

作者: リン・ハーンチャオチャン開催日:2024-04-01 12:03:59
タグ:

img

この戦略は"ダイナミック・スリース値変更ブレイクアウト戦略"と呼ばれる.この戦略の主な考え方は,ダイナミック・スリース値設定であり,価格変動率がこのスリース値を超えると買い信号が生成され,価格変動率がこのスリース値のマイナス値を下回ると売り信号が生成される.同時に,ストップ・ロスを設定する.価格が前6個のキャンドルの最低値を下回ると,ポジションは閉鎖される.

戦略原則

この戦略の核心は,現在の閉店価格を前の閉店価格で割って,1を引いた結果得られる価格変動率を計算し,次に計算した価格変動率をユーザが入力した値値と比較する.価格変動率が値以上またはそれと同等である場合,現在のポジションがない場合またはショートポジションが保持されている場合,購入信号が生成される.価格変動率が値のマイナス値以下またはそれと同等である場合,現在のポジションがない場合またはロングポジションが保持されている場合,販売信号が生成される.購入信号を生成した後,戦略は6個のキャンドルの最低価格を前のストップ損失価格として記録する.価格が損失価格を下回ると,戦略はロングポジションを停止する.

戦略 の 利点

  1. この戦略は動的な値を用いており,異なる市場環境に適応し,一定の柔軟性があります.
  2. 戦略の論理は シンプルで明快で 分かりやすく実行できます
  3. ストップ・ロスは ある程度リスクを制御するために設定されます
  4. 上昇傾向を効果的に把握できるため,新興市場での使用に適しています

戦略リスク

  1. この戦略は不安定な市場で頻繁に取引され,取引コストが上昇する可能性があります.
  2. ストップ・ロスの設定が柔軟でない場合もあるし,ある場合には早すぎるストップ・ロスの原因になる場合もある.
  3. 戦略は価格変動率を考慮し,取引量や市場情勢などの価格動向に影響を与える他の要因を考慮しない.

戦略の最適化方向

  1. 戦略の信頼性を高めるため,取引量や波動性などのより多くの指標を導入することが考えられます.
  2. ストップ・ロスの設定は,ストップ・ロスをより柔軟にするため,トライリング・ストップやダイナミック・ストップ・ロスの使用など,最適化することができる.
  3. パラメータを最適化できる.例えば,限界値の大きさやストップロスの計算期間など,最適なパラメータの組み合わせを見つける.
  4. ポジションマネジメントは,リスク管理のために,市場の状況に応じてポジションを動的に調整するために追加することができます.

概要

ダイナミック・スリース値変更ブレイクアウト戦略は,価格変動率をダイナミック・スリース値と比較して取引信号を生成し,上昇市場での使用に適しています. 戦略論理はシンプルで明確で,一定程度の柔軟性やリスク管理能力があります. しかし,この戦略には,不安定な市場での頻繁な取引や柔軟性のないストップ・ロスの設定などの欠点もあります. 将来的には,より多くの指標を導入し,ストップ・ロスの設定を最適化し,パラメータを最適化し,戦略のパフォーマンスをさらに向上させるためにポジション管理を追加するなどの側面から戦略を最適化することを検討することができます.


/*backtest
start: 2023-04-01 00:00:00
end: 2024-03-31 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Price Change", shorttitle="Price Change", overlay=true)

change = input(00.1, title="Change", minval=0.0001, maxval=1, type=input.float)


// Calculate price change
priceChange = close / close[1] - 1

// Buy and Sell Signals
buyp = priceChange >= change
sellp = priceChange <= (change * -1)

// Initialize position and track the current position
var int position = na

// Strategy entry conditions
buy_condition = buyp and (na(position) or position == -1)
sell_condition = sellp and (na(position) or position == 1)

var float stop = na

if (buy_condition)
    strategy.entry("Long", strategy.long)
    stop := lowest(low, 6)
    position := 1
if (sell_condition or low < stop)
    strategy.close("Long")
    position := -1

// Plot Buy and Sell signals using plotshape
plotshape(series=buy_condition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=sell_condition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)


もっと