Kurzfristige Strategie zur Beobachtung von Schwankungen

Schriftsteller:ChaoZhang, Datum: 2024-01-18 16:29:34
Tags:

img

Übersicht

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.

Strategieprinzip

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.

Analyse der Vorteile

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.

Risikoanalyse

Die wichtigsten Risiken dieser Strategie sind:

  1. Es gibt keinen Gewinn, wenn der Markt nicht schwankt.

  2. Unnötige Verluste, wenn die Preise den Stop-Loss-Level überschreiten.

  3. Eine falsche Beurteilung des Trends kann Gelegenheiten verpassen oder Operationen in die entgegengesetzte Richtung führen.

Optimierungsrichtlinien

Diese Strategie kann in folgenden Aspekten optimiert werden:

  1. Anpassung des gleitenden Durchschnittszyklus an die Merkmale der verschiedenen Sorten.

  2. Optimieren Sie den Stop-Profit- und Stop-Loss-Bereich, um Gewinn und Verlust auszugleichen.

  3. Hinzufügen anderer Indikatoren für das Urteilen, um falsche Operationen zu vermeiden.

  4. Fügen Sie automatischen Stoppverlust hinzu, um den maximalen Verlust zu kontrollieren.

Zusammenfassung

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

Mehr