Dieser Artikel liefert eine eingehende Analyse der von Noro codierten gleitenden Durchschnitts-Gap-Handelsstrategie.
Die Strategie berechnet zunächst den 3-tägigen einfachen gleitenden Durchschnitt (SMA). Dann berechnet sie das Verhältnis des Schlusskurses (Schließen) zu SMA minus eins als Indikator (ind). Wenn der Ind über die vorgegebene Parametergrenze geht, bedeutet dies, dass der Schlusskurs den SMA deutlich überschritten hat und eine Long-Position in Betracht gezogen wird. Wenn der Ind unter die -Grenze geht, bedeutet dies, dass der Schlusskurs weit unter den SMA gefallen ist und eine Short-Position in Betracht gezogen wird.
Die Strategie zeichnet auch die 0-Achse, die Grenzeachse und die Grenzeachse. Der Ind-Indikator ist in verschiedenen Bereichen unterschiedlich gefärbt, um das Urteilen zu erleichtern.
Bei Long/Short-Signal schließt die Strategie zuerst die gegenüberliegende Position, dann öffnet sie die Long/Short-Position.
Annahme des Gap-Trading-Prinzips, um Trendumkehrungen zu erfassen, im Gegensatz zu Trendfolgestrategien.
Angabe der Indikatorachsen zur intuitiven Beurteilung der Indikatorposition und des Crossovers.
Optimierte Schließlogik, die vorhandene Position schließt, bevor die Richtung umgekehrt wird.
Definierte Handelszeitbereiche, um unnötige Übernachtpositionen zu vermeiden.
Flexibilität bei der Aktivierung/Deaktivierung von Long/Short-Handel.
Bewegliche Durchschnittsstrategien neigen dazu, mehrere Verlustgeschäfte zu generieren, was Geduld beim Halten erfordert.
Bei den gleitenden Durchschnitten fehlt es an Flexibilität, um Preisänderungen in Echtzeit zu erfassen.
Die vorgegebenen Grenzparameter sind statisch und müssen für verschiedene Produkte und Marktumgebungen angepasst werden.
Nicht in der Lage, Schwankungen innerhalb von Trends zu erkennen, was eine Kombination mit Volatilitätsindikatoren erfordert.
Notwendigkeit zur Optimierung von Holding-Regeln, z. B. Stop-Loss, Take-Profit oder nur Erstlücke.
Versuche verschiedene Parameter-Einstellungen, z. B. SMA-Periode oder adaptive gleitende Durchschnitte wie EMA.
Hinzufügen Sie gleitende Durchschnittsrichtung und Steigung Validierung sinnlose Trades zu vermeiden.
Erwägen Sie die Kombination mit Volatilitätsindikatoren wie Bollinger Bands, um den Handel zu unterbrechen, wenn die Volatilität steigt.
Einführung von Positionsgrößenregelungen, z. B. feste Menge, inkrementelle Pyramiden, Geldmanagement.
Einstellen von Stop-Loss-/Take-Profit-Linien oder Pausieren neuer Aufträge, wenn ein festes Stop-Loss-Prozentsatz ausgelöst wird, um das Handelsrisiko zu kontrollieren.
Dieser Artikel analysiert umfassend Noro
/*backtest start: 2022-10-19 00:00:00 end: 2023-10-25 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2018 //@version=3 strategy(title = "Noro's Shift Close Strategy v1.0", shorttitle = "Shift Close 1.0", default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 5) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(true, defval = true, title = "Short") capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot, %") limit = input(10) fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year") toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year") frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month") tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month") fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From Day") today = input(31, defval = 31, minval = 01, maxval = 31, title = "To Day") //Shift MA sma = sma(ohlc4, 3) ind = ((close / sma) - 1) * 100 //Oscilator plot(3 * limit, color = na, transp = 0) plot(limit, color = black, transp = 0) plot(0, color = black, transp = 0) plot(-1 * limit, color = black, transp = 0) plot(-3 * limit, color = na, transp = 0) plot(ind, linewidth = 3, transp = 0) col = ind > limit ? red : ind < -1 * limit ? lime : na bgcolor(col, transp = 0) //Signals size = strategy.position_size up = ind < -1 * limit dn = ind > limit exit = ind > -1 * limit and ind < limit //Trading lot = 0.0 lot := size == 0 ? strategy.equity / close * capital / 100 : lot[1] if up if strategy.position_size < 0 strategy.close_all() strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if dn if strategy.position_size > 0 strategy.close_all() strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if exit strategy.close_all()