Menerobos strategi pindah silang purata bergerak


Tarikh penciptaan: 2023-12-12 17:43:19 Akhirnya diubah suai: 2023-12-12 17:43:19
Salin: 1 Bilangan klik: 929
1
fokus pada
1621
Pengikut

Menerobos strategi pindah silang purata bergerak

Gambaran keseluruhan

Strategi ini dinamakan strategi persimpangan rata-rata yang melintasi garis rata-rata yang melintasi garis rata-rata, dan idea utamanya adalah untuk menilai lebih banyak shorting. Secara khusus, strategi ini menggunakan kitaran trend Schaff (Schaff Trend Cycle, STC) dan persimpangan dua rata-rata. Apabila arah STC melintasi kawasan overbought oversold, harga lebih tinggi daripada purata bergerak indeks jangka pendek, dan purata bergerak indeks jangka pendek lebih tinggi daripada purata bergerak indeks jangka panjang, buat lebih banyak; sebaliknya, buat kosong.

Prinsip Strategi

Strategi ini berdasarkan kepada dua petunjuk teknikal:

  1. Indikator STC: Indikator STC, menentukan arah trend. Indikator STS terdiri daripada penunjuk MACD, penunjuk Stoch, dan garis penunjuk STC. Apabila garis STC menembusi ke atas dari 0-25, ia adalah isyarat multihead; apabila ia menembusi ke bawah dari 75-100, ia adalah isyarat kosong.

  2. Persilangan rata-rata: persilangan antara purata bergerak ringkas cepat (dalam kitaran lalai 35) dan purata bergerak ringkas perlahan (dalam kitaran lalai 200). Melalui garis perlahan di atas garis pantas sebagai isyarat multi-head, di bawah garis pantas melalui garis perlahan sebagai isyarat kosong.

Logik penilaian isyarat perdagangan untuk strategi ini adalah seperti berikut:

  1. Buat lebih banyak isyarat: Apabila penunjuk STC melangkaui garis 25 ke atas, dan purata bergerak mudah cepat lebih tinggi daripada purata bergerak mudah perlahan, dan harga lebih tinggi daripada purata bergerak mudah cepat, buat lebih banyak.

  2. Sinyal kosong: Indeks STC melangkaui 75 garis ke bawah, dan purata bergerak mudah cepat lebih rendah daripada purata bergerak mudah perlahan, dan harga lebih rendah daripada purata bergerak mudah cepat, kosong.

Analisis kelebihan

Strategi ini mempunyai kelebihan berikut:

  1. Gabungan penunjuk trend dan penunjuk rata-rata, isyarat perdagangan lebih dipercayai. Penunjuk STC menentukan arah trend besar, penunjuk dua rata-rata menentukan kemasukan tertentu.

  2. Parameter garis purata boleh disesuaikan. Parameter garis purata boleh disesuaikan mengikut pasaran, strategi pengoptimuman.

  3. Risiko boleh dikawal. Indeks STC menilai kawasan overbought dan oversold, mengelakkan penarikan terhad di kawasan yang melampau.

Analisis risiko

Strategi ini juga mempunyai risiko:

  1. Indikator STC mungkin mempunyai penembusan palsu. Ia perlu digabungkan dengan entiti harga.

  2. Persilangan garis rata-rata mungkin menghasilkan lebih banyak isyarat palsu. Parameter kitaran garis rata-rata perlu disesuaikan.

  3. Hanya berdagang satu arah. Ruang terbatas. Anda boleh mempertimbangkan berdagang dua arah.

  4. Risiko slippage yang tidak diuruskan dalam perdagangan sekuriti forex. Slippage dalam pelaburan sebenar mungkin lebih besar.

Arah pengoptimuman

Strategi ini boleh dioptimumkan dalam beberapa aspek:

  1. Menyesuaikan parameter STC, mengoptimumkan penilaian overbought dan oversold.

  2. Mengoptimumkan kitaran garis rata dan meningkatkan kebolehpercayaan isyarat silang.

  3. Menambah penanda penapis lain, penapis penembusan palsu.

  4. Menambah logik transaksi dua hala. Menurunkan risiko ruang.

  5. Tambah logik stop loss. Kawalan kerugian tunggal.

ringkaskan

Strategi ini menggunakan indikator trend dan indikator silang garis rata untuk menentukan arah trend dan titik masuk tertentu. Dengan memastikan keadaan kawalan risiko tertentu, keuntungan yang lebih baik dapat diperoleh. Model strategi ini sederhana dan jelas, mudah difahami, juga mudah untuk menyesuaikan parameter dan mengoptimumkan fungsi mengikut pasaran yang berbeza, sesuai untuk pembelajaran dan aplikasi pemula.

Kod sumber strategi
/*backtest
start: 2023-11-11 00:00:00
end: 2023-12-11 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// Shaff Trend Cycle coded by Alex Orekhov (everget)
// Strategy and its additional conditions provided by greenmask
// Schaff Trend Cycle script may be freely distributed under the MIT license.
strategy("STC", shorttitle="STC")

fastLength = input(title="MACD Fast Length", type=input.integer, defval=23)
slowLength = input(title="MACD Slow Length", type=input.integer, defval=50)
cycleLength = input(title="Cycle Length", type=input.integer, defval=10)
d1Length = input(title="1st %D Length", type=input.integer, defval=3)
d2Length = input(title="2nd %D Length", type=input.integer, defval=3)
src = close
highlightBreakouts = input(title="Highlight Breakouts ?", type=input.bool, defval=true)

macd = ema(src, fastLength) - ema(src, slowLength)
k = nz(fixnan(stoch(macd, macd, macd, cycleLength)))
d = ema(k, d1Length)
kd = nz(fixnan(stoch(d, d, d, cycleLength)))
stc = ema(kd, d2Length)
stc := 	stc > 100 ? 100 : stc < 0 ? 0 : stc
stcColor = not highlightBreakouts ? (stc > stc[1] ? color.green : color.red) : #ff3013
stcPlot = plot(stc, title="STC", color=stcColor, transp=0)
upper = 75
lower = 25
transparent = color.new(color.white, 100)
upperLevel = plot(upper, title="Upper", color=color.gray)
hline(50, title="Middle", linestyle=hline.style_dotted)
lowerLevel = plot(lower, title="Lower", color=color.gray)

fill(upperLevel, lowerLevel, color=#f9cb9c, transp=90)

upperFillColor = stc > upper and highlightBreakouts ? color.green : transparent
lowerFillColor = stc < lower and highlightBreakouts ? color.red : transparent

fill(upperLevel, stcPlot, color=upperFillColor, transp=80)
fill(lowerLevel, stcPlot, color=lowerFillColor, transp=80)
strategy.initial_capital = 50000
ordersize=floor(strategy.initial_capital/close)
targetvalue = input(title="Target/stop", type=input.integer, defval=400)

ma1length = input(title="SMA1", type=input.integer, defval=35)
ma2length = input(title="SMA2", type=input.integer, defval=200)
ma1 = ema(close,ma1length)
ma2 = ema(close,ma2length)

bullbuy = crossover(stc, lower) and ma1>ma2 and close>ma1
bearsell = crossunder(stc, upper) and ma1<ma2 and close<ma1

if (bullbuy)
    strategy.entry("Riposte", strategy.long, ordersize)
    strategy.exit( "Riposte close", from_entry="Riposte", qty_percent=100, profit=targetvalue,loss=targetvalue)

if (bearsell)
    strategy.entry("Riposte", strategy.short, ordersize)
    strategy.exit( "Riposte close", from_entry="Riposte", qty_percent=100, profit=targetvalue,loss=targetvalue)

//plotshape(bullbuy,  title= "Purple", location=location.belowbar, color=#006600, transp=0, style=shape.circle, size=size.tiny, text="Riposte")
//plotshape(bearsell,  title= "Purple", location=location.abovebar, color=#006600, transp=0, style=shape.circle, size=size.tiny, text="Riposte")