Diese Strategie verwendet die gleitende Durchschnittstheorie, um ein Netzhandelssystem aufzubauen, indem der Markttrend durch mehrere Sätze von gleitenden Durchschnittswerten mit verschiedenen Parametern beurteilt wird.
Bei der Ermittlung der Marktentwicklung wird eine Kombination aus gleitenden Durchschnitten der JMA von 1 bis 20 Perioden verwendet.
Öffnen Sie Grid-Trades an Trendumkehrpunkten, wenn der kurze MA unter oder über dem langen MA kreuzt.
Eine Option zum Filtern basierend auf der Candlestick-Farbe - nur auf roten Kerzen kaufen und auf grünen Kerzen verkaufen, ansonsten Farbe ignorieren und nur bei Trendumkehr handeln.
Ausgänge sind entweder Stop-Loss- oder zeitbasierte Ausgänge, wenn die Strategielaufzeit endet.
Die Verwendung des MA-Systems zur Ermittlung von Trends kann langfristige Trendumkehrungen effektiv erkennen.
Grid-Trading kann Gewinne aus Range-bound Markten ohne klare Trends erzielen, wobei Stop Loss zur Kontrolle von Risiken verwendet wird.
Anpassbare JMA-Parameter, können für verschiedene Zeiträume optimiert werden, hohe Flexibilität.
Der Kerzenfilter verhindert, dass man durch falsche Ausbrüche irregeführt wird.
Bei Märkten mit hohem Whip-Saw-Wert ohne klare Trends besteht ein höheres Stop-Loss-Risiko.
Beurteilungsfehler des MA-Systems können zu falschen Handelssignalen führen.
Der Kerzenfilter riskiert, einige Handelsmöglichkeiten zu verpassen.
Ist der Abstand zu groß, sind die Gewinne unzureichend, kann eine zu enge Abstandsbreite zu zu vielen Positionen und hohen Kosten führen.
Versuche mehr Parameterkombinationen, um optimale JMA MA-Kombinationen für verschiedene Produkte zu finden.
Einbeziehung anderer Filter wie BOLL-Bänder, KD usw. zur Verbesserung der Signalqualität.
Optimieren Sie die Netzkonfigurationen wie Netz-Abstand, Eintrittsplätze usw.
Sie sollten mehr Stop-Loss-Methoden wie Gap-basierte, Trailing-Stops usw. in Betracht ziehen.
Diese Strategie beurteilt Umkehrungen anhand der JMA-Theorie und eröffnet Grid-Trades an Wendepunkten, um Gewinne aus langfristigen Trendveränderungen zu erzielen. Die Performance kann durch Parameteroptimierung weiter verbessert werden. Insgesamt eignet sie sich für mittelfristige Beteiligungen, um Trends allmählich zu verfolgen und zu profitieren.
/*backtest start: 2022-12-27 00:00:00 end: 2024-01-02 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2019 //@version=3 strategy(title = "Noro's Fishnet Strategy", shorttitle = "Fishnet 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 = "Lot") usecf = input(false, defval = false, title = "Use Color-filter") 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") //JMA jmax(src, len) => beta = 0.45*(len-1)/(0.45*(len-1)+2) alpha = pow(beta, 3) L0=0.0, L1=0.0, L2=0.0, L3=0.0, L4=0.0 L0 := (1-alpha)*src + alpha*nz(L0[1]) L1 := (src - L0[0])*(1-beta) + beta*nz(L1[1]) L2 := L0[0] + L1[0] L3 := (L2[0] - nz(L4[1]))*((1-alpha)*(1-alpha)) + (alpha*alpha)*nz(L3[1]) L4 := nz(L4[1]) + L3[0] L4 ma01 = jmax(close, 10) ma02 = jmax(close, 20) ma03 = jmax(close, 30) ma04 = jmax(close, 40) ma05 = jmax(close, 50) ma06 = jmax(close, 60) ma07 = jmax(close, 70) ma08 = jmax(close, 80) ma09 = jmax(close, 90) ma10 = jmax(close, 100) ma11 = jmax(close, 110) ma12 = jmax(close, 120) ma13 = jmax(close, 130) ma14 = jmax(close, 140) ma15 = jmax(close, 150) ma16 = jmax(close, 160) ma17 = jmax(close, 170) ma18 = jmax(close, 180) ma19 = jmax(close, 190) ma20 = jmax(close, 200) trend = 0 trend := ma01 > ma20 ? 1 : ma01 < ma20 ? -1 : trend[1] col = trend == 1 ? #00FF7F : #DC143C plot(ma01, transp = 0, color = col) plot(ma02, transp = 0, color = col) plot(ma03, transp = 0, color = col) plot(ma04, transp = 0, color = col) plot(ma05, transp = 0, color = col) plot(ma06, transp = 0, color = col) plot(ma07, transp = 0, color = col) plot(ma08, transp = 0, color = col) plot(ma09, transp = 0, color = col) plot(ma10, transp = 0, color = col) plot(ma11, transp = 0, color = col) plot(ma12, transp = 0, color = col) plot(ma13, transp = 0, color = col) plot(ma14, transp = 0, color = col) plot(ma15, transp = 0, color = col) plot(ma16, transp = 0, color = col) plot(ma17, transp = 0, color = col) plot(ma18, transp = 0, color = col) plot(ma19, transp = 0, color = col) plot(ma20, transp = 0, color = col) //Trading lot = 0.0 lot := strategy.equity / close * capital / 100 if trend == 1 and (close < open or usecf == false) strategy.entry("Long", strategy.long, needlong ? lot : na) if trend == -1 and (close > open or usecf == false) strategy.entry("Short", strategy.short, needshort ? lot : na)