
Es handelt sich um eine Adaptive-Trading-Strategie, die auf doppelte Linear-Cross-Signalen basiert. Die Strategie generiert Handelssignale mit einem einfachen Moving Average (SMA) von 14 und 28 Zyklen und kombiniert ein anpassbares Stop-Loss- und Stop-Stopp-Mechanismus, um eine ausgewogene Verwaltung von Risiken und Erträgen zu ermöglichen. Die Strategie verwendet eine Fixed-Funds-Management-Methode mit einem Startkapital von 2000 und einem Einsatz von 200 pro Handel.
Die Kernlogik der Strategie basiert auf der Querbeziehung zwischen zwei einfachen Moving Averages aus verschiedenen Perioden. Es wird ein Mehrwertsignal erzeugt, wenn der kurzfristige (~14-Zyklus) Durchschnitt den langfristigen (~28-Zyklus) Durchschnitt nach oben durchquert. Es wird ein Abbruchsignal erzeugt, wenn der kurzfristige Durchschnitt den langfristigen Durchschnitt nach unten durchquert.
Es handelt sich um eine klar strukturierte, logisch strenge Handelsstrategie. Die Handelssignale werden durch die doppelte Gleichschnitt-Kreuzung bereitgestellt, kombiniert mit einem adaptiven Stop-Loss-Mechanismus, der die Erfassung von Handelschancen und die Kontrolle von Risiken ermöglicht. Obwohl es einige Optimierungsmöglichkeiten für die Strategie gibt, entspricht die Gesamtkonstruktion den grundlegenden Prinzipien des quantitativen Handels.
/*backtest
start: 2024-10-01 00:00:00
end: 2024-10-31 23:59:59
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy('My Custom Strategy', overlay = true)
// Parámetros de las SMAs (Medias Móviles Simples)
sma14 = ta.sma(close, 14)
sma28 = ta.sma(close, 28)
// Stop Loss y Take Profit configurables
stop_loss_percent = input.float(2, title="Stop Loss %", minval=0.1, step=0.1)
take_profit_percent = input.float(4, title="Take Profit %", minval=0.1, step=0.1)
// Cálculo de stop loss y take profit
stop_loss = close * (1 - stop_loss_percent / 100)
take_profit = close * (1 + take_profit_percent / 100)
// Condiciones de entrada para compra (long)
longCondition = ta.crossover(sma14, sma28)
if (longCondition)
strategy.entry('Long', strategy.long, stop=stop_loss, limit=take_profit)
plotshape(series=longCondition, color=color.new(color.blue, 0), style=shape.labelup, location=location.belowbar, text="BUY")
// Condiciones de entrada para venta (short)
shortCondition = ta.crossunder(sma14, sma28)
if (shortCondition)
strategy.entry('Short', strategy.short, stop=stop_loss, limit=take_profit)
plotshape(series=shortCondition, color=color.new(color.red, 0), style=shape.labeldown, location=location.abovebar, text="SELL")
// Visualización de las SMAs en el gráfico
plot(sma14, color=color.blue, title="SMA 14")
plot(sma28, color=color.red, title="SMA 28")