
トリプルEMAランダムRSIクロス金フォーク戦略は,トレンド追跡戦略である.これは,トリプルインデックス移動平均指標とランダムインデックス相対的に強い指標を組み合わせて,二重インデックスクロスシグナルによって入場タイミングを判断する.
この戦略の信号判断は以下の論理に基づいています.
三重EMA判断トレンド:8日線上,14日線中,50日線下は多頭トレンドを構成し,逆に空頭トレンドを構成する.
ランダムなRSI指標は交差を判定する:K線は下からD線を横切って金叉信号を生じ,強さが入っていることを示します.
余計なことをするだけで,空頭は考えない.
三重のEMAが上昇傾向を示し,ランダムなRSIが金叉を現したとき,多めに実行します. 利益をロックするために,その基礎にストップとストップラインを設定します.
この戦略は,二重指標判断と組み合わせて,トレンドを有効にロックすることができます. 主要な利点は以下の通りです.
三重EMAは短期的なノイズをフィルターし,中長期トレンドをロックします.
ランダムなRSIゴールドフォークは強くなっていることを確認した.
ATRのスマート・ストップ・ロスト・キャップ,利益のロック.
戦略の論理はシンプルで明快で,理解し,実行しやすい.
この戦略の主なリスクは以下の通りです.
大盘震動時に容易く套用される。三重EMA指標が震動中に複数の金叉死叉を生じるとき,頻繁にポジション開設してポジションを作ることは取引リスクをもたらす。EMAパラメータを最適化したり,他のフィルタリング指標を追加することによって解決できる。
空白の機会がない。多めに空白すれば,底部反発の機会を逃す。空白のトレンドの中で空白の機会を探すため,MACDなどの指標を追加することを考えることができます。
この戦略の改善策は以下の通りです.
EMAのパラメータを最適化し,トレンド判断を改善する.
MACDなどの指標を増やし,空頭トレンドを判断し,空調の機会を増やします.
ATRなどの波動率指標を増加させ,ストップダストの設定を改善する.
取引量指数と組み合わせると,偽の突破を防ぐことができます.
マシン・ラーニングなどの技術を用いてパラメータを最適化する.
全体として,この三重EMAランダムRSI交差戦略は,二重指標判断と組み合わせて,振動を効果的にフィルターし,トレンドをロックし,簡単な実用的なトレンド追跡戦略です.パラメータを最適化し続け,フィルタリング指標を増やし,先進技術を使用する手段などにより,より良い戦略パフォーマンスを得ることができます.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-25 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(title="Stoch RSI Crossover Strat + EMA", shorttitle="Stoch RSI Cross + EMA Strat", overlay = true)
// Time Range
FromMonth=input(defval=1,title="FromMonth",minval=1,maxval=12)
FromDay=input(defval=1,title="FromDay",minval=1,maxval=31)
FromYear=input(defval=2020,title="FromYear",minval=2017)
ToMonth=input(defval=1,title="ToMonth",minval=1,maxval=12)
ToDay=input(defval=1,title="ToDay",minval=1,maxval=31)
ToYear=input(defval=9999,title="ToYear",minval=2017)
start=timestamp(FromYear,FromMonth,FromDay,00,00)
finish=timestamp(ToYear,ToMonth,ToDay,23,59)
window()=>true
// See if this bar's time happened on/after start date
afterStartDate = time >= start and time<=finish?true:false
//STOCH RSI
smoothK = input(3, minval=1)
smoothD = input(3, minval=1)
lengthRSI = input(14, minval=1)
lengthStoch = input(14, minval=1)
src = input(close, title="RSI Source")
rsi1 = rsi(src, lengthRSI)
k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = sma(k, smoothD)
//ATR
lengthATR = input(title="ATR Length", defval=14, minval=1)
atr = atr(lengthATR)
//MULTI EMA
emasrc = close,
len1 = input(8, minval=1, title="EMA 1")
len2 = input(14, minval=1, title="EMA 2")
len3 = input(50, minval=1, title="EMA 3")
ema1 = ema(emasrc, len1)
ema2 = ema(emasrc, len2)
ema3 = ema(emasrc, len3)
col1 = color.lime
col2 = color.blue
col3 = color.orange
//EMA Plots
//plot(ema1, title="EMA 1", linewidth=1, color=col1)
//plot(ema2, title="EMA 2", linewidth=1, color=col2)
//plot(ema3, title="EMA 3", linewidth=1, color=col3)
crossup = k[0] > d[0] and k[1] <= d[1]
emapos = ema1 > ema2 and ema2 > ema3 and close > ema1
barbuy = crossup and emapos
//plotshape(crossup, style=shape.triangleup, location=location.belowbar, color=color.white)
plotshape(barbuy, style=shape.triangleup, location=location.belowbar, color=color.green)
longloss = sma(open, 1)
//plot(longloss, color=color.red)
//Buy and Sell Factors
profitfactor = input(title="Profitfactor", type=input.float, step=0.1, defval=2)
stopfactor = input(title="Stopfactor", type=input.float, step=0.1, defval=3)
bought = strategy.position_size[1] < strategy.position_size
longcondition = barbuy
if (longcondition) and (afterStartDate) and strategy.opentrades < 1
strategy.entry("Long", strategy.long)
if (afterStartDate) and strategy.opentrades > 0
barsbought = barssince(bought)
profit_level = strategy.position_avg_price + (atr*profitfactor)
stop_level = strategy.position_avg_price - (atr*stopfactor)
strategy.exit("Take Profit/ Stop Loss", "Long", stop=stop_level[barsbought], limit=profit_level[barsbought])