
Strategi perdagangan ini didasarkan pada 100 siklus indeks moving average ((EMA100), net tidak terwujud keuntungan / kerugian ((NUPL) dan relatif tidak terwujud keuntungan tiga indikator, dengan menilai harga dengan EMA100 crossover dan NUPL dan relatif tidak terwujud keuntungan negatif untuk menghasilkan sinyal perdagangan. Bila harga melewati EMA100 dan NUPL dan relatif tidak terwujud keuntungan adalah positif, memicu sinyal multi; Bila harga melewati EMA100 dan NUPL dan relatif tidak terwujud keuntungan adalah negatif, memicu sinyal kosong. Strategi ini menggunakan 10% posisi tetap, dan menetapkan 10% stop loss.
Strategi perdagangan ini menghasilkan sinyal perdagangan melalui tiga indikator EMA100, NUPL dan keuntungan yang relatif tidak tercapai, dengan keunggulan seperti kejelasan logika, kontrol risiko, dan adaptasi yang kuat. Namun, ada juga risiko seperti sinyal palsu, keterbelakangan, dan optimasi parameter. Strategi dapat dioptimalkan dan ditingkatkan di masa depan melalui optimasi parameter, pemfilteran sinyal, manajemen posisi dinamis, dan kombinasi multi-kamar.
/*backtest
start: 2023-06-11 00:00:00
end: 2024-06-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Scalping Strategy with EMA 100, NUPL, and Relative Unrealized Profit", overlay=true)
// Input for EMA period
emaPeriod = input.int(100, title="EMA Period", minval=1)
ema100 = ta.ema(close, emaPeriod)
plot(ema100, color=color.blue, title="EMA 100")
// Placeholder function for NUPL (Net Unrealized Profit/Loss)
// Replace this with actual NUPL data or calculation
NUPL = close * 0.0001 // Dummy calculation
// Placeholder function for relative unrealized profit
// Replace this with actual relative unrealized profit data or calculation
relativeUnrealizedProfit = close * 0.0001 // Dummy calculation
// Define conditions for long and short entries
longCondition = ta.crossover(close, ema100) and NUPL > 0 and relativeUnrealizedProfit > 0
shortCondition = ta.crossunder(close, ema100) and NUPL < 0 and relativeUnrealizedProfit < 0
// Plot buy and sell signals on the chart
plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.labelup, title="Buy Signal")
plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.labeldown, title="Sell Signal")
// Calculate stop loss levels
longStopLoss = close * 0.90
shortStopLoss = close * 1.10
// Strategy entry and exit rules
if (longCondition)
strategy.entry("Long", strategy.long, stop=longStopLoss)
if (shortCondition)
strategy.entry("Short", strategy.short, stop=shortStopLoss)
// Set stop loss levels for active positions
if (strategy.position_size > 0)
strategy.exit("Exit Long", "Long", stop=longStopLoss)
if (strategy.position_size < 0)
strategy.exit("Exit Short", "Short", stop=shortStopLoss)
// Alerts for long and short entries
alertcondition(longCondition, title="Long Entry Alert", message="Long entry signal based on EMA 100, NUPL, and relative unrealized profit")
alertcondition(shortCondition, title="Short Entry Alert", message="Short entry signal based on EMA 100, NUPL, and relative unrealized profit")
// Visualize the entry conditions
plotshape(series=longCondition, location=location.belowbar, color=color.blue, style=shape.cross, title="Long Condition")
plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.cross, title="Short Condition")