
Strategi perdagangan ini berdasarkan 100 purata bergerak indeks kitaran ((EMA100), keuntungan / kerugian bersih yang belum dicapai ((NUPL) dan tiga petunjuk keuntungan yang belum dicapai, menghasilkan isyarat perdagangan dengan menilai persilangan harga dengan EMA100 dan negatif dari NUPL dan keuntungan yang belum dicapai. Isyarat berganda dicetuskan apabila harga melewati EMA100 di atas dan NUPL dan keuntungan yang belum dicapai secara positif; isyarat kosong dicetuskan apabila harga melewati EMA100 di bawah dan NUPL dan keuntungan yang belum dicapai secara negatif.
Strategi perdagangan ini menghasilkan isyarat perdagangan melalui EMA100, NUPL dan tiga indikator keuntungan yang tidak dicapai, dengan kelebihan seperti kejernihan logik, kawalan risiko, dan adaptasi yang kuat. Terdapat juga risiko seperti isyarat palsu, keterbelakangan dan pengoptimuman parameter. Strategi ini dapat dioptimumkan dan ditingkatkan pada masa depan melalui pengoptimuman parameter, penapisan isyarat, pengurusan kedudukan dinamik, dan kombinasi pelbagai ruang.
/*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")