Strategi trading ini didasarkan pada tiga indikator: 100 periode Exponential Moving Average (EMA100), Net Unrealized Profit/Loss (NUPL), dan Relative Unrealized Profit. Strategi ini menghasilkan sinyal trading dengan menentukan crossover harga dengan EMA100 dan positivitas atau negativitas NUPL dan Relative Unrealized Profit. Sinyal panjang dipicu ketika harga melintasi EMA100 dan kedua NUPL dan Relative Unrealized Profit positif. Sinyal pendek dipicu ketika harga melintasi di bawah EMA100 dan kedua NUPL dan Relative Unrealized Profit negatif. Strategi ini menggunakan ukuran posisi tetap 10% dan menetapkan stop loss 10%.
Strategi trading ini menghasilkan sinyal trading melalui tiga indikator: EMA100, NUPL, dan Relative Unrealized Profit. Strategi ini memiliki keuntungan seperti logika yang jelas, risiko yang dapat dikendalikan, dan kemampuan beradaptasi yang kuat. Pada saat yang sama, strategi ini juga memiliki risiko seperti sinyal palsu, lag, dan optimasi parameter.
/*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")