Strategie für den Gap-Handel mit gleitendem Durchschnitt

Schriftsteller:ChaoZhang, Datum: 2023-10-26 16:05:01
Tags:

img

Dieser Artikel liefert eine eingehende Analyse der von Noro codierten gleitenden Durchschnitts-Gap-Handelsstrategie.

Strategie Logik

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.

Vorteile

  1. Annahme des Gap-Trading-Prinzips, um Trendumkehrungen zu erfassen, im Gegensatz zu Trendfolgestrategien.

  2. Angabe der Indikatorachsen zur intuitiven Beurteilung der Indikatorposition und des Crossovers.

  3. Optimierte Schließlogik, die vorhandene Position schließt, bevor die Richtung umgekehrt wird.

  4. Definierte Handelszeitbereiche, um unnötige Übernachtpositionen zu vermeiden.

  5. Flexibilität bei der Aktivierung/Deaktivierung von Long/Short-Handel.

Risiken

  1. Bewegliche Durchschnittsstrategien neigen dazu, mehrere Verlustgeschäfte zu generieren, was Geduld beim Halten erfordert.

  2. Bei den gleitenden Durchschnitten fehlt es an Flexibilität, um Preisänderungen in Echtzeit zu erfassen.

  3. Die vorgegebenen Grenzparameter sind statisch und müssen für verschiedene Produkte und Marktumgebungen angepasst werden.

  4. Nicht in der Lage, Schwankungen innerhalb von Trends zu erkennen, was eine Kombination mit Volatilitätsindikatoren erfordert.

  5. Notwendigkeit zur Optimierung von Holding-Regeln, z. B. Stop-Loss, Take-Profit oder nur Erstlücke.

Anweisungen zur Verbesserung

  1. Versuche verschiedene Parameter-Einstellungen, z. B. SMA-Periode oder adaptive gleitende Durchschnitte wie EMA.

  2. Hinzufügen Sie gleitende Durchschnittsrichtung und Steigung Validierung sinnlose Trades zu vermeiden.

  3. Erwägen Sie die Kombination mit Volatilitätsindikatoren wie Bollinger Bands, um den Handel zu unterbrechen, wenn die Volatilität steigt.

  4. Einführung von Positionsgrößenregelungen, z. B. feste Menge, inkrementelle Pyramiden, Geldmanagement.

  5. 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.

Zusammenfassung

Dieser Artikel analysiert umfassend Noros gleitende Durchschnitts-Gap-Handelsstrategie. Es nutzt die Preislücke aus dem gleitenden Durchschnitts-Feature und implementiert Indikator-Achsen und Farben für den Einstiegszeitplan. Es optimiert auch die Schließlogik und definiert den Handelszeitrahmen. Allerdings bleiben inhärente Schwächen des gleitenden Durchschnitts-Tracking bestehen, die weitere Optimierungen in Parametern, Stop-Loss-Regeln, Kombination von Indikatoren usw. erfordern, um die Robustheit zu verbessern.


/*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()

Mehr