
Die Handelsstrategie basiert auf dem 100-Zyklus-Index-Moving Average (EMA100), dem Netto-Unrealized Profit/Loss (NUPL) und den drei Indikatoren des Relativ Unrealized Profit, um ein Handelssignal zu erzeugen, indem sie die Kreuzung des Preises mit EMA100 und die Negativstellung des NUPL und des Relativ Unrealized Profit beurteilt. Es wird ein Mehrsignal ausgelöst, wenn der Preis EMA100 überschreitet und die NUPL und der Relativ Unrealized Profit beide positiv sind; es wird ein Leersignal ausgelöst, wenn der Preis EMA100 überschreitet und die NUPL und der Relativ Unrealized Profit beide negativ sind.
Die Handelsstrategie erzeugt Handelssignale durch EMA100, NUPL und drei Indikatoren für die relativ unerreichte Gewinnrate. Sie hat Vorteile wie Logikklarheit, Risikokontrolle und Anpassungsfähigkeit. Es gibt auch Risiken wie Falschsignale, Rückstand und Parameteroptimierung. In der Zukunft kann die Strategie durch Parameteroptimierung, Signalfilterung, dynamische Positionsverwaltung und Multi-Funktionskombinationen optimiert und verbessert werden.
/*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")