Strategi Grid DCA Rata-rata Pergerakan Pembalikan Dasar Ganda


Tanggal Pembuatan: 2024-02-20 11:09:33 Akhirnya memodifikasi: 2024-02-20 11:09:33
menyalin: 3 Jumlah klik: 839
1
fokus pada
1617
Pengikut

Strategi Grid DCA Rata-rata Pergerakan Pembalikan Dasar Ganda

Ringkasan

Strategi grid DCA berlawanan arah dengan garis tengah ganda digunakan terutama untuk berlawanan arah dengan harga rata-rata dan strategi DCA untuk mewujudkan grid yang dibangun secara bertahap. Ini menilai peluang berbalik berdasarkan bentuk berbalik dari dasar ganda. Setelah memicu bentuk berbalik, gunakan beberapa surat perintah dengan harga yang berbeda untuk membangun posisi grid bertahap dengan DCA.

Prinsip Strategi

Strategi ini pertama-tama menilai apakah K-line muncul di bawah dua harga penutupan yang sama secara berturut-turut, yang dikenal sebagai double bottom. Jika terdeteksi double bottom, maka dianggap mungkin ada kesempatan untuk membalikkan harga. Pada saat ini, strategi ini akan menempatkan beberapa set order dengan harga yang terbatas di dekat dasar, dengan harga yang dihitung berdasarkan ATR dan volatilitas, membentuk area grid.

Secara khusus, pertama-tama menghitung indikator ATR dari 14 garis K terbaru melalui ta.atr, kemudian digabungkan dengan 5 garis K terbaru untuk menghitung tingkat fluktuasi harga, yang merupakan parameter utama yang digunakan untuk menentukan kisaran grid. Kisaran grid dibagi menjadi 4 titik harga, yaitu harga dasar + tingkat fluktuasi, harga dasar + 0,75 kali fluktuasi, dan seterusnya. Setelah memicu kondisi dasar ganda, dengan rumus yang dihitung ini, atur 4 pesanan harga terbatas dengan harga yang sesuai, dengan jumlah yang sama untuk setiap pesanan.

Selain itu, strategi juga menetapkan stop loss dan stop loss. Stop loss adalah harga minimum di bawah dua kali lipat - minimum bouncing, dan stop loss adalah harga masuk + ATR 5 kali lipat. Kedua harga ini akan diperbarui secara real-time ketika posisi tidak 0.

Analisis Keunggulan

Strategi ini memiliki keuntungan sebagai berikut:

  1. Dengan menggunakan dasar ganda untuk menentukan titik balik, dapat secara efektif menghindari terobosan palsu.
  2. Desain DCA Grid memungkinkan trader untuk membangun posisi secara bertahap dengan harga yang berbeda, mengurangi biaya posisi.
  3. ATR dan parameter volatilitas dapat secara dinamis menyesuaikan grid dan stop-loss space untuk menyesuaikan dengan perubahan pasar.
  4. Mekanisme penghentian kerugian otomatis dapat secara efektif mengendalikan kerugian tunggal.

Analisis risiko

Risiko utama adalah:

  1. Harga mungkin tidak akan berbalik dan langsung jatuh di bawah level dukungan double bottom. Pada saat ini, stop loss akan dipicu dan menyebabkan kerugian. Anda dapat meningkatkan jarak stop loss dengan tepat.
  2. DCA grid space setting tidak tepat, sebagian besar delegasi tidak dapat bertransaksi. Anda dapat menguji parameter yang berbeda untuk memastikan tingkat transaksi.
  3. Stop loss dapat sering terjadi pada saat pasar bergejolak. Perlu dipertimbangkan untuk memperluas stop loss multiplier.

Arah optimasi

Strategi ini juga dapat dioptimalkan dari beberapa arah:

  1. Meningkatkan penilaian tren, hanya dalam melihat lebih banyak tren untuk melakukan operasi pembalikan, menghindari kehilangan tren besar.
  2. Pertimbangkan untuk meningkatkan posisi awal, kemudian posisi grid berkurang secara bertahap, dan mengoptimalkan efisiensi penggunaan dana.
  3. Uji kombinasi parameter yang berbeda untuk menemukan parameter terbaik. Anda juga dapat merancang parameter dinamis yang disesuaikan dengan pasar secara real-time.
  4. Pembelajaran mesin dapat diintegrasikan ke dalam platform tingkat lanjut untuk mengoptimalkan parameter secara otomatis.

Meringkaskan

Strategi jaringan DCA reverse-average-line-double-bottom menggunakan berbagai teknik seperti bentuk harga, indikator average-line, dan perdagangan jaringan. Ini memiliki keunggulan seperti akurasi waktu penilaian, biaya yang dapat dikontrol, perlindungan penarikan. Ruang untuk mengoptimalkan strategi ini masih sangat besar dan layak untuk penelitian dan aplikasi yang mendalam. Jika parameter disesuaikan dengan benar, efek yang baik dapat diperoleh dalam situasi yang bergolak.

Kode Sumber Strategi
/*backtest
start: 2024-02-12 00:00:00
end: 2024-02-19 00:00:00
period: 3m
basePeriod: 1m
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/
// © cherepanovvsb

//@version=5
strategy("Reversal (only long)", overlay=true, margin_long=1, margin_short=1,initial_capital=1000,commission_type = strategy.commission.percent,commission_value =0.1,currency='USD', process_orders_on_close=true)
plotshape(low == low[1], style=shape.triangleup, location=location.belowbar, color=color.blue, title="1 Setup")
plotshape(low == low[1] and low[1]==low[2], style=shape.triangleup, location=location.belowbar, color=color.red, title="Triple Setup")

ATRlenght   = input.int(title="ATR length for taking profit", defval=14, group="Strategy Settings")
rewardMultiplier= input.int(title="ATR multiplier", defval=5, group="Strategy Settings")
Volatility_length=input.int(title='Volatility length',defval=5,group="Strategy Settings")
Volatility_multiplier=input.float(title='Volatility multiplier',defval=0.5,step=0.1, group="Strategy Settings")
Candles_to_wait=input.int(title='How many candles to wait after placing orders grid?',defval=4,group="Strategy Settings")

// Get ATR
atr1 = ta.atr(ATRlenght)

//Get volatility values (not ATR) 
float result = 0
for i = 0 to Volatility_length
	result+=high[i]-low[i]
volatility=result*Volatility_multiplier/Volatility_length

//Validate entrance points
validlow =  low [2]== low[1] and not na(atr1) 
validlong = validlow and strategy.position_size == 0  and low[1]<low


// Calculate SL/TP
longStopPrice = low[1]-syminfo.mintick
longStopDistance = close - longStopPrice
longTargetPrice = close + (longStopDistance * rewardMultiplier)
strategy.initial_capital = 50000
//Assign all variables
var tradeStopPrice = 0.0
var tradeTargetPrice = 0.0
var point1=0.0
var point2=0.0
var point3=0.0
var point4=0.0
var contracts = int(strategy.initial_capital/close)/4
if validlong 
    tradeStopPrice := longStopPrice
    tradeTargetPrice := longTargetPrice
    point1:=low[1]+volatility
    point2:=low[1]+volatility*0.75
    point3:=low[1]+volatility*0.5
    point4:=low[1]+volatility*0.25

strategy.entry ("Long1", strategy.long,limit=point1,qty=contracts, when=validlong)
strategy.entry ("Long2", strategy.long,limit=point2,qty=contracts, when=validlong)
strategy.entry ("Long3", strategy.long,limit=point3,qty=contracts, when=validlong)
strategy.entry ("Long4", strategy.long,limit=point4,qty=contracts, when=validlong)

stopcondition = ta.barssince(validlong) == Candles_to_wait

strategy.cancel("Long1",when=stopcondition)
strategy.cancel("Long2",when=stopcondition)
strategy.cancel("Long3",when=stopcondition)
strategy.cancel("Long4",when=stopcondition)
    
strategy.exit(id="Long Exit", limit=tradeTargetPrice, stop=tradeStopPrice, when=strategy.position_size > 0)

plot(strategy.position_size != 0 or validlong ? tradeStopPrice : na, title="Trade Stop Price", color=color.red, style=plot.style_linebr, linewidth=3)
plot(strategy.position_size != 0 or validlong ? tradeTargetPrice : na, title="Trade Target Price", color=color.green, style=plot.style_linebr, linewidth=3)

plot(strategy.position_size != 0? point1 : na, title="Long1", color=color.green, style=plot.style_linebr, transp=0)
plot(strategy.position_size != 0? point2 : na, title="Long2", color=color.green, style=plot.style_linebr, transp=0)
plot(strategy.position_size != 0? point3 : na, title="Long3", color=color.green, style=plot.style_linebr, transp=0)
plot(strategy.position_size != 0? point4 : na, title="Long4", color=color.green, style=plot.style_linebr, transp=0)