2倍強指標戦略

作者: リン・ハーンチャオチャン開催日:2023年11月20日 09時47分41秒
タグ:

img

概要

この戦略は,移動平均収束差異 (MACD) 指標と相対強度指数 (RSI) 指標を組み合わせて,逆転機会を捉えるための買い売り条件を設定します.

戦略の論理

  1. 速線,スローライン,シグナルラインを含むMACD指標を計算する.速線とスローラインのクロスオーバーは取引信号である.

  2. RSI インディケーターを計算し,過剰購入および過剰販売の限界値を設定します. RSI インディケーターは過剰購入および過剰販売の条件を決定することができます.

  3. MACD のクロスオーバー信号と RSI のオーバー買い/オーバーセール 読み上げを組み合わせて,購入・販売条件を定義します.

    • 買い条件:MACDの速い線がスローライン (黄金十字) を越えて,RSIインジケーターが過剰購入ゾーンから戻り,逆転を示しています.

    • 売り条件:MACD快線がスローライン (デッドクロス) の下を通過し,RSIインジケーターがオーバーバイゾーンに入り,逆転を示します.

  4. この2つの強力な指標の強みを活用して 逆転点で正確に買ったり売ったりできます

利点分析

  1. MACDは,トレンドと取引機会を特定することができます. RSIは過買い/過売り状態を測定します.両方を使用すると精度が向上します.

  2. 2つのインジケーターを使うと 1つのインジケーターで起こる 誤った信号をフィルタリングできます

  3. MACDとRSIを組み合わせると,逆転前に購入し,逆転後に売却してターンを取ることができます.

  4. この戦略は,傾向を追跡し,逆転を柔軟に捉えるため,適度な頻度を持っています.

リスク分析

  1. MACDは不安定な市場では誤った信号を与えます.誤った信号を避けるためにRSIパラメータは最適化する必要があります.

  2. 短期的な変動は,ポジションを停止し,損失を引き起こす可能性があります.

  3. RSIとMACDのパラメータは,信号が多すぎたり少すぎたりしないように最適化する必要があります.

  4. 厳格なリスクとマネーマネジメントは リアルタイム取引にとって極めて重要です

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

  1. 最適な組み合わせのためにMACDの高速/スローラインパラメータを最適化します.

  2. 誤ったシグナルを防ぐために,RSIの過剰購入/過剰販売の限界値を最適化します.

  3. 単一の取引リスクを制御するためにストップロスを追加します.

  4. 追加確認のためにボリンジャー帯やKDJのようなフィルターを追加してみてください

  5. 突破やトレンドフォローなどの様々なエントリー/アウトプット戦略をテストします

概要

この戦略は,逆転のためのMACDとRSIの強みを組み合わせています. しかし,パラメータ調整,リスク管理,マネーマネジメントはライブパフォーマンスにとって鍵です. 柔軟性は異なる市場条件に適しており,ライブテストと追跡に価値があります.


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

//@version=5
// © sabirt
strategy(title='MACD and RSI', overlay=true, shorttitle='MACD&RSI')
//MACD Settings
fastMA = input.int(title='Fast moving average', defval=12, minval=1)
slowMA = input.int(title='Slow moving average', defval=26, minval=1)
signalLength = input.int(9, minval=1)

//RSI settings
RSIOverSold = input.int(35, minval=1)
RSIOverBought = input.int(80, minval=1)
src = close
len = input.int(14, minval=1, title='Length')
up = ta.rma(math.max(ta.change(src), 0), len)
down = ta.rma(-math.min(ta.change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - 100 / (1 + up / down)
wasOversold = rsi[0] <= RSIOverSold or rsi[1] <= RSIOverSold or rsi[2] <= RSIOverSold or rsi[3] <= RSIOverSold or rsi[4] <= RSIOverSold or rsi[5] <= RSIOverSold
wasOverbought = rsi[0] >= RSIOverBought or rsi[1] >= RSIOverBought or rsi[2] >= RSIOverBought or rsi[3] >= RSIOverBought or rsi[4] >= RSIOverBought or rsi[5] >= RSIOverBought



[currMacd, _, _] = ta.macd(close[0], fastMA, slowMA, signalLength)
[prevMacd, _, _] = ta.macd(close[1], fastMA, slowMA, signalLength)
signal = ta.ema(currMacd, signalLength)

avg_1 = math.avg(currMacd, signal)
crossoverBear = ta.cross(currMacd, signal) and currMacd < signal ? avg_1 : na
avg_2 = math.avg(currMacd, signal)
crossoverBull = ta.cross(currMacd, signal) and currMacd > signal ? avg_2 : na

strategy.entry('buy', strategy.long, when=crossoverBull and wasOversold)
strategy.close('buy', when=crossoverBear and wasOverbought)



もっと