Strategi dagangan purata bergerak pelbagai jenis


Tarikh penciptaan: 2023-09-19 21:27:31 Akhirnya diubah suai: 2023-09-19 21:27:31
Salin: 0 Bilangan klik: 713
1
fokus pada
1617
Pengikut

Gambaran keseluruhan

Strategi ini adalah strategi untuk mengikuti trend dengan mengira pelbagai jenis rata-rata bergerak, mewujudkan cross over dan cross over dua garis rata-rata. Strategi ini juga memperkenalkan moving average ketiga sebagai penilaian trend untuk mengawal risiko.

Prinsip Strategi

  1. Dua garis purata dikira: MA1 dan MA2, dan anda boleh memilih pelbagai jenis seperti SMA, EMA, VWMA, dan panjangnya boleh disesuaikan.

  2. Menghakimi persilangan antara MA1 dan MA2: apabila memakai MA2 di atas MA1, lakukan lebih banyak; apabila memakai MA2 di bawah MA1, berpatah kedudukan.

  3. (Pilihan) Mengira garis purata ketiga MA3, panjangnya biasanya mengambil kitaran yang lebih lama, seperti 50 Di atas MA3 adalah banyak kepala, di bawah adalah kepala kosong Hanya apabila harga menembusi MA3 untuk membuka kedudukan

  4. Peraturan di atas digabungkan dengan tempoh pengesanan semula untuk menghasilkan isyarat perdagangan strategi.

  5. Tambah warna pada kawasan kosong untuk membentuk bantuan visual.

Strategi ini menggabungkan pemikiran trend-tracking dan cross-pollination dalam rata-rata bergerak, sambil memperkenalkan garis rata ketiga untuk mengawal risiko, dengan menyesuaikan parameter yang dapat menyesuaikan diri secara fleksibel dengan kitaran pasaran yang berbeza.

Analisis kelebihan

  1. Menggunakan penyambungan dua garis sejajar untuk menentukan arah trend, anda boleh mengesan trend dengan berkesan.

  2. Ia menyokong kombinasi pelbagai jenis garis rata yang boleh dioptimumkan untuk pasaran yang berbeza dalam kitaran.

  3. Memperkenalkan garis ketiga untuk mengawal risiko, dapat mengurangkan kerugian yang tidak perlu.

  4. Tambahan pula, ia juga boleh digunakan untuk memaparkan gambar yang lebih jelas dan lebih jelas.

  5. Parameter boleh disesuaikan dan boleh dioptimumkan untuk kitaran yang berbeza.

  6. Peraturan-peraturan ini mudah difahami dan diamalkan.

Analisis risiko

  1. Strategi dua garis sejajar mudah menghasilkan kerugian terhadap keadaan goyah dan senario pembalikan trend. Risiko boleh dikurangkan dengan mengoptimumkan parameter.

  2. Garis rata ganda kadang-kadang menghasilkan isyarat yang salah atau tindak balas yang melampau. Anda boleh memanjangkan kitaran rata rata atau parameter pengoptimuman dengan sewajarnya.

  3. Garis rata ketiga mungkin terlepas peluang momentum yang lebih kuat. Garis rata ketiga boleh diuji dengan tepat untuk mengurangkan peluang keuntungan yang terlewat.

  4. Tidak ada jaminan bahawa setiap dagangan akan menguntungkan, jadi anda perlu menguruskan kerugian anda.

Arah pengoptimuman

  1. Uji kombinasi pelbagai jenis garis purata dan parameter berkala yang berbeza untuk mencari pasangan parameter yang optimum.

  2. Mengoptimumkan parameter kitaran garis rata ketiga, mengimbangi kawalan risiko dan tangkapan keuntungan.

  3. Menyertai strategi stop loss untuk mengawal kerugian tunggal.

  4. Anda boleh mempertimbangkan untuk menggunakan algoritma pembelajaran mesin untuk mencari parameter optimum dengan menggunakan latihan data besar.

  5. Menapis dan mengesahkan isyarat digabungkan dengan penunjuk lain seperti KD, MACD dan sebagainya.

ringkaskan

Strategi silang purata bergerak pelbagai jenis ini, yang mengintegrasikan pelbagai fungsi seperti pengesanan trend, kawalan risiko, pengoptimuman parameter, bantuan visual, adalah strategi trend yang sangat klasik dan praktikal. Dengan cara terus menguji dan mengoptimumkan parameter, dengan cara yang sesuai memperkenalkan indikator lain atau pembelajaran mesin, anda dapat menjadikan strategi ini lebih sesuai untuk pasaran, dengan nilai pertempuran yang kuat. Secara keseluruhan, strategi ini mudah, praktikal, mudah dioptimumkan, dan merupakan titik permulaan yang baik untuk perdagangan kuantitatif.

Kod sumber strategi
/*backtest
start: 2023-09-11 00:00:00
end: 2023-09-12 22:00:00
period: 1m
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/
// © HAMIDBOX

//@version=4
strategy("Multi-X by HAMID-BOX", overlay=true)

maType(source , length, type)   =>
    type    == "SMA"            ? sma(source , length)  :
     type   == "EMA"            ? ema(source , length)  :
     type   == "RMA"            ? rma(source, length)   : 
     type   == "WMA"            ? wma(source, length)   :
     type   == "VWMA"           ? vwma(source, length)  :
     na
     
////////////////////////////////////////////////////////////////////////////////
colorup             = #11ff00
colordn             = #e91e63

/////////////////////////// MOVING AVERAGE №1 INPUTS ///////////////////////////
ma1_show            = input(title="MA №1", defval=true, type=input.bool, inline="ma1")
ma1type             = input(title="", defval="EMA", options=["SMA","EMA","RMA","WMA","VWMA"], inline="ma1")
ma1src              = input(title="", defval=close, type=input.source, inline="ma1")
ma1Len              = input(title="", defval=9, type=input.integer, inline="ma1")
ma1col              = input(colorup, "", type=input.color, inline="ma1")

ma1                 = maType(ma1src, ma1Len, ma1type)

ma1p = plot(ma1_show ? ma1 : na, linewidth=1, color=color.new(ma1col , 50))

/////////////////////////// MOVING AVERAGE №2 INPUTS ///////////////////////////
ma2_show            = input(title="MA №2", defval=true, type=input.bool, inline="ma2")
ma2type             = input(title="", defval="SMA", options=["SMA","EMA","RMA","WMA","VWMA"], inline="ma2")
ma2src              = input(title="", defval=close, type=input.source, inline="ma2")
ma2Len              = input(title="", defval=21, type=input.integer, inline="ma2")
ma2col              = input(colordn, "", type=input.color, inline="ma2")

ma2                 = maType(ma2src, ma2Len, ma2type)

ma2p = plot(ma2_show ? ma2 : na, linewidth=1, color=color.new(ma2col , 50))

/////////////////////////// MOVING AVERAGE №3 INPUTS ///////////////////////////

read                = input(title="For Safe Side = Read This >>>", defval=true, tooltip="If you want to play on the safe side, Check ON Moving Average № 3, MA №3 shows the major trend, its work as a Trend-Zone,\nRule: Do not open trades if the market is below MA № 3, WHY? because Trend is Bearish and it will make more Down, NOTE:: It is possible after adding MA № 3, it will give you a small profit. But the great advantage of that, it will reduce your loss and it will also increase your Profit Factor.\nAnd if you not have any issue with Risk then you can Leave Moving Average No 3")
ma3_show            = input(title="MA №3", defval=false, type=input.bool, inline="ma3")
ma3type             = input(title="", defval="SMA", options=["SMA","EMA","RMA","WMA","VWMA"], inline="ma3")
// ma3srcH          = input(title="", defval=high, type=input.source, inline="ma3")
// ma3srcL          = input(title="", defval=low, type=input.source, inline="ma3")
ma3Len              = input(title="", defval=50, type=input.integer, inline="ma3")
ma3col              = input(colordn, "", type=input.color, inline="ma3")

ma3H                = maType(high, ma3Len, ma3type)
ma3L                = maType(low, ma3Len, ma3type)

ma3p                = plot(ma3_show ? ma3H : na, linewidth=1, color=color.new(ma3col , 50))
ma3p2               = plot(ma3_show ? ma3L : na, linewidth=1, color=color.new(ma3col , 50))

Bigcross_zone_color = if ma3_show and close > ma3H
    color.new(colorup , 90)
else
    if ma3_show and close < ma3L
        color.new(colordn , 90)
fill(ma3p , ma3p2, color=Bigcross_zone_color, title="Cross Background Color")

BigCrossSignal      = close > ma3H
ZoneCrossover       = crossover(close , ma3H)
///////////////////////////// BACK TESTING INPUTS //////////////////////////////
startTime           = input(title="Start Time", type=input.time, defval= timestamp("01 Jan 2021"))
endTime             = input(title="End Time", type=input.time, defval= timestamp("01 Jan 2100"))
inDateRange         = true

//////////////////////////// PLOTING AND COOLORING /////////////////////////////
Cross               = input(true, "Cross Sign ON/OFF") 
maCrossOver         = crossover(ma1 , ma2)
maCrossUnder        = crossunder(ma1 , ma2)
cross_zone_color    = ma1 > ma2 ? color.new(colorup , 85) : color.new(colordn , 85)

plotshape(Cross ? maCrossOver : na, title="CrossUP Sign", style=shape.triangleup, location=location.belowbar, color=color.white, size=size.tiny)
plotshape(Cross ? maCrossUnder : na, title="CrossDN Sign", style=shape.xcross, location=location.abovebar, color=#e91e63, size=size.tiny)

fill(ma1p , ma2p, color=cross_zone_color, title="Cross Background Color")

///////////////////////////////// (CONDITIONS) /////////////////////////////////

if maCrossOver and inDateRange
    if ma3_show
        strategy.entry("BUY", strategy.long, when=BigCrossSignal)
    else    
        strategy.entry("BUY", strategy.long)

if  ma3_show
    strategy.entry("BUY", strategy.long, when=ZoneCrossover)

if maCrossUnder and inDateRange
    strategy.close("BUY", comment="Exit")
if (not inDateRange)
    strategy.close_all()