
Strategi ini menggabungkan keunggulan dari Hull Moving Average dan T3 Moving Average untuk merancang strategi perdagangan lintas pasar. Strategi ini dapat digunakan untuk perdagangan garis pendek maupun untuk melacak tren garis panjang dan menengah. Dengan menghitung rata-rata Hull Moving Average dan T3 Moving Average sebagai garis sinyal perdagangan utama, waktu masuk dan keluar dinilai berdasarkan perubahan arahnya.
Strategi ini didasarkan pada perhitungan Hull moving average dan T3 moving average.
Hull Moving Average (HMA) dengan metode penghitungan berulang dari rata-rata bergerak bertimbang, dapat secara efektif memfilter kebisingan pasar, menunjukkan kurva perataan tren harga. Hal ini lebih sensitif terhadap perubahan harga daripada rata-rata bergerak sederhana dan rata-rata bergerak indeks, dan juga dapat secara efektif menekan false breakout.
T3 Moving Average dapat membuat Moving Average lebih dekat dengan harga melalui penyesuaian hyperparameter tertentu sambil mengurangi efek lag. Dengan menghitung indeks secara multifungsi, ia dapat merespons perubahan harga dengan lebih cepat.
Strategi ini menghitung rata-rata dari keduanya sebagai indikator perdagangan utama. Waktu masuk ditentukan berdasarkan arah rata-rata: jika rata-rata periode saat ini lebih tinggi dari periode sebelumnya, maka sinyal masuk multihead; jika rata-rata periode saat ini lebih rendah dari periode sebelumnya, maka sinyal masuk kosong.
Untuk aturan keluar, jika harga melewati titik stop loss atau mencapai titik stop, keluar; jika arah garis rata-rata berubah, keluar juga dilakukan.
Strategi ini menggabungkan keunggulan dari Hull Moving Average dan T3 Moving Average untuk menghasilkan indikator yang komprehensif, yang dapat meredam kebisingan dan merespons perubahan harga dengan cepat. Kedua, strategi ini berlaku untuk perdagangan garis pendek dan garis panjang menengah, dengan menyesuaikan parameter siklus perhitungan, untuk menyesuaikan perdagangan siklus yang sesuai dengan fleksibilitas.
Strategi ini terutama bergantung pada indikator garis rata, yang dapat menghasilkan beberapa sinyal palsu dalam tren bergolak. Selain itu, garis rata memiliki keterlambatan tertentu dan mungkin melewatkan titik masuk terbaik dari perubahan harga. Penetapan titik stop loss perlu dilakukan dengan hati-hati untuk menghindari terlalu longgar atau terlalu mendesak.
Anda dapat mempertimbangkan untuk menambahkan indikator tambahan lainnya, seperti indikator kekuatan lemah, indikator volatilitas, dan lain-lain, untuk memverifikasi sinyal kesetaraan, memfilter sinyal palsu. Anda dapat menguji kombinasi dan algoritma berat kesetaraan yang berbeda, dan mengoptimalkan efek menghasilkan sinyal kesetaraan. Anda dapat menambahkan risiko manajemen dinamis untuk stop loss dan trailing stop.
Strategi ini mengintegrasikan keuntungan dari Hull Moving Average dan T3 Moving Average untuk membentuk indikator komprehensif untuk menilai arah tren. Dengan pengoptimalan parameter, strategi ini dapat diterapkan secara fleksibel untuk siklus perdagangan yang berbeda. Strategi ini memiliki beberapa keuntungan, tetapi juga ada masalah seperti penundaan, menghasilkan sinyal palsu, dll. Dengan menambahkan indikator tambahan, parameter pengoptimalan, dan stop loss dinamis, strategi ini dapat terus dioptimalkan untuk mendapatkan 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")