
Strategi ini adalah sistem perdagangan komprehensif yang menggabungkan beberapa alat analisis teknis, terutama menggunakan garis rata-rata ganda ((EMA 20⁄50 siklus), Fibonacci retracement level dan pivot support resistance level untuk menentukan sinyal perdagangan. Strategi ini menggunakan metode pelacakan tren yang dikombinasikan dengan retracement harga, untuk meningkatkan akurasi perdagangan melalui konfirmasi ganda.
Logika inti dari strategi ini didasarkan pada elemen-elemen kunci berikut:
Strategi ini membangun sistem perdagangan yang relatif lengkap dengan mengintegrasikan beberapa alat analisis teknis klasik. Meskipun ada beberapa keterlambatan, namun meningkatkan keandalan perdagangan melalui mekanisme konfirmasi ganda. Dengan menerapkan rekomendasi yang dioptimalkan, strategi ini diharapkan untuk mencapai kinerja yang lebih baik dalam perdagangan di pasar nyata.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-09 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Forex Strategy with EMA, Pivot, Fibonacci and Signals", overlay=true)
// Input for EMAs and Pivot Points
emaShortPeriod = input.int(20, title="Short EMA Period", minval=1)
emaLongPeriod = input.int(50, title="Long EMA Period", minval=1)
fibRetraceLevel1 = input.float(0.236, title="Fibonacci 23.6% Level")
fibRetraceLevel2 = input.float(0.382, title="Fibonacci 38.2% Level")
fibRetraceLevel3 = input.float(0.5, title="Fibonacci 50% Level")
fibRetraceLevel4 = input.float(0.618, title="Fibonacci 61.8% Level")
// Function to calculate Pivot Points and Levels
pivot(high, low, close) =>
pp = (high + low + close) / 3
r1 = 2 * pp - low
s1 = 2 * pp - high
r2 = pp + (high - low)
s2 = pp - (high - low)
[pp, r1, s1, r2, s2]
// Calculate Pivot Points
[pp, r1, s1, r2, s2] = pivot(high, low, close)
// Calculate 20 EMA and 50 EMA
emaShort = ta.ema(close, emaShortPeriod)
emaLong = ta.ema(close, emaLongPeriod)
// Plot the EMAs
plot(emaShort, color=color.blue, title="20 EMA", linewidth=2)
plot(emaLong, color=color.red, title="50 EMA", linewidth=2)
// Fibonacci Levels (manually drawn between the most recent high and low)
var float fibHigh = na
var float fibLow = na
if (not na(high[1]) and high > high[1]) // Check if new high is formed
fibHigh := high
if (not na(low[1]) and low < low[1]) // Check if new low is formed
fibLow := low
fib23_6 = fibLow + (fibHigh - fibLow) * fibRetraceLevel1
fib38_2 = fibLow + (fibHigh - fibLow) * fibRetraceLevel2
fib50 = fibLow + (fibHigh - fibLow) * fibRetraceLevel3
fib61_8 = fibLow + (fibHigh - fibLow) * fibRetraceLevel4
plot(fib23_6, color=color.green, linewidth=1, title="Fibonacci 23.6%")
plot(fib38_2, color=color.green, linewidth=1, title="Fibonacci 38.2%")
plot(fib50, color=color.green, linewidth=1, title="Fibonacci 50%")
plot(fib61_8, color=color.green, linewidth=1, title="Fibonacci 61.8%")
// Entry conditions (Crossovers)
longCondition = ta.crossover(emaShort, emaLong) and close > fib23_6 and close > s1
shortCondition = ta.crossunder(emaShort, emaLong) and close < fib23_6 and close < r1
// Exit conditions (Stop Loss and Take Profit)
stopLossPips = 30 * syminfo.mintick // 30 pips Stop Loss
takeProfitPips = 60 * syminfo.mintick // 60 pips Take Profit
if (longCondition)
strategy.entry("Buy", strategy.long, stop=stopLossPips, limit=takeProfitPips)
if (shortCondition)
strategy.entry("Sell", strategy.short, stop=stopLossPips, limit=takeProfitPips)
// Plot Pivot Points for visual reference
plot(pp, color=color.yellow, linewidth=2, title="Pivot Point")
plot(r1, color=color.purple, linewidth=1, title="Resistance 1")
plot(s1, color=color.purple, linewidth=1, title="Support 1")
plot(r2, color=color.purple, linewidth=1, title="Resistance 2")
plot(s2, color=color.purple, linewidth=1, title="Support 2")
// Adding Buy and Sell Signals
plotshape(longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY", textcolor=color.white, size=size.small)
plotshape(shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL", textcolor=color.white, size=size.small)