Strategi Dagangan Pasar Rintisan Rata-rata Bergerak Dua

Penulis:ChaoZhang, Tarikh: 2023-10-24 16:55:38
Tag:

img

Ringkasan

Strategi ini menggabungkan kelebihan purata bergerak Hull dan purata bergerak T3 untuk merancang strategi perdagangan rentas pasaran. Ia boleh digunakan untuk perdagangan jangka pendek dan penjejakan trend jangka panjang. Dengan mengira nilai purata purata bergerak Hull dan purata bergerak T3 sebagai garis isyarat perdagangan utama, ia menentukan titik masuk dan keluar berdasarkan perubahan arah.

Logika Strategi

Strategi ini terutamanya berdasarkan pengiraan purata bergerak Hull dan purata bergerak T3.

Purata Bergerak Hull (HMA) menggunakan kaedah pengiraan berulang purata bergerak bertimbang untuk menapis bunyi bising pasaran dengan berkesan dan memaparkan kurva trend harga yang lancar.

Purata bergerak T3 bertindak balas lebih cepat terhadap perubahan harga sambil mengurangkan kelewatan dengan menyesuaikan parameter. Melalui pelbagai penghapusan eksponen, ia dapat bertindak balas dengan cepat terhadap perubahan harga.

Strategi ini mengambil purata kedua-dua sebagai penunjuk perdagangan utama. Ia menilai masa kemasukan mengikut arah garis purata ini: jika purata tempoh semasa lebih tinggi daripada tempoh sebelumnya, ia adalah isyarat kemasukan panjang; jika lebih rendah, ia adalah isyarat kemasukan pendek.

Untuk peraturan keluar, jika harga memecahkan titik stop loss atau mengambil keuntungan, keluar; juga keluar apabila arah purata bergerak berubah.

Analisis Kelebihan

Strategi ini menggabungkan kelebihan purata bergerak Hull dan purata bergerak T3 untuk menghasilkan penunjuk yang komprehensif. Seterusnya, strategi ini sesuai untuk perdagangan jangka pendek dan jangka panjang dengan menyesuaikan parameter kitaran. Juga, ia mengamalkan stop loss dinamik dan mengambil keuntungan untuk mengunci keuntungan dan mengawal risiko.

Analisis Risiko

Strategi ini bergantung terutamanya pada penunjuk purata bergerak, yang boleh menghasilkan beberapa isyarat palsu dalam trend berkisar. Di samping itu, ketinggalan purata bergerak mungkin terlepas masa kemasukan yang terbaik. Titik stop loss dan mengambil keuntungan perlu ditetapkan dengan teliti untuk mengelakkan terlalu longgar atau terlalu ketat. Akhirnya, parameter perlu dioptimumkan untuk mata wang dan jangka masa yang berbeza.

Pengoptimuman

Pertimbangkan untuk menambah penunjuk lain untuk mengesahkan isyarat MA dan menapis isyarat palsu. Uji kombinasi MA yang berbeza dan algoritma berat untuk mengoptimumkan isyarat MA. Tambah stop loss adaptif dan mengambil keuntungan untuk menguruskan risiko secara dinamik. Lakukan pengoptimuman backtesting pada mata wang dan jangka masa yang berbeza untuk mencari set parameter optimum.

Ringkasan

Strategi ini mengintegrasikan kekuatan purata bergerak Hull dan purata bergerak T3 untuk membentuk penunjuk komprehensif untuk menilai arah trend. Melalui pengoptimuman parameter, strategi ini boleh digunakan dengan fleksibel untuk kitaran perdagangan yang berbeza. Strategi ini mempunyai kelebihan tertentu tetapi juga masalah seperti kelewatan dan isyarat palsu. Dengan menambahkan penunjuk lain, mengoptimumkan parameter dan berhenti dinamik, ia boleh terus diperbaiki untuk hasil yang lebih baik.


/*backtest
start: 2023-09-23 00:00:00
end: 2023-10-23 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/
// © exlux99

//@version=4


strategy(title="Swing HULL + T3 avg", shorttitle="Swing HULL T3 AVG", overlay=true)

fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2000, title = "From Year", minval = 1970)
 //monday and session 
// To Date Inputs
toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2021, title = "To Year", minval = 1970)

startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true



////////////////////////////GENERAL INPUTS//////////////////////////////////////

length_Ma= input(defval=50, title="Length MAs", minval=1)

//==========HMA
getHULLMA(src, len) =>
    hullma = wma(2*wma(src, len/2)-wma(src, len), round(sqrt(len)))
    hullma

//==========T3
getT3(src, len, vFactor) =>
    ema1 = ema(src, len)
    ema2 = ema(ema1,len)
    ema3 = ema(ema2,len)
    ema4 = ema(ema3,len)
    ema5 = ema(ema4,len)
    ema6 = ema(ema5,len)
    c1 = -1 * pow(vFactor,3)
    c2 = 3*pow(vFactor,2) + 3*pow(vFactor,3)
    c3 = -6*pow(vFactor,2) - 3*vFactor - 3*pow(vFactor,3)
    c4 = 1 + 3*vFactor + pow(vFactor,3) + 3*pow(vFactor,2)
    T3 = c1*ema6 + c2*ema5 + c3*ema4 + c4*ema3
    T3





hullma = getHULLMA(close,length_Ma)

t3 = getT3(close,length_Ma,0.7)


avg = (hullma+t3) /2


////////////////////////////PLOTTING////////////////////////////////////////////


colorado = avg > avg[1]? color.green : color.red

plot(avg , title="avg", color=colorado, linewidth = 4)

long=avg>avg[1]
short=avg<avg[1]

tplong=input(0.08, title="TP Long", step=0.01)
sllong=input(1.0, title="SL Long", step=0.01)

tpshort=input(0.03, title="TP Short", step=0.01)
slshort=input(0.06, title="SL Short", step=0.01)


if(time_cond)
    strategy.entry("long",1,when=long)
    strategy.exit("closelong", "long" , profit = close * tplong / syminfo.mintick, loss = close * sllong / syminfo.mintick, alert_message = "closelong")
    
    strategy.entry("short",0,when=short)
    strategy.exit("closeshort", "short" , profit = close * tpshort / syminfo.mintick, loss = close * slshort / syminfo.mintick, alert_message = "closeshort")


Lebih lanjut