Trend Mengikuti Strategi Grid


Tarikh penciptaan: 2023-12-08 12:05:17 Akhirnya diubah suai: 2023-12-08 12:05:17
Salin: 0 Bilangan klik: 1241
1
fokus pada
1621
Pengikut

Trend Mengikuti Strategi Grid

Gambaran keseluruhan

Strategi ini adalah strategi grid trend-tracking yang hanya melakukan lebih banyak dan tidak kosong, memilih masa trend besar ke atas. Saiz grid lalai adalah 1 kali ganda ATR, menjejaki ke bawah untuk membuat grid peringkat 1, 2, 3, dan 5 berhenti. Apabila harga menembusi satu grid ketika kosong, seluruh grid bergerak ke atas untuk menjejaki harga.

Prinsip Strategi

  1. Menggunakan garis purata EMA untuk menentukan arah trend besar, EMA12 lebih besar daripada EMA144 untuk menentukan trend besar ke atas
  2. Hanya ambil lebih banyak kedudukan apabila terdapat trend ke atas
  3. Saiz grid secara lalai 1 kali ganda ATR, boleh menyesuaikan kali ganda
  4. Menubuhkan grid 1, 2, dan 3 untuk menjejaki harga ke bawah, dan membuka lebih banyak kedai.
  5. Garis 5 Tetapkan titik henti
  6. Tetapkan titik hentian dan penangguhan selepas membuka kedudukan
  7. Apabila harga naik, ia akan melepasi paras paras penamat.
  8. Apabila harga turun, ia mencetuskan titik pelonggaran.
  9. Apabila semua kedudukan telah dipadamkan, jika harga menembusi grid terakhir sekali lagi, kedudukan dan jumlah grid dikira semula, dan dilacak ke atas

Strategi ini menggunakan EMA untuk menentukan arah trend besar, kemudian digabungkan dengan strategi grid untuk dijejaki, dapat memperoleh keuntungan yang lebih besar dalam trend trend besar ke atas. Grid menetapkan beberapa titik harga, membina gudang secara berturut-turut, dapat mengurangkan risiko satu kedudukan. Tetapan stop loss membolehkan keuntungan dapat dikunci, dan juga mengawal kerugian maksimum. Apabila semua kedudukan kosong, dapat menghitung semula titik tinggi grid, untuk membuka kedudukan lagi, sehingga memaksimumkan keuntungan.

Analisis kelebihan

  1. Menggunakan EMA untuk menentukan arah trend utama dan mengelakkan kedudukan terbalik
  2. Strategi grid dapat membina gudang secara berturut-turut dan mengurangkan risiko satu gudang.
  3. Tetapan Stop Loss untuk mengunci keuntungan dan mengawal kerugian maksimum
  4. Garis grid boleh dikira semula selepas kedudukan dipadamkan untuk terus mengejar, memperluaskan ruang keuntungan

Kelebihan utama strategi ini adalah menggabungkan perdagangan trend dan perdagangan grid, yang memastikan kebenaran arah trend, tetapi juga membahagikan risiko strategi grid. Selain itu, grid dapat dikira semula tanpa had setelah kedudukan kosong, sehingga mendapat keuntungan besar jika berlaku gelombang besar.

Analisis risiko

  1. Mungkin salah menilai trend, ke arah yang salah
  2. Terjadi pergolakan besar, grid mengalami kerugian besar
  3. Kegagalan mencapai titik henti terlalu cepat, semua kedudukan kosong
  4. Tidak dapat kembali ke titik masuk terbaik selepas tumbukan

Risiko utama adalah kesalahan dalam menilai trend besar, yang boleh menyebabkan kerugian besar dalam membina kedudukan yang berlawanan. Selain itu, jika berlaku gegaran yang teruk, kerugian akan bertambah jika beberapa grid terkurung pada masa yang sama. Selain itu, penurunan harga yang cepat yang mencetuskan stop loss juga boleh menyebabkan posisi kosong sepenuhnya, kehilangan peluang untuk memperoleh keuntungan berikutnya.

Anda boleh meningkatkan ketepatan penilaian trend besar dengan mengoptimumkan parameter EMA. Anda juga boleh mengawal kerugian keseluruhan dengan menyesuaikan jarak grid dan jumlah pesanan pertama.

Arah pengoptimuman

Strategi ini juga boleh dioptimumkan dalam beberapa arah:

  1. Mengoptimumkan parameter EMA untuk meningkatkan ketepatan penghakiman trend besar
  2. Menyesuaikan jarak dan bilangan grid untuk mengoptimumkan nisbah risiko dan keuntungan
  3. Peningkatan logik stop loss, seperti partial position stop, move stop loss dan sebagainya
  4. Meningkatkan syarat kemasukan semula untuk mengelakkan kemasukan semula awal dalam proses rebound
  5. Gabungan dengan lebih banyak petunjuk untuk menentukan masa masuk, seperti bentuk K-line, kepekaan petunjuk dan sebagainya
  6. Meningkatkan penilaian kecacatan dan mengelakkan kerugian besar dalam kecacatan

Melalui langkah-langkah pengoptimuman ini, strategi dapat memperoleh keuntungan yang lebih besar dalam keadaan yang lebih besar, sambil mengawal risiko dan mengurangkan kerugian dalam pergerakan goyah biasa.

ringkaskan

Strategi ini adalah gabungan organik perdagangan trend dan perdagangan grid. Ia menggunakan EMA untuk menentukan arah besar, dan kemudian menggunakan strategi grid untuk membangunkan kedudukan berturut-turut. Risiko terkawal, ada mekanisme pengesanan untuk menghentikan kerugian dan menghitung semula grid. Secara keseluruhan, strategi ini dapat memperoleh keuntungan yang baik dalam trend besar, dan juga mengawal risiko.

Kod sumber strategi
/*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