Strategi Grid Mengikuti Tren


Tanggal Pembuatan: 2023-12-08 12:05:17 Akhirnya memodifikasi: 2023-12-08 12:05:17
menyalin: 0 Jumlah klik: 1241
1
fokus pada
1621
Pengikut

Strategi Grid Mengikuti Tren

Ringkasan

Strategi ini adalah strategi grid tracking trend yang hanya melakukan lebih banyak dan tidak kosong, memilih waktu tren besar ke atas. Grid default berukuran 1 kali ATR, tracking downward membangun grid level 1, 2, 3, untuk melakukan follow-up, 5th stop loss. Jika harga menembus satu grid saat kosong, seluruh grid bergerak ke atas untuk melacak harga.

Prinsip Strategi

  1. Menggunakan garis rata-rata EMA untuk menentukan arah tren besar, EMA12 lebih besar dari EMA144 untuk menentukan tren besar ke atas
  2. Hanya buka lebih banyak saat tren besar naik
  3. Ukuran grid default 1 kali lipat ATR, dapat disesuaikan dengan kelipatan
  4. Membangun grid tingkat 1, 2, dan 3 untuk melacak harga ke bawah, dan membuka lebih banyak posisi
  5. Garis 5 mengatur titik henti
  6. Set Stop Loss dan Stop Stop Setelah Buka Posisi
  7. Ketika harga naik melewati titik tolak
  8. Ketika penurunan harga memicu stop loss
  9. Setelah semua posisi dihapus, jika harga kembali menembus grid terakhir, perhitungkan kembali posisi dan jumlah grid, dan lacak ke atas

Strategi ini menggunakan EMA untuk menentukan arah tren besar, lalu digabungkan dengan strategi grid untuk melacak, sehingga dapat memperoleh keuntungan lebih besar dalam tren besar ke atas. Jaringan mengatur beberapa titik harga, membangun posisi secara beruntun, dapat mengurangi risiko satu posisi. Pengaturan stop loss memungkinkan keuntungan untuk dikunci, juga mengendalikan kerugian maksimum.

Analisis Keunggulan

  1. Menggunakan EMA untuk menentukan arah tren besar dan menghindari posisi berlawanan
  2. Strategi grid dapat mengurangi risiko untuk membangun gudang secara berkelompok.
  3. Stop loss pengaturan untuk mengunci keuntungan dan mengontrol kerugian maksimum
  4. Posisi yang dipadamkan dapat dihitung ulang agar bisa terus mengejar ketinggalan dan memperluas ruang untuk keuntungan.

Keuntungan utama dari strategi ini adalah menggabungkan perdagangan tren dan perdagangan grid, yang memastikan keakuratan arah tren, tetapi juga memungkinkan dispersi risiko strategi grid. Selain itu, setelah posisi terbenam, grid dapat dihitung kembali tanpa batas untuk mendapatkan keuntungan besar jika terjadi gelombang besar.

Analisis risiko

  1. Perhitungan tren besar mungkin salah, ke arah yang salah
  2. Terjadinya Guncangan Besar, Jaringan Terlalu Rugi
  3. Hilangnya harga saham terlalu cepat, posisi semua kosong.
  4. Rebound tidak dapat kembali ke titik masuk terbaik

Risiko utama terletak pada kesalahan dalam menilai tren besar, yang dapat menyebabkan kerugian besar karena posisi yang dibangun dengan berlawanan. Selain itu, jika terjadi gempa besar, kerugian akan meningkat jika beberapa grid terkurung secara bersamaan. Selain itu, penurunan harga yang cepat yang memicu stop loss juga dapat menyebabkan posisi terkuras sepenuhnya, kehilangan kesempatan untuk mendapatkan keuntungan selanjutnya.

Akurasi penilaian tren besar dapat ditingkatkan dengan mengoptimalkan parameter EMA. Penyesuaian jarak grid dan jumlah order pertama juga dapat mengontrol kerugian keseluruhan. Pengaturan lokasi titik stop loss perlu mempertimbangkan frekuensi fluktuasi pasar. Selain itu, dapat juga dipertimbangkan bahwa sebagian posisi terhenti setelah keuntungan, bukan seluruh posisi kosong.

Arah optimasi

Strategi ini juga dapat dioptimalkan dari beberapa arah:

  1. Optimalkan parameter EMA untuk meningkatkan akurasi penilaian tren besar
  2. Menyesuaikan jarak dan jumlah grid untuk mengoptimalkan rasio risiko-keuntungan
  3. Peningkatan logika stop loss, seperti stop loss pada sebagian posisi, move loss, dan lain-lain
  4. Peningkatan batasan persyaratan masuk kembali untuk menghindari masuk kembali dini dalam proses bouncing
  5. Dengan kombinasi lebih banyak indikator untuk menentukan waktu masuk, seperti bentuk K-line, sensitivitas indikator, dll.
  6. Meningkatkan penilaian terhadap situasi yang tidak normal, menghindari kerugian besar dalam situasi yang tidak normal

Dengan langkah-langkah optimasi ini, strategi dapat memperoleh keuntungan yang lebih besar dalam situasi besar, sementara risiko dapat dikendalikan dan mengurangi kerugian dalam tren getaran biasa.

Meringkaskan

Strategi ini adalah kombinasi organik dari perdagangan tren dan perdagangan grid. Ini menggunakan EMA untuk menentukan arah besar, kemudian menggunakan strategi grid untuk membangun posisi secara bertahap untuk mengejar. Risiko dikendalikan, ada mekanisme pelacakan untuk menghentikan kerugian dan menghitung kembali grid. Secara keseluruhan, strategi ini mampu mendapatkan keuntungan yang baik dalam tren besar, dan juga mengendalikan risiko.

Kode 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