Diese Strategie verwendet die Veränderungen der höchsten und niedrigsten Preise von K-Linien, um die Richtung und Intensität der Marktschwingungen zu beurteilen, und kombiniert gleitenden Durchschnitt, um den allgemeinen Trend zu beurteilen, um kurzfristige Operationen durchzuführen.
Diese Strategie beurteilt zunächst die Veränderungen der höchsten und niedrigsten Preise der K-Linien im Verhältnis zur vorherigen K-Line. Wenn der höchste Preis steigt, wird er als 1 aufgezeichnet. Wenn der niedrigste Preis fällt, wird er als -1 aufgezeichnet, andernfalls wird er als 0 aufgezeichnet. Dann berechnet man den Durchschnittswert der Veränderungen der höchsten und niedrigsten Preise innerhalb eines bestimmten Zyklus, um die Richtung und Intensität der Marktschwingung zu beurteilen.
Gleichzeitig werden die höchsten und niedrigsten Preise des letzten Zyklus aufgezeichnet, wenn der gleitende Durchschnitt eine Trendumkehr bestimmt, kombiniert mit den aufgezeichneten Preisen, um die wichtigsten Preisniveaus zu bestimmen, um Stop-Loss- und Take-Profit-Niveaus zu bilden.
Die Eintrittsrichtung wird durch den gleitenden Durchschnitt bestimmt. Gehen Sie lang über der oberen Schiene und kurz unter der unteren Schiene. Die Stop-Loss- und Take-Profit-Level werden durch das Beurteilen der wichtigsten Preisniveaus gebildet.
Der größte Vorteil dieser Strategie besteht darin, die Eigenschaften von kurzfristigen Schwankungen voll auszunutzen, um Gewinne zu erzielen. Durch die Bestimmung des Stop-Loss und Take-Profit basierend auf den wichtigsten Preisniveaus wird die Strategie nach klaren Regeln ausgeführt. Gleichzeitig kombiniert sie Trendbeurteilung, um ungünstige Märkte auszufiltern und unnötige Verluste zu vermeiden.
Die wichtigsten Risiken dieser Strategie sind:
Es gibt keinen Gewinn, wenn der Markt nicht schwankt.
Unnötige Verluste, wenn die Preise den Stop-Loss-Level überschreiten.
Eine falsche Beurteilung des Trends kann Gelegenheiten verpassen oder Operationen in die entgegengesetzte Richtung führen.
Diese Strategie kann in folgenden Aspekten optimiert werden:
Anpassung des gleitenden Durchschnittszyklus an die Merkmale der verschiedenen Sorten.
Optimieren Sie den Stop-Profit- und Stop-Loss-Bereich, um Gewinn und Verlust auszugleichen.
Hinzufügen anderer Indikatoren für das Urteilen, um falsche Operationen zu vermeiden.
Fügen Sie automatischen Stoppverlust hinzu, um den maximalen Verlust zu kontrollieren.
Im Allgemeinen ist diese Strategie eine, die von kurzfristigen Schwankungen profitiert. Sie nutzt die kleinen Preisbewegungen voll aus, um Gewinne zu erzielen. Gleichzeitig kontrolliert sie Risiken streng und reduziert Verluste rechtzeitig, wenn der Trend ungünstig ist. Sie eignet sich für Anleger, die mit einer relativ umsichtigen Haltung nach stabilen Renditen streben. Mit entsprechenden Parameteranpassungen kann sie in schwankenden Märkten gute Ergebnisse erzielen.
/*backtest start: 2024-01-16 00:00:00 end: 2024-01-16 22:45:00 period: 15m basePeriod: 5m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2018 //@version=3 strategy(title = "Noro's ZZ-3 Strategy", shorttitle = "ZZ-3 str", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0) //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 = "Capital, %") corr = input(0.0, title = "Correction, %") bars = input(1, minval = 1) revers = input(false, defval = false, title = "revers") showll = input(true, defval = true, title = "Show Levels") showbg = input(false, defval = false, title = "Show Background") showar = input(false, defval = false, title = "Show Arrows") 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") //Levels hbar = 0 hbar := high > high[1] ? 1 : high < high[1] ? -1 : 0 lbar = 0 lbar := low > low[1] ? 1 : low < low[1] ? -1 : 0 uplevel = 0.0 dnlevel = 0.0 hh = highest(high, bars + 1) ll = lowest(low, bars + 1) uplevel := hbar == -1 and sma(hbar, bars)[1] == 1 ? hh + ((hh / 100) * corr) : uplevel[1] dnlevel := lbar == 1 and sma(lbar, bars)[1] == -1 ? ll - ((ll / 100) * corr) : dnlevel[1] //Lines upcol = na upcol := showll == false ? na : uplevel != uplevel[1] ? na : lime plot(uplevel, color = upcol, linewidth = 2) dncol = na dncol := showll == false ? na : dnlevel != dnlevel[1] ? na : red plot(dnlevel, color = dncol, linewidth = 2) //Background size = strategy.position_size trend = 0 trend := size > 0 ? 1 : size < 0 ? -1 : high >= uplevel ? 1 : low <= dnlevel ? -1 : trend[1] col = showbg == false ? na : trend == 1 ? lime : trend == -1 ? red : na bgcolor(col) //Arrows longsignal = false shortsignal = false longsignal := size > size[1] shortsignal := size < size[1] plotarrow(longsignal and showar and needlong ? 1 : na, colorup = blue, colordown = blue, transp = 0) plotarrow(shortsignal and showar and needshort ? -1 : na, colorup = blue, colordown = blue, transp = 0) //Trading lot = 0.0 lot := size != size[1] ? strategy.equity / close * capital / 100 : lot[1] if uplevel > 0 and dnlevel > 0 and revers == false strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, stop = uplevel, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, stop = dnlevel, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if uplevel > 0 and dnlevel > 0 and revers == true strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, limit = dnlevel, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, limit = uplevel, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if time > timestamp(toyear, tomonth, today, 23, 59) strategy.close_all()