20 レベル ブレイク戦略

作者: リン・ハーンチャオチャン, 日付: 2024-02-26 17:27:50
タグ:

img

概要

20レベルブレークアウト戦略は,トレンドフォロー戦略である.その基本的なアイデアは,価格が特定のキーレベルを突破すると,トレンド逆転を示唆するということです.この時点で,ブレークアウトの方向に応じてロングまたはショートポジションを確立することができます.

この戦略では,20日移動平均をキーレベルとして選択します.閉値が上から20日移動平均を突破すると,ロング;閉値が下から20日移動平均を突破すると,ショートします.

原則

20レベルブレイクストラテジーは,トレンドブレイクを判断するために20日間の移動平均を使用します.価格が上から下へと20日間の移動平均を突破すると,それは市場の下落傾向を示し,我々はショートに行くべきです.価格が下から上へと20日間の移動平均を突破すると,それは市場の上昇傾向を示し,我々はロングに行くべきです.

この戦略には,市場状況を決定するためのMACD指標も組み込まれています.MACDが赤バーである場合にのみショート信号が発行され,MACDが緑バーである場合にのみロング信号が発行されます.これは市場の統合中に間違った信号を生成することを避ける.

具体的には 戦略の論理は

  1. ベースラインとして20日間の移動平均値を定義する.
  2. 閉じる価格がベースライン +0.2%より高く,MACD条件が満たされている場合,ブレイク後の日の開口価格に近いロングにします.
  3. 閉じる価格がベースライン -0.2%より低く,MACD条件が満たされている場合,ブレイク後の日の開口価格近くでショートします.
  4. ストップ・ロスはベースラインより0.5%低く,ロング・ポジションではベースラインより1%高い利潤をとる.
  5. ストップ・ロスはベースラインの0.5%に設定し,ショートポジションではベースラインの1%以下に利益を取ります.

この設定によって,この戦略は,トレンド移行が起こる時に機会を把握し,市場のトレンドを追跡するという目標を達成することができます.

利点分析

20レベルブレークアウト戦略には次の利点があります:

  1. 20日移動平均の計算と判断のルールは とてもシンプルです

  2. 価格ブレイクを取引シグナルとして使用することで,不必要な逆転操作を効果的に回避できます.

  3. 強いトレンド追跡能力.20日間の移動平均値は,中期トレンドの変化を非常によく反映することができます.MACDフィルターを組み合わせることで,トレンド統合中に誤ったポジションを確立することは避けられます.

リスク分析

20レベルブレイク戦略には以下のリスクもあります.

  1. 価格が急激に変動すると 20日間の移動平均値は遅れて 最良のエントリー機会を逃す可能性があります

  2. レンジバインド市場では,価格が頻繁に上下を突破する可能性があります.良い指標フィルターがなければ,無効な取引があまりにも多くなります.

  3. 戦略は価格変動の幅を考慮しない.変動指標を組み合わせない場合,過度の損失のリスクがある.

  4. 固定ストップ・ロストとテイク・プロフィートのレベルも戦略の円滑な運用に影響します.これは,異なる裏付け資産に応じてパラメータを調整する必要があります.

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

20レベルブレークアウト戦略は,次の側面で最適化することができます:

  1. 10 日 30 日 など の 異なる 期間 の 移動 平均 を 試し て ください.どの 期間 が 傾向 を より よく 理解 できる か を 確かめ ます.

  2. 価格変動の大きさに基づいてポジションを動的に調整するために波動性指標を追加します.これはリスクを効果的に制御することができます.

  3. ストップ・ロスの最適化と利益ポジションの獲得.最適なパラメータは,過去のバックテストデータから計算できます.

  4. KDJ,ボリンジャー帯など他の指標を組み合わせてシグナルフィルタリングをしてみてください.これは無効な取引を減らすことができます.

  5. より長い時間枠でより大きなトレンドを見つけ,より短い時間枠に入力することで 改良されたバージョンを開発します.

結論

20レベルブレークアウト戦略は,価格ブレークアウトを通じてトレンドターニングポイントを特定する. シンプルな操作と強力なトレンド追跡能力の利点があります. しかし,市場の複雑さに適応するためにさらなる最適化が必要なリスクはまだあります. 全体として,20レベルブレークアウト戦略は,比較的基本的なトレンドフォロー戦略として,まだ改善の余地があります. 投資家は,さまざまな市場環境で安定したリターンを達成できるようにそれを最適化し続けることができます.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5


//@version=4
strategy("20 Level Breakout", overlay=true)

baseLevel = math.floor(close * 100) /100
eigthylevel = baseLevel - 0.002
twentyLevel = baseLevel + 0.002
takeprofitL = baseLevel - 0.01
stoplossL = baseLevel + 0.02 
takeprofitS = baseLevel + 0.015
stoplossS = baseLevel - 0.02

isPriceAboveLevel(price, level) =>
    price > level

breakout = close > twentyLevel and close > baseLevel
breakoutl = close < eigthylevel and close < baseLevel
// Entry condition: Only enter if there are no open trades and the close is between baseLevel and baseLevel + 0.01
isLong = breakout and close > baseLevel and close <= (baseLevel + 0.01) and ta.rsi(close, 14) > 40 and ta.ema(close,50)<close
isShort = breakoutl and close < baseLevel and close >= (baseLevel - 0.01)
// Debugging
plot(isLong ? 1 : 0, color=color.blue, style=plot.style_histogram)
plotshape(isLong, style=shape.triangledown, color=color.green, size=size.small)
plotshape(isShort, style = shape.triangleup, color =  color.red, size = size.small)
// Plotting the stop loss line
plot(stoplossL, color=color.red, linewidth=2, title="Take Profit")
plot(stoplossS, color=color.green, linewidth = 2, title = " Take Profit")
strategy.entry("Short", strategy.short, when=isLong, stop =twentyLevel)
strategy.exit("Stop Loss/Profit", "Short", stop = stoplossL , limit = takeprofitL)

strategy.entry("Long",strategy.long, when=isShort , stop = eigthylevel )
strategy.exit("Stop loss/Profit", "Long", stop = stoplossS , limit = takeprofitS)

もっと