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


作成日: 2023-12-01 14:28:46 最終変更日: 2023-12-01 14:28:46
コピー: 0 クリック数: 672
1
フォロー
1619
フォロワー

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

概要

月間パラパラライン突破策は,RSIとMACDの36ヶ月の新高を計算することで,一回目の大規模な突破信号を識別します. RSIが36ヶ月の新高に達し,MACDの任意の1つが36ヶ月の新高に達すると,強力な買入信号が生じます.

戦略原則

この戦略は主にRSIとMACDの2つの指標に基づいています. RSIは,株式が超買い超売り状態にあるかどうかを判断するために使用されます. MACDは,株式価格の勢いと強さを発見するために使用されます.

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

このベースで,過去36ヶ月間のRSI,MACD1およびMACD2の最高値が記録されています. 本月のRSIが36ヶ月間の最高値を超え,MACD1またはMACD2のいずれかがそれぞれ36ヶ月間の最高値を超えると,強力な買い信号が生じます.

このシグナルは,RSIとMACDの2つの指標の時限新高判断を組み合わせて,珍しい大きなトレンドの中で現れる絶好の買い点を効果的に識別し,そのような機会を捕捉することができます.

優位分析

この戦略の最大の利点は,複数の指標のlook back periodの異なる時間帯の新高判断を組み合わせることで,長期の大きなトレンドの中で出現する最高の買いポイントを効果的に発見できるということです.これは,利益の確率を大幅に向上させることができます.

また,戦略は直接買い信号の位置を与え,取引決定を明確に指示し,量化取引に適しています.

リスク分析

この策略の最大のリスクは,指標の時限最高値に過度に依存し,誤った取引を起こす可能性があることです.例えば,市場が断崖の底から再び反発し,またシグナルを誘発することもできます.このとき,反転を逃して利益を得る機会に直面します.

さらに,戦略は30日後にストップ・ロスを直接設定しており,これは大きなトレンドでは保守的で,継続的に利益を得られない可能性があります.

リスクを減らすために,他の要因と組み合わせて,入場と停止条件を最適化することを考えることができます.例えば,取引量突破,波動率測定など.

最適化の方向

この戦略は以下の点で最適化できます.

  1. 最適化パラメータ. RSI周期,MACD周期などのパラメータの最適化をテストして,最適なパラメータの組み合わせを見つけることができる.

  2. 他の指標や基本的要素と組み合わせる.例えば,トレンドを確認するために交差量の突破を組み合わせる,または重要な基本的ニュースイベントに注目する.

  3. 入場・出場メカニズムを最適化します. 30日後に退場するよりも,より精密なストップ・ストップ・スローを設定できます. また,トレンド・LINES,チャネル・ブレイクなどの判断方法と組み合わせることができます.

  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])