Trend nach der Netzstrategie

Schriftsteller:ChaoZhang, Datum: 2023-12-08 12:05:17
Tags:

img

Übersicht

Diese Strategie ist ein Trend, der nur der langen und nicht der kurzen Gitterstrategie folgt und Zeitabschnitte wählt, in denen der Haupttrend steigt. Die Standardgröße des Gittergrids ist 1xATR, wobei 1, 2, 3 Gitterstufen nach unten für die Verfolgung von Aufträgen aufgebaut werden und das 5. Gitterverlust stoppt. Wenn die leere Position das vorherige Gitter erreicht, bewegt sich das gesamte Gitter nach oben, um den Preis zu verfolgen.

Strategie Logik

  1. Verwenden Sie EMA-Linien, um die Haupttrendrichtung zu beurteilen, EMA12 größer als EMA144 bedeutet, dass der Haupttrend steigt
  2. Eröffnen Sie nur lange Positionen, wenn der Haupttrend steigt
  3. Die Standardgröße ist 1xATR, der Multiplikator kann angepasst werden
  4. Erstellen Sie 1, 2, 3 Gitter Ebenen nach unten, um den Preis zu verfolgen und öffnen Sie lange Positionen separat
  5. Setzen Sie den Stop-Loss-Punkt am 5. Gitter.
  6. Nach Eröffnung der Positionen, setzen Sie Stop-Loss-Punkte und Gewinnpunkte
  7. Schließung von Positionen, wenn der Preis den Take-Profit-Punkt beim Anstieg durchbricht
  8. Schließen von Positionen, wenn der Preis im Herbst den Stop-Loss-Punkt erreicht
  9. Nach Abschluss aller Positionen, wenn der Preis durch das letzte Raster wieder bricht, berechnen Sie den Rasterort und die Menge neu, um nach oben zu verfolgen

Diese Strategie kombiniert EMA, um die Haupttrendrichtung zu bestimmen, und Gitterhandel, um den Preis zu verfolgen. Es kann in einem Aufwärtstrend höhere Renditen erzielen. Das Gitter setzt mehrere Preispunkte, um Positionen separat zu eröffnen, was das Risiko pro Position reduziert. Die Stop-Loss- und Take-Profit-Einstellungen sperren Gewinne ein und begrenzen auch maximale Verluste.

Analyse der Vorteile

  1. Verwenden Sie die EMA, um die Haupttrendrichtung zu bestimmen, vermeiden Sie die Eröffnung von Positionen gegen den Trend
  2. Der Netthandel kann Positionen getrennt eröffnen, um das Risiko einer einzigen Position zu reduzieren
  3. Stop-Loss und Take-Profit-Sperre in den Gewinnen, Kontrolle der maximalen Verluste
  4. Nach dem Schließen aller Positionen kann die Neuberechnung der Gitter, um weiter zu jagen, den Gewinnraum erweitern

Der Hauptvorteil ist die Kombination von Trendhandel und Gitterhandel, der die Korrektheit der Trendrichtung gewährleistet und auch die Risikodispersion des Gitterhandels erreicht.

Risikoanalyse

  1. Die wichtigsten Trends können falsch beurteilt und in die falsche Richtung geleitet werden
  2. Signifikante seitliche Volatilität, die zu starken Verlusten in den Netzen führt
  3. Stopp-Loss-Aktivität wurde zu schnell ausgelöst und alle Positionen wurden geschlossen.
  4. Nicht möglich, nach dem Rückzug den optimalen Einstiegspunkt wieder einzugeben

Das Hauptrisiko ist die falsche Beurteilung der Haupttrendrichtung, die zu einer Eröffnung von Positionen gegen den Trend und zu großen Verlusten führen wird. Auch wenn es eine hohe seitliche Volatilität mit mehreren Gittern gibt, die gefangen sind, würden die Verluste verschärft. Darüber hinaus können schnelle Preisrückgänge einen Stop-Loss auslösen und alle Positionen schließen, was die nachfolgenden Gewinnchancen verliert. Es wäre schwierig, nach Pullbacks wieder in die anfänglichen optimalen Gitterniveaus einzutreten.

Die Genauigkeit der großen Trendbeurteilung kann durch Optimierung der EMA-Parameter verbessert werden. Die Anpassung des Gitterintervalls und der Größe des ersten Eintrags kann auch die Gesamtverluste kontrollieren. Die Stop-Loss-Position muss die Häufigkeit der Marktvolatilität berücksichtigen. Auch kann die Gewinnnahme für teilweise Positionen in Betracht gezogen werden, anstatt alle Positionen zu schließen.

Optimierungsrichtlinien

Diese Strategie kann auch in folgenden Aspekten optimiert werden:

  1. Optimierung der EMA-Parameter zur Verbesserung der Genauigkeit der wichtigsten Trendbeurteilung
  2. Anpassung von Rasterintervallen und -mengen zur Optimierung des Risiko-Rendite-Verhältnisses
  3. Verbesserung der Stop-Loss- und Take-Profit-Logik, z. B. teilweise Take-Profit, Trailing Stop-Loss usw.
  4. Mehr Einschränkungen für die Wiedereintrittsbedingungen hinzufügen, um eine vorzeitige Wiedereinreise während der Rückzüge zu vermeiden
  5. Einbeziehung von mehr Indikatoren zur Bestimmung des optimalen Eintrittszeitraums, z. B. Kerzenmuster, Indikatorempfindlichkeit usw.
  6. Hinzufügen von Ausreißer-Erkennung, um große Verluste in anomale Marktbedingungen zu vermeiden

Mit diesen Optimierungsmaßnahmen kann die Strategie bei signifikanten Trends höhere Gewinne erzielen, gleichzeitig Risiken kontrollieren und Verluste bei normaler seitlicher Volatilität reduzieren.

Zusammenfassung

Diese Strategie kombiniert Trendhandel und Grid-Handel organisch. Sie verwendet EMA, um die Hauptrichtung zu bestimmen, und nutzt den Grid-Handel, um Positionen separat zu eröffnen, um Trends zu verfolgen. Mit einem ordnungsgemäßen Risikomanagement, einschließlich Stop-Loss, Take-Profit und Grid-Wiederberechnungsmechanismen, kann diese Strategie während der Haupttrends anständige Gewinne erzielen und gleichzeitig Risiken kontrollieren. Weitere Optimierungen der Parameter und der Urteilsgenauigkeit können zu höheren Gewinnen führen.


/*backtest
start: 2022-12-01 00:00:00
end: 2023-12-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © zxcvbnm3260

//@version=5
strategy("grid strategy long", overlay=true)


// 版本更新记录:
// v1.0 2021/11/09 只做多、不做空,选择大趋势向上的时间段。网格大小默认为1倍ATR,往下1、2、3个网格吃单,第5个网格止损。空仓时到达往上一个网格则网格整体抬升。(Only go long, not short, choose a time period when the general trend is up. The default grid size is 1x ATR, the next one, two, and three grids will take orders, and the fifth grid will stop loss. When the empty position reaches the upper grid, the grid as a whole rises.)


X_ATR = input.float(title='网格大小是多少倍ATR?', defval = 1)


// 1.基础变量
ema169 = ta.ema(close, 169)
ema144 = ta.ema(close, 144)
ema12 = ta.ema(close, 12)

ema576 = ta.ema(close, 576)
ema676 = ta.ema(close, 676)

plot(ema169, color=color.new(color.orange, 0), linewidth=2)
// plot(ema144, color=color.orange)
plot(ema12,  color=color.blue)
// plot(ema676, color=color.orange, linewidth=1)

mtr = math.max(high - low, math.abs(close[1] - high), math.abs(close[1] - low))
atr = ta.ema(mtr, 30)

is_0930 = hour(time, 'GMT-4') == 9  and minute(time, 'GMT-4') == 30
is_1500 = hour(time, 'GMT-4') == 15 and minute(time, 'GMT-4') == 00
is_1530 = hour(time, 'GMT-4') == 15 and minute(time, 'GMT-4') == 30

is_yangxian = close>open
is_yinxian = close<open

// 2.基本趋势标记

big_trend  = ema12 >= ema169 ? 1 : 0
big_trend2 = ema12 <= ema169 ? 1 : 0

// 背景的变色处理:
bgcolor(big_trend == 1 ? color.new(color.green, 90) : color.new(color.red, 90) )

// 3.网格点位初始化

grid_size = atr * X_ATR // 网格大小
        
price_entry1 = open - grid_size*1
price_entry2 = open - grid_size*2
price_entry3 = open - grid_size*3
price_stop_loss = open - grid_size*5

price_exit1 = price_entry1 + grid_size*1
price_exit2 = price_entry2 + grid_size*1
price_exit3 = price_entry3 + grid_size*1

qty1 = int(1000/price_entry1)
qty2 = int(1000/price_entry2)
qty3 = int(1000/price_entry3)


// 标出各种点位
slm_lines_time(time, price_entry1, price_entry2, price_entry3, price_stop_loss, price_exit1)=>
    time2 = time + 1000*3600*24*5
    line.new(time, price_stop_loss, time2, price_stop_loss, color=color.red, xloc = xloc.bar_time, width=2)  // 止损位
    line.new(time, price_entry1, time2, price_entry1, color=color.green, xloc = xloc.bar_time)  // 
    line.new(time, price_entry2, time2, price_entry2, color=color.green, xloc = xloc.bar_time)  // 
    line.new(time, price_entry3, time2, price_entry3, color=color.green, xloc = xloc.bar_time)  // 
    line.new(time, price_exit1,  time2, price_exit1,  color=color.green, xloc = xloc.bar_time, width=2)  // 

slm_lines(time, price_entry1, price_entry2, price_entry3, price_stop_loss, price_exit1)=>
    line.new(bar_index, price_stop_loss, bar_index[5], price_stop_loss, color=color.red, xloc = xloc.bar_index, width=2)  // 止损位
    line.new(bar_index, price_entry1, bar_index[5], price_entry1, color=color.green, xloc = xloc.bar_index)  // 
    line.new(bar_index, price_entry2, bar_index[5], price_entry2, color=color.green, xloc = xloc.bar_index)  // 
    line.new(bar_index, price_entry3, bar_index[5], price_entry3, color=color.green, xloc = xloc.bar_index)  // 
    line.new(bar_index, price_exit1,  bar_index[5], price_exit1,  color=color.green, xloc = xloc.bar_index, width=2)  // 


// 4.网格点位更新和下单

is_entry0 = big_trend==1 and year>=2020

var is_entry = false

// 未进场时:
if is_entry0 and not is_entry
    is_entry := true
    
    grid_size := atr * X_ATR // 网格大小
    
    price_entry1 := close - grid_size*1
    price_entry2 := close - grid_size*2
    price_entry3 := close - grid_size*3
    price_stop_loss := close - grid_size*5
    
    price_exit1 := price_entry1 + grid_size*1
    price_exit2 := price_entry2 + grid_size*1
    price_exit3 := price_entry3 + grid_size*1
    
    qty1 := int(1000/price_entry1)
    qty2 := int(1000/price_entry2)
    qty3 := int(1000/price_entry3)
    
    // slm_lines(time, price_entry1, price_entry2, price_entry3, price_stop_loss, price_exit1)
    
    strategy.entry("open1", strategy.long, qty1, limit = price_entry1)
    strategy.entry("open2", strategy.long, qty2, limit = price_entry2)
    strategy.entry("open3", strategy.long, qty3, limit = price_entry3)
    
    strategy.exit("close1", qty = qty1, limit = price_exit1, stop = price_stop_loss)
    strategy.exit("close2", qty = qty2, limit = price_exit2, stop = price_stop_loss)
    strategy.exit("close3", qty = qty3, limit = price_exit3, stop = price_stop_loss)

// 已进场的各类情况

// 1.止损
if is_entry and close <= price_stop_loss
    strategy.close_all()
    is_entry := false

// 2.网格抬升
if is_entry and close >= price_exit1
    is_entry := false
        




Mehr