Dies ist eine einfache Intraday-Handelsstrategie, die auf doppelten gleitenden Durchschnitten basiert. Sie verwendet zwei einfache gleitende Durchschnitte mit verschiedenen Perioden und nimmt lange oder kurze Positionen ein, wenn sich die gleitenden Durchschnitte kreuzen. Die Position wird umgekehrt, wenn sich das Signal ändert. Alle offenen Positionen werden abgerechnet, wenn die Intraday-Sitzung endet.
Die Strategie verwendet einen 10-tägigen und einen 40-tägigen einfachen gleitenden Durchschnitt. Es geht lang, wenn der kurze Zeitraum gleitende Durchschnitt über die lange Periode ein kreuzt und geht kurz, wenn der umgekehrte Crossover geschieht. Wenn das Signal ändert, wird die Position mit doppelter Menge geschlossen und eine umgekehrte Position initiiert. Der Handel geschieht nur nach den gleitenden Durchschnittssignalen während einer definierten Intraday-Sitzung. Alle offenen Positionen, die übrig sind, werden am Ende der Sitzung quadriert.
Die Strategie nutzt hauptsächlich die schnelleren Preisänderung Erfassung Fähigkeit des kürzeren Zeitraums gleitenden Durchschnitt. Wenn die kurze SMA über die lange SMA kreuzt, zeigt es einen Aufwärtstrend in den Preisen auf kurze Sicht, daher kann lang gehen, um dies zu erfassen. Das Gegenteil zeigt einen kurzfristigen Abwärtstrend. Die doppelte Menge umgekehrte Eintrag erweitert das Gewinnpotenzial.
Risikominderung:
Optimieren Sie die MA-Parameter, indem Sie mehr Kombinationen für die beste Passform testen.
Fügen Sie Filter wie MACD-Bestätigung hinzu, um falsche Signale zu reduzieren.
Optimieren Sie den Umkehrbetriebsmengen multiplizierenden Faktor durch Parameter-Tuning.
Testen Sie, indem Sie die Dauer der Intraday-Sitzung verlängern, um bessere Renditen zu erzielen.
Die Strategie erfasst kurzfristige Trends, die sich aus MA-Crossover-Signalen bilden, erweitert die Gewinne durch doppelten Umkehrhandel und begrenzt die Übernachtungsrisiken, indem sie nur in einer Intraday-Sitzung gehandelt wird. Weitere Optimierungen der Parameter und das Hinzufügen von Filtern können die Strategieleistung verbessern. Insgesamt ist es eine effektive Strategie, die für den Intraday-Handel geeignet ist.
/*backtest start: 2024-02-19 00:00:00 end: 2024-02-26 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © Pritesh-StocksDeveloper //@version=4 strategy("Moving Average - Intraday", shorttitle = "MA - Intraday", overlay=true, calc_on_every_tick = true) // Used for intraday handling // Session value should be from market start to the time you want to square-off // your intraday strategy var i_marketSession = input(title="Market session", type=input.session, defval="0915-1455", confirm=true) // Short & Long moving avg. period var int i_shortPeriod = input(title = "Short MA Period", type = input.integer, defval = 10, minval = 2, maxval = 20, confirm=true) var int i_longPeriod = input(title = "Long MA Period", type = input.integer, defval = 40, minval = 3, maxval = 120, confirm=true) // A function to check whether the bar is in intraday session barInSession(sess) => time(timeframe.period, sess) != 0 // Calculate moving averages shortAvg = sma(close, i_shortPeriod) longAvg = sma(close, i_longPeriod) // Plot moving averages plot(series = shortAvg, color = color.red, title = "Short MA", linewidth = 2) plot(series = longAvg, color = color.blue, title = "Long MA", linewidth = 2) // Long/short condition longCondition = crossover(shortAvg, longAvg) shortCondition = crossunder(shortAvg, longAvg) // See if intraday session is active bool intradaySession = barInSession(i_marketSession) // Trade only if intraday session is active // Long position strategy.entry(id = "Long", long = strategy.long, when = longCondition and intradaySession) // Short position strategy.entry(id = "Short", long = strategy.short, when = shortCondition and intradaySession) // Square-off position (when session is over and position is open) squareOff = (not intradaySession) and (strategy.position_size != 0) strategy.close_all(when = squareOff, comment = "Square-off")