Strategi perdagangan lintas pasar dengan rata-rata bergerak ganda

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

img

Gambaran umum

Strategi ini menggabungkan keuntungan dari Hull moving average dan T3 moving average untuk merancang strategi perdagangan lintas pasar. Ini dapat digunakan untuk perdagangan jangka pendek dan pelacakan tren jangka panjang. Dengan menghitung nilai rata-rata Hull moving average dan T3 moving average sebagai garis sinyal perdagangan utama, ia menentukan titik masuk dan keluar berdasarkan perubahan arah.

Logika Strategi

Strategi ini terutama didasarkan pada perhitungan rata-rata bergerak Hull dan rata-rata bergerak T3.

Hull Moving Average (HMA) menggunakan metode perhitungan iteratif rata-rata bergerak tertimbang untuk secara efektif menyaring kebisingan pasar dan menampilkan kurva tren harga yang mulus.

Rata-rata bergerak T3 merespon lebih cepat terhadap perubahan harga sambil mengurangi lag dengan menyesuaikan parameter.

Strategi ini mengambil rata-rata dari dua indikator perdagangan utama. Ini menilai waktu masuk sesuai dengan arah garis rata-rata ini: jika rata-rata periode saat ini lebih tinggi dari periode sebelumnya, itu adalah sinyal masuk panjang; jika lebih rendah, itu adalah sinyal masuk pendek.

Untuk aturan keluar, jika harga melanggar titik stop loss atau take profit, keluar; juga keluar ketika arah moving average berubah.

Analisis Keuntungan

Strategi ini menggabungkan keuntungan dari rata-rata bergerak Hull dan rata-rata bergerak T3 untuk menghasilkan indikator yang komprehensif. Selanjutnya, strategi ini cocok untuk perdagangan jangka pendek dan jangka panjang dengan menyesuaikan parameter siklus.

Analisis Risiko

Strategi ini terutama bergantung pada indikator rata-rata bergerak, yang dapat menghasilkan beberapa sinyal palsu dalam tren berkisar. Selain itu, ketinggalan rata-rata bergerak dapat kehilangan waktu masuk terbaik. Stop loss dan take profit point perlu diatur dengan hati-hati untuk menghindari terlalu longgar atau terlalu ketat.

Optimalisasi

Pertimbangkan untuk menambahkan indikator lain untuk memverifikasi sinyal MA dan menyaring sinyal palsu. Uji kombinasi MA yang berbeda dan algoritma bobot untuk mengoptimalkan sinyal MA. Tambahkan stop loss adaptif dan trailing take profit untuk mengelola risiko secara dinamis. Lakukan pengoptimalan backtesting pada mata uang dan kerangka waktu yang berbeda untuk menemukan set parameter optimal.

Ringkasan

Strategi ini mengintegrasikan kekuatan rata-rata bergerak Hull dan rata-rata bergerak T3 untuk membentuk indikator komprehensif untuk menilai arah tren. Melalui optimasi parameter, strategi dapat diterapkan secara fleksibel pada siklus perdagangan yang berbeda. Strategi ini memiliki keuntungan tertentu tetapi juga masalah seperti keterlambatan dan sinyal palsu. Dengan menambahkan indikator lain, mengoptimalkan parameter dan berhenti dinamis, strategi dapat terus ditingkatkan 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 banyak