Strategi Purata Pergerakan Perlahan


Tarikh penciptaan: 2023-12-07 15:21:45 Akhirnya diubah suai: 2023-12-07 15:21:45
Salin: 0 Bilangan klik: 636
1
fokus pada
1619
Pengikut

Strategi Purata Pergerakan Perlahan

Gambaran keseluruhan

Strategi ini menggunakan 24 kitaran saluran Dongguan digabungkan dengan garis rata-rata 200 kitaran sebagai isyarat perdagangan utama. Titik masuk memilih untuk melakukan shorting di bawah gelombang merah hijau, dan lebih banyak pilihan untuk bergerak ke atas.

Prinsip Strategi

Strategi ini adalah berdasarkan kepada beberapa perkara:

  1. Menggunakan nilai tertinggi dan terendah dalam 24 kitaran untuk membina saluran Dongguan, menunjukkan kemungkinan penurunan yang lebih besar apabila harga menembusi saluran tersebut.

  2. 200 garis purata kitaran sebagai syarat penapisan kosong, jika pecah saluran Dongxian dan harga di sisi lain garis purata, dianggap bahawa keadaan mungkin berbalik.

  3. Isyarat masuk ialah:

  • Keringkan: harga penutupan K sebelum ini lebih besar daripada laluan Dongguan dan di bawah garis purata kitaran 200, harga bukaan hari lebih rendah daripada harga penutupan dan harga terendah juga di bawah garis purata 200, menghasilkan isyarat penutupan
  • Buat lebih banyak: harga penutupan K sebelumnya lebih rendah daripada laluan bawah Dongguan dan lebih tinggi daripada 200 garis purata kitaran, harga bukaan hari lebih tinggi daripada harga penutupan dan harga tertinggi lebih tinggi daripada 200 garis purata, menghasilkan isyarat buat lebih banyak
  1. Hentikan kerugian adalah harga tertinggi dalam 3 garis K terkini, dan hentikan kerugian adalah 3 kali ganda daripada perbezaan antara hentikan dan harga terbuka. Hentikan kerugian dan hentikan kerugian adalah sebaliknya daripada melakukan kerugian.

  2. Kelebihan strategi ini ialah penggunaan campuran penapisan sejajar dengan saluran Dongxian + mengelakkan salah kaprah satu petunjuk teknikal, dan meningkatkan peluang kemenangan strategi secara ketara.

Analisis kelebihan

Strategi ini mempunyai kelebihan berikut:

  1. Kadar kemenangan yang tinggi: penggunaan gabungan saluran Dongxian dan penunjuk garis rata, dapat menghalang kerugian yang tidak perlu yang disebabkan oleh kesalahan satu petunjuk teknikal.

  2. Risiko terkawal: Menggunakan harga tertinggi / terendah terkini sebagai titik hentian, mengawal kerugian tunggal dengan berkesan. Stop adalah 3 kali ganda daripada stop, risiko keuntungan lebih tinggi.

  3. Operasi mudah: Indikator dan logik sangat mudah dan jelas, mudah difahami dan dilaksanakan

  4. Kebolehgunaan yang kuat: kurang parameter strategi dan kestabilan yang baik dalam pelbagai jenis dan kitaran.

Analisis risiko

Strategi ini mempunyai risiko utama:

  1. Risiko keadaan yang melampau: Jika menghadapi keadaan unilateral yang sangat besar, ia mudah mencetuskan hentian atau menyebabkan peningkatan kerugian. Ia boleh ditangani dengan cara yang sesuai dengan melepaskan kedudukan hentian dan mengurangkan kedudukan.

  2. Risiko salah faham isyarat berlepas: Menggunakan isyarat baru yang bertentangan sebagai isyarat berlepas, mungkin sering masuk dan keluar dalam keadaan gegaran, kehilangan titik slip yang tidak perlu. Ia boleh diselesaikan dengan mengoptimumkan logik berlepas.

  3. Risiko pengoptimuman parameter: Siklus saluran Dongguan dan parameter garis rata yang tidak betul boleh menyebabkan isyarat sering atau lambat, risiko ini dapat dikurangkan dengan pengoptimuman parameter dan ujian gabungan.

Arah pengoptimuman

Strategi ini boleh dioptimumkan dengan cara berikut:

  1. Tempoh laluan Dongguan dan tempoh garis rata dapat dioptimumkan untuk mencari kombinasi parameter terbaik.

  2. Ia juga boleh menguji pelbagai peratusan stop loss, kemenangan seimbang, dan kadar keuntungan.

  3. Anda boleh cuba menggabungkan isyarat kemasukan penyesuaian penunjuk lain, seperti MACD, KD, dan lain-lain, untuk meningkatkan kestabilan strategi.

  4. Isyarat berlepas boleh dioptimumkan, mengelakkan keluar yang tidak perlu dalam keadaan gegaran. Isyarat berlepas juga boleh mempertimbangkan indikator trend dan sebagainya.

  5. Kerangka strategi ini boleh digunakan untuk membangunkan kombinasi strategi baru, seperti dengan penunjuk jenis saluran lain, penunjuk jenis senarai, dan sebagainya.

ringkaskan

Strategi perlahan-lahan dan rata-rata strategi keseluruhan jelas dan mudah difahami, dengan menggunakan gabungan saluran dan garis rata sebagai isyarat strategi, dapat meningkatkan kestabilan dan kemenangan strategi secara berkesan. Tetapan stop loss lebih besar daripada stop loss membuat keuntungan dan kerugian yang baik, dan tetapan parameter mudah dan mudah dilaksanakan. Terdapat beberapa keadaan yang melampau dan risiko kesalahan, tetapi strategi dapat dioptimumkan dan diperbaiki dengan pelbagai cara, dengan potensi pengembangan dan pengembangan yang kuat.

Kod 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)