
この戦略は,移動平均と相対的に強い指数 (RSI) の2つの技術指標を組み合わせて,季節的な周期的な特性を捕捉し,取引信号を生成します. この戦略の優点は,季節的な行動を非常に明確に識別できるという点にありますが,同時に間違った信号によって誤導されるリスクもあります. パラメータ設定を調整することで,戦略の効果をさらに最適化して向上させることができます.
この戦略は,価格の中長期の傾向の方向を捉えるために,まず一定の周期nの移動平均を計算します. そして,移動平均のRSIを計算して,現在過剰買いまたは過剰売り状態にあるかどうかを判断します. RSIは,一定の周期内の上昇と低下の比率を計算して,現在の市場情勢を判断します.
RSIが下位を横切るときに買信信号が生み出され,現在超売り状態にあることを示す,買入が可能である. RSIが下位を横切るときに売り信号が生み出され,現在超買い状態にあることを示す,売りが可能である. さらに,戦略は,指定された月と日付の間の取引のみを,季節的特性を捉えるために,月と日付の範囲を設定しています.
誤ったシグナルによって誤導されるリスクがある.例えば,非季節性突発事件によって引き起こされるトレンドの逆転は,不適切な取引シグナルを引き起こす可能性がある.解決策は,月の日付の範囲を調整して,可能なイベントのリスクを回避することです.
トレンドが逆転すると,移動平均とRSIの指数との間の偏差が発生し,取引信号が不一致する可能性があります. 解決策は,移動平均のパラメータを適切に調整して,周期を短縮して,より早くトレンドの逆転を捕捉することです.
予期された月の日付範囲は,実際の季節の行情が発生する時間と偏りがある可能性があります. 解決策は,歴史的なデータテストに基づいてより正確な季節範囲パラメータを決定することです.
取引シグナルに偽ブレイクが発生する可能性がある場合. 解決策は,より広い区間範囲を設定して,小さな波動に誤導されないようにすることです.
震動株価指数 ((STOCH)) のような他の補助指標を導入することができ,より厳しいフィルタリング条件を設定し,誤った信号を減らす.
より多くの異なるパラメータの組み合わせをテストして,戦略の効果を高めるための最適なパラメータを探します.例えば,移動平均周期の調整,RSIの上下軌道パラメータなどです.
ステップ・オプティマイゼーション・メソッドを使用して,パラメータ空間を自動的に検索して,最適のパラメータ組み合わせを見つけることができます.
機械学習による訓練や最適化策略の規則を収集するヒストリックデータも増やせます.
資金管理の最適化や ストップ・ロスト・ストップ・ストラテジーを導入することも考えられます.
この戦略は,移動平均とRSI指標を総合的に使用し,季節の要因判断を加え,より完全な傾向と超買い超売り識別システムを形成する.戦略の優点は,季節の動きを明確に認識し,そのような取引機会を把握することにある.間違いない誤導されるリスクは存在しますが,パラメータ調整,補助指標,機械学習などの方法の導入により最適化することができ,戦略の効果をさらに高めることができます.全体的に,この戦略は,信頼性の高い,有効な季節の取引枠組みを提供し,実体テストと適用に値する.
/*backtest
start: 2023-09-26 00:00:00
end: 2023-10-26 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy(title = " RSI of MA Strategy ",shorttitle="MARSI Strategy",default_qty_type = strategy.percent_of_equity, default_qty_value = 100,commission_type=strategy.commission.percent,commission_value=0.1,initial_capital=1)
lengthofma = input(15,minval=1,title="Length of MA")
len = input(14, minval=1, title="Length")
upperband = input(70,minval=1,title='Upper Band for RSI')
lowerband = input(30,minval=1,title="Lower Band for RSI")
src=sma(close,lengthofma)
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
plot(rsi, color=purple)
band1 = hline(upperband)
band0 = hline(lowerband)
fill(band1, band0, color=purple, transp=90)
longCond = crossover(rsi,lowerband)
shortCond = crossunder(rsi,upperband)
monthfrom =input(1)
monthuntil =input(12)
dayfrom=input(1)
dayuntil=input(31)
if ( longCond )
strategy.entry("LONG", strategy.long, stop=close, oca_name="TREND", comment="LONG")
else
strategy.cancel(id="LONG")
if ( shortCond )
strategy.entry("SHORT", strategy.short,stop=close, oca_name="TREND", comment="SHORT")
else
strategy.cancel(id="SHORT")