月間パラボリック・ブレイクアウト戦略

作者: リン・ハーンチャオチャン, 日時: 2023-12-01 14:28:46
タグ:

img

概要

月間パラボリックブレイクアウト戦略は,RSIが36ヶ月間高値に達し,MACD信号の2つのうち1つが36ヶ月間高値に達したときの強い買い信号を特定します.一生に一度のブレイクアウトを捕捉するのに理想的です.

戦略の論理

この戦略は主にRSIおよびMACD指標に基づいています.RSIは,株が過買いまたは過売れているかどうかを判断するために使用されます.MACDは,価格変動の勢いと強さを発見するために使用されます.

具体的には,この戦略はまず手動で14日間のRSIを計算します.その後,MACD1を4日間のEMAと9日間のEMAの差として計算し,MACD2を12日間のEMAと26日間のEMAの差として計算します.

このベースで,過去36ヶ月のRSI,MACD1およびMACD2の最高値を記録します.この月のRSIが36ヶ月の最高値を上回り,MACD1またはMACD2が36ヶ月の最高値を上回ると,強い買い信号が生成されます.

この信号は,異なる時間帯における RSI と MACD の新しい高値判断を組み合わせます.それは,まれな主要なトレンドで大きな買い機会を効果的に特定し,そのような機会を把握することができます.

利点分析

この戦略の最大の利点は,複数の指標の振り返り期間を組み合わせて,異なる時間帯にわたる新しい高値判断を行うことです. これにより,長期的なメガトレンドで優れた購入機会を効果的に発見できます. これにより利益の確率が大幅に増加できます.

さらに,この戦略は直接購入シグナル位置を提示し,取引決定を明確に導き,定量取引に適しています.

リスク分析

この戦略の最大のリスクは,長期間の指標の最高値に依存しすぎることであり,悪い取引を引き起こす可能性があります.例えば,市場が沈み,その後リバウンドに見える場合,シグナルも引き起こす可能性があります.その後,リバウンドから利益を得る機会を逃すリスクに直面します.

さらに,この戦略は 30日後に直接ストップロスの出口を設定します. これはメガトレンドで利益を維持するにはあまりにも保守的かもしれません.

リスクを減らすために,取引量のブレイクアウト,波動性測定など,エントリーとストップロスの条件を最適化するために他の要因を組み合わせることを検討することができます.

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

この戦略は,次の側面で最適化できます.

  1. RSI,MACD,および他のパラメータの最適化をテストして,最適なパラメータの組み合わせを見つけることができます.

  2. 他の指標や基本要素を組み込む.例えば,トレードボリュームのブレイクを組み合わせてトレンドを確認するか,重要な基本ニュースのイベントに注意してください.

  3. 30日後に退場する代わりに,より洗練された利益とストップ損失計画を設定できます.また,トレンドライン判断,チャネルブレイクなども組み込むことができます.

  4. 戦略の強度を評価します.パラメータの安定性を評価するために長い歴史的期間をバックテストすることができます.適応性を評価するためにマルチマーケットバックテストも行えます.

結論

月間パラボリックブレイクアウト戦略は,多期RSIとMACDを組み合わせて長期メガトレンドで優れた購入機会を成功裏に特定する.トレンドとオーバーバイト/オーバーセール判断の両方を組み込み,非常に強力な実用的な価値を持っています.さらなる最適化により,この戦略は効率的な定量的な取引システムになることができます.投資家に市場のターニングポイントを把握するための強力なツールを提供します.


/*backtest
start: 2022-11-24 00:00:00
end: 2023-11-30 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Stringent Strategy for Backtesting", overlay=true)

// Initialize RSI variables
rsiPeriod = 14

// Manually calculate RSI
delta = close - close[1]
gain = iff(delta > 0, delta, 0)
loss = iff(delta < 0, -delta, 0)

avgGain = sma(gain, rsiPeriod)
avgLoss = sma(loss, rsiPeriod)

rs = avgGain / avgLoss
rsiValue = 100 - (100 / (1 + rs))

// Manually calculate MACD1 and MACD2
emaShort1 = ema(close, 4)
emaLong1 = ema(close, 9)
macd1 = emaShort1 - emaLong1

emaShort2 = ema(close, 12)
emaLong2 = ema(close, 26)
macd2 = emaShort2 - emaLong2

// Find the highest values in the last 3 years (36 months)
highestRsi = highest(rsiValue, 36)
highestMacd1 = highest(macd1, 36)
highestMacd2 = highest(macd2, 36)

// Define buy signal conditions
buyCondition = (rsiValue >= highestRsi) and (macd1 >= highestMacd1 or macd2 >= highestMacd2)

// Plot the buy signal on the chart
plotshape(series=buyCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="Buy")

// Backtesting: Entry and Exit
if (buyCondition)
    strategy.entry("Buy", strategy.long)

// Exit condition (Example: Exit after 30 bars)
strategy.exit("Sell", "Buy", bar_index[30])


もっと