Strategi Perdagangan Grid Tetap


Tarikh penciptaan: 2023-11-16 17:09:45 Akhirnya diubah suai: 2023-11-16 17:09:45
Salin: 0 Bilangan klik: 851
1
fokus pada
1617
Pengikut

Strategi Perdagangan Grid Tetap

Gambaran keseluruhan

Strategi ini menggunakan kaedah perdagangan grid tetap, menetapkan harga permulaan dan perkadaran jarak setiap grid, dan kemudian menetapkan 10 lapisan harga beli dan jual tetap berdasarkan perkadaran ini, untuk mencapai strategi perdagangan grid yang lebih rendah dan lebih tinggi.

Prinsip Strategi

Strategi ini mula dengan menetapkan harga permulaan sprice dan perkadaran gridpercent untuk setiap lapisan. Kemudian, berdasarkan harga permulaan dan perkadaran, harga beli dan jual 10 lapisan dikira.

Rumus harga beli:

b1=sprice-(sprice*p1)

b2=sprice-(sprice*p2)

b3=sprice-(sprice*p3)

Di mana p1 ~ p10 adalah perkadaran yang dikira berdasarkan gridpercent peringkat.

Formula harga jualan:

s1=b1+(sprice*p1)

s2=b2+(sprice*p1)

s3=b3+(sprice*p1)

Syarat pembelian adalah apabila harga penutupan adalah lebih rendah daripada harga pembelian:

if (close

strategy.entry(“b1”, strategy.long, when=(close

Begitu juga, apabila harga penutupan lebih tinggi daripada harga jual, ia akan mencetuskan penjualan:

if (close>s1)

strategy.exit(“b1”, when=(close>s1))

Oleh itu, strategi jual beli rendah dan tinggi pada grid tetap dapat dilaksanakan.

Kelebihan Strategik

Strategi grid tetap ini mempunyai beberapa kelebihan:

  1. Ia membolehkan pembelian rendah dan jualan tinggi secara automatik, tidak memerlukan pasaran masa, dan mengurangkan kesukaran transaksi.

  2. Menetapkan jarak grid yang munasabah dapat mengawal risiko dengan berkesan dan mengelakkan kejatuhan yang tidak dapat dielakkan.

  3. Tidak kira sama ada pasaran naik atau turun, ia boleh menghasilkan keuntungan.

  4. Anda boleh menyesuaikan parameter grid untuk menyesuaikan diri dengan keadaan pasaran yang berbeza.

  5. Anda boleh menambah saiz pegangan anda dengan menambah bilangan lapisan grid.

  6. Ia boleh digabungkan dengan halangan kerugian untuk mengelakkan kerugian besar dalam keadaan yang melampau.

Risiko Strategik

Strategi ini mempunyai beberapa risiko:

  1. Apabila anda berada di pasaran, kos dagangan akan merosakkan keuntungan anda.

  2. Harga permulaan dan grid tidak disiapkan pada masa yang tepat, mudah rugi.

  3. Ia boleh menyebabkan kerugian apabila berlaku peristiwa yang tidak dijangka yang menyebabkan harga turun secara mendadak.

  4. Sistem perdagangan automatik mempunyai risiko transaksi berturut-turut.

  5. Ia adalah satu kejadian yang menyebabkan kerugian meningkat.

Penyelesaian:

  1. Tetapkan parameter grid yang munasabah untuk memastikan keuntungan lebih besar daripada kos transaksi.

  2. Menetapkan harga permulaan dan jarak grid yang sesuai dengan parameter pengoptimuman melalui pengulangan.

  3. Tambah Stop Loss untuk mengawal risiko.

  4. Memperkecilkan harga dagangan dengan betul untuk mengelakkan beratur.

  5. Menetapkan kawalan risiko untuk mengehadkan kerugian maksimum

Pengoptimuman Strategi

Strategi ini boleh dioptimumkan dalam beberapa arah:

  1. Secara dinamik menyesuaikan jarak grid, melebarkan jarak dan mengurangkan jarak apabila gelombang meningkat.

  2. Harga permulaan disesuaikan secara dinamik berdasarkan data sejarah.

  3. Menambah model pembelajaran mesin untuk meramalkan pergerakan harga, grid penyesuaian dinamik.

  4. Menambah stop loss pada titik risiko tinggi, mengoptimumkan kedudukan stop loss dengan melihat titik stop loss sejarah.

  5. Menggabungkan strategi pengurusan wang, menyesuaikan kedudukan secara dinamik mengikut keadaan keuntungan.

  6. Mengoptimumkan pengurusan kedudukan dan memaksimumkan kecekapan penggunaan dana.

  7. Mengoptimumkan pelaksanaan transaksi, mengurangkan kos kejutan menggunakan algoritma seperti TWAP.

ringkaskan

Strategi ini menggunakan kaedah perdagangan grid tetap, menetapkan harga beli dan jual berdasarkan perkadaran harga permulaan dan jarak grid, mewujudkan perdagangan jual beli dan jual beli yang automatik, yang dapat memanfaatkan turun naik pasaran dengan berkesan. Anda juga harus memperhatikan kawalan risiko, mengunci keuntungan dan mengawal kerugian melalui pengoptimuman parameter, penyesuaian dinamik dan hentian.

Kod sumber strategi
/*backtest
start: 2022-11-09 00:00:00
end: 2023-11-15 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/
// © Lionkind

//@version=5
strategy("Grid HW", overlay = true, margin_long = 1, margin_short = 1)

// Fix 35k price as starting point and 1% as a distance

sprice=input(40500,"Starting price")
gridpercent=input(1,"Percent")

// calculate the % of the 10 layers 

p1=((gridpercent*1)/100)
p2=((gridpercent*2)/100)
p3=((gridpercent*3)/100)
p4=((gridpercent*4)/100)
p5=((gridpercent*5)/100)
p6=((gridpercent*6)/100)
p7=((gridpercent*7)/100)
p8=((gridpercent*8)/100)
p9=((gridpercent*9)/100)
p10=((gridpercent*10)/100)

//set buy prices 

b1=sprice-(sprice*p1)
b2=sprice-(sprice*p2)
b3=sprice-(sprice*p3)
b4=sprice-(sprice*p4)
b5=sprice-(sprice*p5)
b6=sprice-(sprice*p6)
b7=sprice-(sprice*p7)
b8=sprice-(sprice*p8)
b9=sprice-(sprice*p9)
b10=sprice-(sprice*p10)

//set sell prices

s1=b1+(sprice*p1)
s2=b2+(sprice*p1)
s3=b3+(sprice*p1)
s4=b4+(sprice*p1)
s5=b5+(sprice*p1)
s6=b6+(sprice*p1)
s7=b7+(sprice*p1)
s8=b8+(sprice*p1)
s9=b9+(sprice*p1)
s10=b10+(sprice*p1)

//Long conditions

lc1=close<b1
lc2=close<b2
lc3=close<b3
lc4=close<b4
lc5=close<b5
lc6=close<b6
lc7=close<b7
lc8=close<b8
lc9=close<b9
lc10=close<b10

//exit conditions
ec1=close>s1
ec2=close>s2
ec3=close>s3
ec4=close>s4
ec5=close>s5
ec6=close>s6
ec7=close>s7
ec8=close>s8
ec9=close>s9
ec10=close>s10

//long orders
if (lc1)
    strategy.entry("b1", strategy.long, when=(lc1))
    
if (lc2)
    strategy.entry("b2", strategy.long, when=(lc2))
    
if (lc3)
    strategy.entry("b3", strategy.long, when=(lc3))    
if (lc4)
    strategy.entry("b4", strategy.long, when=(lc4))    
if (lc5)
    strategy.entry("b5", strategy.long, when=(lc5))
if (lc6)
    strategy.entry("b6", strategy.long, when=(lc6))
if (lc7)
    strategy.entry("b7", strategy.long, when=(lc7))    
if (lc8)
    strategy.entry("b8", strategy.long, when=(lc8))    
if (lc9)
    strategy.entry("b9", strategy.long, when=(lc9))    
if (lc10)
    strategy.entry("b10", strategy.long, when=(lc10))
    
//exit orders   
if (ec1)
    strategy.exit("b1", when=(ec1), limit=1)
if (ec2)
    strategy.exit("b2", when=(ec2), limit=1)
if (ec3)
    strategy.exit("b3", when=(ec3), limit=1)
if (ec4)
    strategy.exit("b4", when=(ec4), limit=1)
if (ec5)
    strategy.exit("b5", when=(ec5), limit=1)
if (ec6)
    strategy.exit("b6", when=(ec6), limit=1)
if (ec7)
    strategy.exit("b7", when=(ec7), limit=1)
if (ec8)
    strategy.exit("b8", when=(ec8), limit=1)
if (ec9)
    strategy.exit("b9", when=(ec9), limit=1)
if (ec10)
    strategy.exit("b10", when=(ec10), limit=1)
    

plot(b1,color=color.green)
plot(s1, color=color.red)
plot(b2, color=color.purple)