Strategi perdagangan ambang penghakiman gabungan HullMA berganda


Tarikh penciptaan: 2023-09-13 13:48:30 Akhirnya diubah suai: 2023-09-13 13:48:30
Salin: 1 Bilangan klik: 585
1
fokus pada
1617
Pengikut

Strategi ini menggunakan gabungan purata bergerak dua Hull dan perbandingan garis K untuk perdagangan, menetapkan terhad terhad terhad terhad terhad terhad terhad terhad terhad terhad terhad terhad terhad terhad terhad terhad terhad terhad terhad terhad terhad terhad terhad terhad terhad terhad terhad terhad terhad terhad terhad terhad terhad terhad terhad terhad terhad terhad terhad terhad terhad

Prinsip-prinsip strategi:

  1. Hitung purata bergerak dua Hull dan bandingkan nilai semasa dengan saiz kitaran sebelumnya.

  2. Mengira kadar perubahan harga penutupan K hari, menetapkan had keputusan kosong.

  3. Apabila garis cepat melalui garis perlahan, dan kadar perubahan harian melebihi nilai terhad, lakukan lebih banyak. Apabila garis cepat melalui garis perlahan, dan kadar perubahan harian kurang daripada nilai terhad, kosongkan.

  4. Tetapkan harga stop loss tetap. Tetap aktif apabila harga menyentuh stop loss.

  5. Anda juga boleh menetapkan jumlah maksimum yang boleh dibuka.

Kelebihan strategi ini:

  1. HullMA ganda meningkatkan ketepatan penghakiman. Kadar perubahan garisan K harian mengesahkan arah utama.

  2. Tetapan nilai terhad untuk mengelakkan daripada dipengaruhi oleh harga yang berbalik.

  3. Hentikan Kerosakan Hentikan Kerosakan membantu mengunci keuntungan dan mengawal risiko.

Risiko strategi ini:

  1. Tetapan had yang terlalu tinggi atau terlalu rendah boleh menyebabkan peluang perdagangan terlewat. Perlu diuji dengan teliti.

  2. Harga penangguhan kerugian tetap tidak dapat disesuaikan dengan fleksibel, dan terdapat risiko yang tidak munasabah.

  3. HullMA dan kadar perubahan hari mempunyai masalah ketinggalan.

Kesimpulannya, strategi ini boleh meningkatkan kestabilan ke tahap tertentu melalui keputusan dua indikator dan langkah-langkah pengurusan risiko. Tetapi masih perlu memberi perhatian kepada masalah pengoptimuman parameter dan mencari konfigurasi terbaik.

Kod sumber strategi
/*backtest
start: 2022-09-06 00:00:00
end: 2023-02-21 00:00:00
period: 5d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
//                                                        Hull_MA_cross & Daily_Candle_cross combination with TP$ & SL$ setting
//                                                              (new script reducing effect of repaint on results)
//
strategy("Decision Threshold", shorttitle="DT", overlay=true, default_qty_type=strategy.percent_of_equity, max_bars_back=720, default_qty_value=100, calc_on_order_fills= true, calc_on_every_tick=true, pyramiding=0)
keh=input(title="Double HullMA",defval=14, minval=1)
dt = input(defval=0.0010, title="Decision Threshold",  step=0.0001)
SL = input(defval=-50000.00, title="Stop Loss in $",  step=1)
TP = input(defval=100000.00, title="Target Point in $", step=1)
p=input(ohlc4)
ot=1
n2ma=2*wma(p,round(keh/2))
nma=wma(p,keh)
diff=n2ma-nma
sqn=round(sqrt(keh))
n2ma1=2*wma(p[1],round(keh/2))
nma1=wma(p[1],keh)
diff1=n2ma1-nma1
sqn1=round(sqrt(keh))
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
b=n1>n2?lime:red
c=n1>n2?green:red
d=n1>n2?red:green
a1=plot(n1,color=c)
a2=plot(n2,color=c)
plot(cross(n1, n2) ? n1 : na, style = circles, color=b, linewidth = 4)
plot(cross(n1, n2) ? n1 : na, style = line, color=d, linewidth = 4)
confidence=(security(syminfo.tickerid, 'D', p)-security(syminfo.tickerid, 'D', p[1]))/security(syminfo.tickerid, 'D', p[1])
closelong = n1<n2 and p<n2 and confidence<dt or strategy.openprofit<SL or strategy.openprofit>TP
if (closelong)
    strategy.close("Long")
closeshort = n1>n2 and p>n2 and confidence>dt or strategy.openprofit<SL or strategy.openprofit>TP
if (closeshort)
    strategy.close("Short")
longCondition = n1>n2 and strategy.opentrades<ot and confidence>dt and p>n2
if (longCondition)
    strategy.entry("Long",strategy.long)
shortCondition = n1<n2 and strategy.opentrades<ot and confidence<dt and p<n2 
if (shortCondition)
    strategy.entry("Short",strategy.short)