Strategi Rata-rata Pergerakan Lambat


Tanggal Pembuatan: 2023-12-07 15:21:45 Akhirnya memodifikasi: 2023-12-07 15:21:45
menyalin: 0 Jumlah klik: 636
1
fokus pada
1619
Pengikut

Strategi Rata-rata Pergerakan Lambat

Ringkasan

Strategi ini menggunakan 24 periode saluran Dongguan digabungkan dengan 200 periode garis rata-rata sebagai sinyal perdagangan utama. Masuk titik titik di bawah gelombang merah hijau memilih untuk melakukan shorting, gelombang ke atas memilih untuk melakukan lebih banyak.

Prinsip Strategi

Kebijakan ini didasarkan pada beberapa hal:

  1. Menggunakan nilai tertinggi dan terendah dari 24 siklus untuk membangun saluran Dongguan, ketika harga menembus saluran ini, menunjukkan kemungkinan penurunan besar.

  2. 200 Periode rata-rata garis sebagai kondisi penyaringan polygon, jika pecah saluran Dongguan dan harga di sisi lain dari rata-rata garis, dianggap bahwa perdagangan mungkin terjadi pembalikan.

  3. Sinyal masuk adalah:

  • Keringan: Jika harga penutupan K Line sebelumnya lebih besar dari Tangki An dan lebih rendah dari 200 siklus rata-rata, dan harga pembukaan pada hari itu lebih rendah dari harga penutupan dan harga terendah lebih rendah dari 200 rata-rata, maka akan ada sinyal penutupan
  • Buat lebih: Sebuah K Line sebelumnya ditutup dengan harga lebih rendah dari Dongguan Channel dan lebih tinggi dari 200 siklus rata-rata, pada hari itu harga buka lebih tinggi dari harga tutup dan harga tertinggi juga lebih tinggi dari 200 rata-rata, menghasilkan sinyal buat lebih
  1. Stop loss adalah harga tertinggi dari 3 garis K terbaru, dan stop loss adalah harga open minus tiga kali lipat dari stop loss dan open. Stop loss dan stop loss dihitung dengan cara yang berbeda dari shorting.

  2. Keuntungan dari strategi ini adalah bahwa dengan menggunakan campuran penyaringan seragam melalui saluran Dongxian +, menghindari kesalahan dalam satu indikator teknis, dan secara signifikan meningkatkan tingkat keberhasilan strategi.

Analisis Keunggulan

Strategi ini memiliki keuntungan sebagai berikut:

  1. Tingkat kemenangan yang tinggi: Menggunakan kombinasi antara saluran dan indikator garis rata, dapat secara efektif menghindari kerugian yang tidak perlu yang disebabkan oleh kesalahan indikator teknis tunggal.

  2. Pengendalian risiko: Menggunakan harga tertinggi/terendah terbaru sebagai titik stop loss, secara efektif mengendalikan kerugian tunggal. Stop loss adalah 3 kali lipat dari stop loss, risiko keuntungan lebih tinggi.

  3. Sederhana dan mudah dioperasikan: indikator dan logika sangat sederhana dan jelas, mudah dipahami dan diterapkan.

  4. Adaptasi yang kuat: lebih sedikit parameter strategi, stabilitas yang baik dalam berbagai varietas dan siklus.

Analisis risiko

Strategi ini menghadapi risiko utama sebagai berikut:

  1. Risiko situasi ekstrim: Jika terjadi situasi unilateral yang sangat besar, mudah untuk memicu stop loss atau menyebabkan peningkatan kerugian. Hal ini dapat ditanggapi dengan cara yang sesuai dengan pelepasan stop loss, pengurangan posisi, dll.

  2. Risiko kesalahan penghitungan sinyal tandang: Mengadopsi sinyal baru dari lawan sebagai sinyal tandang, mungkin sering masuk dan keluar dalam situasi yang bergoyang, dan kehilangan slip point yang tidak perlu. Dapat diselesaikan dengan mengoptimalkan logika tandang.

  3. Risiko optimasi parameter: Periode saluran Dongguan dan pengaturan parameter garis rata yang tidak tepat dapat menyebabkan frekuensi atau keterlambatan sinyal, yang dapat dikurangi dengan optimasi parameter dan tes kombinasi.

Arah optimasi

Strategi ini dapat dioptimalkan dari beberapa arah:

  1. Periode saluran dan rata-rata siklus dapat dioptimalkan untuk mencari kombinasi parameter yang optimal.

  2. Dapat menguji berbagai stop loss stop loss rasio, keseimbangan kemenangan dan rasio untung-rugi.

  3. Anda dapat mencoba menggabungkan sinyal masuk koreksi indikator lainnya, seperti MACD, KD, dan lain-lain, untuk meningkatkan stabilitas strategi.

  4. Anda dapat mengoptimalkan sinyal keluar, menghindari keluar yang tidak perlu dalam situasi yang bergejolak. Anda juga dapat mempertimbangkan indikator tren.

  5. Strategi baru dapat dikembangkan berdasarkan kerangka kebijakan ini, seperti yang digunakan dalam kombinasi dengan indikator saluran lainnya, indikator jenis daftar, dan sebagainya.

Meringkaskan

Strategi lambat dan rata-rata strategi keseluruhan ide yang jelas dan mudah dipahami, dengan campuran menggunakan saluran dan garis rata-rata sebagai sinyal strategi, dapat secara efektif meningkatkan stabilitas strategi dan kemenangan. Stop loss lebih besar dari pengaturan berhenti membuat keuntungan yang baik, parameter pengaturan sederhana mudah untuk menerapkan. Ada beberapa situasi ekstrem dan risiko kesalahan penilaian, tetapi dapat dioptimalkan dan diperbaiki dengan berbagai cara untuk strategi, memiliki potensi yang sangat kuat ekspansi dan pengembangan.

Kode Sumber Strategi
/*backtest
start: 2023-11-06 00:00:00
end: 2023-12-06 00:00:00
period: 1h
basePeriod: 15m
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/
// © Mysteriown

//@version=4

strategy("Lagged Donchian Channel + EMA", overlay = true)

//tradePeriod = time(timeframe.period,"0000-0000:1234567")?true:false


// ------------------------------------------ //
// ----------------- Inputs ----------------- //
// ------------------------------------------ //

period = input(24, title="Channel's periods")
Pema = input(200, title="EMA's periods ?")
ratio = input(3, title="Ratio TP", type=input.float)
loss = input(20, title="Risk Loss ($)")
lev = input(5, title="Leverage *...")
chan = input(title="Plot channel ?", type=input.bool, defval=false)
Bpos = input(title="Plot Bull positions ?", type=input.bool, defval=false)
bpos = input(title="Plot Bear positions ?", type=input.bool, defval=false)
labels = input(title="Plot labels of bets ?", type=input.bool, defval=true)
supp = input(title="Delete last labels ?", type=input.bool, defval=true)


// ------------------------------------------ //
// ---------- Canal, EMA and arrow ---------- //
// ------------------------------------------ //

pema = ema(close,Pema)
plot(pema, title="EMA", color=color.blue)

canalhaut = highest(period)[1]
canalbas = lowest(period)[1]

bear = close[1] > canalhaut[1] and close < open and high > pema
bull = close[1] < canalbas[1] and open < close and low < pema

canalhautplot = plot(chan? canalhaut:na, color=color.yellow)
canalbasplot = plot(chan? canalbas:na, color=color.yellow)

plotshape(bear, title='Bear', style=shape.triangledown, location=location.abovebar, color=color.red, offset=0)
plotshape(bull, title='Bull', style=shape.triangleup, location=location.belowbar, color=color.green, offset=0)


// ------------------------------------------ //
// ------------- Position Short ------------- //
// ------------------------------------------ //

SlShort = highest(3)
BidShort = close[1]

TpShort = BidShort-((SlShort-BidShort)*ratio)
deltaShort = (SlShort-BidShort)/BidShort
betShort = round(loss/(lev*deltaShort)*100)/100
cryptShort = round(betShort*lev/BidShort*1000)/1000

// if bear[1] and labels //and low < low[1]
//     Lbear = label.new(bar_index, na, text="SHORT\n\nSL: " + tostring(SlShort) + "\n\nBid: " + tostring(BidShort) + "\n\nTP: " + tostring(TpShort) + "\n\nMise: " + tostring(betShort) + "\n\nCryptos: " + tostring(cryptShort), color=color.red, textcolor=color.white, style=label.style_labeldown, yloc=yloc.abovebar)
//     label.delete(supp ? Lbear[1] : na)

var bentry=0.0
var bsl=0.0
var btp=0.0

if bear[1] and low < low[1]
    bentry:=BidShort
    bsl:=SlShort
    btp:=TpShort
    
pbentry = plot(bpos? bentry:na, color=color.orange)
plot(bpos? (bentry+btp)/2:na, color=color.gray)
pbsl = plot(bpos? bsl:na, color=color.red)
pbtp = plot(bpos? btp:na, color=color.green)

fill(pbentry,pbsl, color.red, transp=70)
fill(pbentry,pbtp, color.green, transp=70)


// ------------------------------------------ //
// ------------- Position Long -------------- //
// ------------------------------------------ //

SlLong = lowest(3)
BidLong = close[1]

TpLong = BidLong + ((BidLong - SlLong) * ratio)
deltaBull = (BidLong - SlLong)/BidLong
betLong = round(loss/(lev*deltaBull)*100)/100
cryptLong = round(betLong*lev/BidLong*1000)/1000

// if bull[1] and labels //and high > high[1]
//     Lbull = label.new(bar_index, na, text="LONG\n\nSL: " + tostring(SlLong) + "\n\nBid: " + tostring(BidLong) + "\n\nTP: " + tostring(TpLong) + "\n\nMise: " + tostring(betLong) + "\n\nCryptos: " + tostring(cryptLong), color=color.green, textcolor=color.white, style=label.style_labelup, yloc=yloc.belowbar)
//     label.delete(supp ? Lbull[1] : na)

var Bentry=0.0
var Bsl=0.0
var Btp=0.0

if bull[1] and high > high[1]
    Bentry:=BidLong
    Bsl:=SlLong
    Btp:=TpLong
    
pBentry = plot(Bpos?Bentry:na, color=color.orange)
plot(Bpos?(Bentry+Btp)/2:na, color=color.gray)
pBsl = plot(Bpos?Bsl:na, color=color.red)
pBtp = plot(Bpos?Btp:na, color=color.green)

fill(pBentry,pBsl, color.red, transp=70)
fill(pBentry,pBtp, color.green, transp=70)


// ------------------------------------------ //
// --------------- Strategie ---------------- //
// ------------------------------------------ //

Bear = bear[1] and low < low[1]
Bull = bull[1] and high > high[1]

if (Bear and strategy.opentrades==0)
    strategy.order("short", false, 1, limit=BidShort)
    strategy.exit("exit", "short", limit = TpShort, stop = SlShort)

strategy.cancel("short", when = high > SlShort or low < (BidShort+TpShort)/2)
strategy.close("short", when=bull)

if (Bull and strategy.opentrades==0)
    strategy.order("long", true, 1, limit=BidLong)
    strategy.exit("exit", "long", limit = TpLong, stop = SlLong)
    
strategy.cancel("long", when = low < SlLong or high > (BidLong+TpLong)/2)
strategy.close("long", when=bear)