
Die Strategie ist ein quantitatives Handelssystem, basierend auf doppelte Gleichgewicht-Kreuzungssignalen, das Markttrendänderungen durch die Kreuzung von kurz- und langfristigen Moving Averages identifiziert und Risiken in Verbindung mit dynamischem Stop-Loss-Management kontrolliert. Die Strategie handelt mit Marktpreislisten, platziert automatisch vorhandene Positionen und eröffnet neue Positionen, um die Sicherheit von Kapital durch die Einstellung von Stop-Loss-Punkten zu schützen.
Die Strategie nutzt zwei verschiedene Perioden des einfachen Moving Averages (SMA) als Hauptgrundlage für die Handelssignale. Wenn die kurzfristige Durchschnittslinie die langfristige Durchschnittslinie durchbricht, erzeugt das System mehrere Signale. Wenn die kurzfristige Durchschnittslinie unter der langfristigen Durchschnittslinie durchbricht, erzeugt das System eine Ausfallsignal.
Es handelt sich um eine strukturierte, logisch klare und quantitative Handelsstrategie. Die Strategie hat den Vorteil, dass sie sehr systematisch ist. Die Risiken können kontrolliert werden, aber es muss darauf geachtet werden, dass die verschiedenen Arten von Marktrisiken in der Realität behandelt werden. Durch kontinuierliche Optimierung und Verbesserung wird die Strategie voraussichtlich eine stabile Leistung in verschiedenen Marktumgebungen aufweisen.
/*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("BTCUSD Daily Strategy - Market Orders Only", overlay=true, initial_capital=10000, currency=currency.USD)
// Configurable Inputs
stop_loss_percent = input.float(title="Stop Loss (%)", defval=1.0, minval=0.0, step=0.1)
take_profit_percent = input.float(title="Take Profit (%)", defval=2.0, minval=0.0, step=0.1)
short_ma_length = input.int(title="Short MA Length", defval=9, minval=1)
long_ma_length = input.int(title="Long MA Length", defval=21, minval=1)
// Moving Averages
short_ma = ta.sma(close, short_ma_length)
long_ma = ta.sma(close, long_ma_length)
// Plotting Moving Averages
plot(short_ma, color=color.blue, title="Short MA")
plot(long_ma, color=color.red, title="Long MA")
// Buy and Sell Signals
buy_signal = ta.crossover(short_ma, long_ma)
sell_signal = ta.crossunder(short_ma, long_ma)
// Market Buy Logic
if (buy_signal and strategy.position_size <= 0)
// Close any existing short position
if (strategy.position_size < 0)
strategy.close(id="Market Sell")
// Calculate Stop Loss and Take Profit Prices
entry_price = close
long_stop = entry_price * (1 - stop_loss_percent / 100)
long_take_profit = entry_price * (1 + take_profit_percent / 100)
// Enter Long Position
strategy.entry(id="Market Buy", direction=strategy.long)
strategy.exit(id="Exit Long", from_entry="Market Buy", stop=long_stop, limit=long_take_profit)
// Alert for Market Buy
alert("Market Buy Signal at price " + str.tostring(close) + ". Stop Loss: " + str.tostring(long_stop) + ", Take Profit: " + str.tostring(long_take_profit), alert.freq_once_per_bar_close)
// Market Sell Logic
if (sell_signal and strategy.position_size >= 0)
// Close any existing long position
if (strategy.position_size > 0)
strategy.close(id="Market Buy")
// Calculate Stop Loss and Take Profit Prices
entry_price = close
short_stop = entry_price * (1 + stop_loss_percent / 100)
short_take_profit = entry_price * (1 - take_profit_percent / 100)
// Enter Short Position
strategy.entry(id="Market Sell", direction=strategy.short)
strategy.exit(id="Exit Short", from_entry="Market Sell", stop=short_stop, limit=short_take_profit)
// Alert for Market Sell
alert("Market Sell Signal at price " + str.tostring(close) + ". Stop Loss: " + str.tostring(short_stop) + ", Take Profit: " + str.tostring(short_take_profit), alert.freq_once_per_bar_close)