Strategi ini disebut
Indikator RSI menentukan status overbought/oversold. RSI yang melintasi 30 mewakili akhir oversold, mengingat masuk panjang. RSI yang melintasi di bawah 70 flags akhir overbought, mengingat posisi penutupan.
Indikator ADX mengukur kekuatan tren. ADX melintasi di atas 25 berarti memasuki tren, sementara melintasi di bawah 25 mewakili akhir tren.
MACD menilai tren jangka pendek. DIFF melintasi di atas DEA mewakili tren naik jangka pendek, mengingat entri panjang. Melalui di bawah bendera tren penurunan jangka pendek, mengingat posisi penutupan.
Ketika RSI, ADX dan MACD semua menunjukkan sinyal bullish, perdagangan panjang diambil. Ketika semua menunjukkan akhir tren, posisi ditutup.
Keuntungannya adalah menggunakan beberapa indikator untuk konfirmasi dapat secara efektif mencegah sinyal palsu.
Singkatnya, integrasi indikator meningkatkan efektivitas penilaian, tetapi pedagang masih membutuhkan kebijaksanaan untuk menyesuaikan dan memvalidasi parameter strategi berdasarkan kondisi aktual.
/*backtest start: 2023-09-05 00:00:00 end: 2023-09-08 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // RSI //@version=3 // strategy("Femi Strategy", overlay=true) strategy("Femi Strategy", overlay=false) RSIlength = input( 14 ) overSold = input( 30 ) overBought = input( 70 ) price = close vrsi = rsi(price, RSIlength) //plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr) // ADX //@version=3 adxlen = input(14) dilen = input(14) adxThreshold = input( 25 ) dirmov(len) => up = change(high) down = -change(low) plusDM = na(up) ? na : (up > down and up > 0 ? up : 0) minusDM = na(down) ? na : (down > up and down > 0 ? down : 0) truerange = rma(tr, len) plus = fixnan(100 * rma(plusDM, len) / truerange) minus = fixnan(100 * rma(minusDM, len) / truerange) [plus, minus] adx(dilen, adxlen) => [plus, minus] = dirmov(dilen) sum = plus + minus adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen) sig = adx(dilen, adxlen) // MACD //@version=3 MACDZero = input(0) fastLength = input(12) slowlength = input(26) MACDLength = input(9) MACD = ema(close, fastLength) - ema(close, slowlength) aMACD = ema(MACD, MACDLength) delta = MACD - aMACD source = close length = input(20, minval=1) mult = input(2.0, minval=0.001, maxval=50) basis = sma(source, length) dev = mult * stdev(source, length) upper = basis + dev lower = basis - dev if (not na(vrsi)) if (crossover(delta, MACDZero)) strategy.entry("FEMIMACDLE", strategy.long, comment="FEMIMACDLE") else strategy.cancel(id="FEMIMACDLE") if (crossunder(vrsi, overSold)) strategy.entry("FEMIRSILE", strategy.long, comment="FEMIRSILE") else strategy.cancel(id="FEMIRSILE") // if(crossover(sig, adxThreshold)) // crossover(sig, adxThreshold) crossover(delta, MACDZero) crossunder(vrsi, overSold) // strategy.entry("FEMIADXLE", strategy.long, comment="FEMIADXLE") // else // strategy.cancel(id="FEMIADXLE") // if (crossover(source, lower)) // strategy.entry("FEMIBBLE", strategy.long, comment="FEMIBBLE") // else // strategy.cancel(id="FEMIBBLE") // if(crossunder(sig, adxThreshold)) // strategy.cancel(id="FEMILE") // strategy.exit(id="FEMILE") // if (crossunder(delta, MACDZero)) // strategy.entry("FEMIMACDSE", strategy.short, comment="FEMIMACDSE") if (crossover(vrsi, overBought)) // strategy.entry("FEMIRSISE", strategy.short, comment="FEMIRSISE") strategy.close("FEMIRSILE") strategy.close("FEMIMACDLE") strategy.close("FEMIADXLE") strategy.close("FEMIBBLE") if (crossunder(sig, adxThreshold) and crossunder(delta, MACDZero) and crossunder(source, upper)) // crossover(delta, MACDZero) crossover(vrsi, overSold) crossover(sig, adxThreshold) strategy.close("FEMIRSILE") strategy.close("FEMIMACDLE") strategy.close("FEMIADXLE") strategy.close("FEMIBBLE") // if(crossunder(source, upper)) // strategy.close("FEMIRSILE") // strategy.close("FEMIMACDLE") // strategy.close("FEMIADXLE") // strategy.close("FEMIBBLE") // strategy.entry("FEMIADXSE", strategy.short, comment="FEMIADXSE") // else // strategy.cancel(id="FEMISE") // plot(sig, color=red, title="ADX", linewidth=2, style=areabr) // plot(adxThreshold, color=blue, title="ADX") // plot(vrsi, color=green, title="RSI", linewidth=2, style=areabr) // plot(overSold, color=blue, title="RSI") // plot(overBought, color=red, title="RSI") // plot(delta, color=green, title="MACD", linewidth=2, style=areabr) // plot(MACDZero, color=blue, title="MACD") // plot(overBought, color=red, title="MACD") //plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)