
Die Moving Average Crossover Trend Tracking Strategie ist eine quantitative Trading-Strategie, die Markttrends verfolgt. Die Strategie generiert Handelssignale, um Wendepunkte in Markttrends zu erfassen, indem sie schnell bewegliche und langsam bewegliche Durchschnittslinien berechnet und bei deren Kreuzung Handel signalisiert.
Das Kernprinzip der Strategie ist, die Markttrends anhand verschiedener Parameter der Index-Moving-Even-Linien (EMA) zu beurteilen. In der Strategie werden ein schneller EMA und ein langsamer EMA definiert. Wenn ein schneller EMA von unten durch den langsamen EMA geht, ist der Markttrend bullish.
Die Strategie hält die Position, bis der Stop-Loss ausgelöst wird oder ein weiteres Cross-Back-Signal erfolgt.
Diese Strategie hat folgende Vorteile:
Die Strategie birgt auch einige Risiken:
Um das Risiko zu verringern, können Sie die Art des Trends in Kombination mit anderen Indikatoren erwägen oder die Stop-Loss-Ratio etwas lockerer einstellen.
Die Strategie kann auch in folgenden Bereichen optimiert werden:
Die Mobile Equilibrium Cross-Trend Tracking Strategie ist eine einfache und praktische Trend-Handelsstrategie. Die Kernidee der Strategie ist klar und einfach zu praktizieren, aber es gibt auch einen gewissen Optimierungsraum. Durch Parameter-Anpassung, mehrperiodische Beurteilung und dynamische Stop-Loss-Methoden können die Stabilität und die Ertragslage der Strategie kontinuierlich verbessert werden.
/*backtest
start: 2024-01-28 00:00:00
end: 2024-02-04 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy('Zhukov trade', overlay=true, calc_on_every_tick=true, currency=currency.USD)
// INPUT:
// Options to enter fast and slow Exponential Moving Average (EMA) values
emaFast = input.int(title='Fast EMA', defval=10, minval=1, maxval=9999)
emaSlow = input.int(title='Slow EMA', defval=20, minval=1, maxval=9999)
// Option to select trade directions
tradeDirection = input.string(title='Trade Direction', options=['Long', 'Short', 'Both'], defval='Both')
// Options that configure the backtest date range
startDate = input(title='Start Date', defval=timestamp('01 Jan 2023 00:00'))
endDate = input(title='End Date', defval=timestamp('31 Dec 2030 23:59'))
// Set take profit and stop loss percentages
take_profit_percent = input(1.0, title ="Take Profit Percent") / 100.0
stop_loss_percent = input(1.0, title ="Stop Loss Percent") / 100.0
// CALCULATIONS:
// Use the built-in function to calculate two EMA lines
fastEMA = ta.ema(close, emaFast)
slowEMA = ta.ema(close, emaSlow)
emapos = ta.ema(close, 200)
// PLOT:
// Draw the EMA lines on the chart
plot(series=fastEMA, color=color.new(color.orange, 0), linewidth=2)
plot(series=slowEMA, color=color.new(color.blue, 0), linewidth=2)
plot(series=emapos, color=color.new(color.red, 0), linewidth=2)
// CONDITIONS:
// Check if the close time of the current bar falls inside the date range
inDateRange = true
// Translate input into trading conditions
longOK = tradeDirection == 'Long' or tradeDirection == 'Both'
shortOK = tradeDirection == 'Short' or tradeDirection == 'Both'
// Decide if we should go long or short using the built-in functions
longCondition = ta.crossover(fastEMA, slowEMA) and inDateRange
shortCondition = ta.crossunder(fastEMA, slowEMA) and inDateRange
// ORDERS:
// Submit entry (or reverse) orders
if longCondition and longOK
strategy.entry(id='long', direction=strategy.long)
if shortCondition and shortOK
strategy.entry(id='short', direction=strategy.short)
// Exit orders
if strategy.position_size > 0 and longOK
strategy.exit(id='exit long', from_entry='long', limit=strategy.position_avg_price * (1 + take_profit_percent), stop=strategy.position_avg_price * (1 - stop_loss_percent))
if strategy.position_size < 0 and shortOK
strategy.exit(id='exit short', from_entry='short', limit=strategy.position_avg_price * (1 - take_profit_percent), stop=strategy.position_avg_price * (1 + stop_loss_percent))