Ide inti dari strategi ini adalah untuk membandingkan Hull Moving Average (HMA) dengan nilai candlestick untuk menghasilkan sinyal beli dan jual.
Pertama, strategi menghitung HMA dari periode tertentu menggunakan fungsi hma(). Kemudian ia mendapatkan harga buka lilin sebelumnya sebagai patokan. Jika HMA lebih tinggi dari harga buka lilin sebelumnya, sinyal beli dihasilkan. Jika HMA lebih rendah dari harga buka lilin sebelumnya, sinyal jual dihasilkan.
Kondisi masuk adalah bahwa harga harus memecahkan HMA ke arah yang berlawanan sebelum memasuki pasar. Itu berarti akan membeli hanya ketika harga melanggar di atas HMA dari bawah. Ini akan menjual hanya ketika harga melanggar di bawah HMA dari atas. Ini menghindari ditipu oleh pasar osilasi.
Kondisi keluar adalah untuk menghentikan kerugian ketika harga jatuh kembali ke sisi lain dari HMA. Misalnya, jika harga turun di bawah HMA setelah membeli, itu akan menghentikan penjualan kerugian.
Singkatnya, strategi ini mengidentifikasi arah tren utama menggunakan kelancaran HMA untuk menghasilkan sinyal. Sementara itu, membutuhkan price breakout untuk menyaring sinyal palsu dan menghindari tertipu oleh kebisingan pasar.
Menggunakan HMA alih-alih SMA dapat lebih baik mengidentifikasi tren dan menyaring kebisingan.
Mekanisme breakout dapat mengurangi kemungkinan terjebak dan membuka posisi berulang.
Mengadopsi harga lilin sebelumnya daripada harga saat ini menghindari penyesuaian kurva.
Aturan sederhana dan jelas, cocok untuk optimasi parameter dan perdagangan robot.
Dapat diterapkan secara fleksibel pada instrumen dan kerangka waktu apa pun, dengan universalitas.
Pengaturan parameter HMA yang tidak benar dapat kehilangan tren atau terlalu sensitif.
Mengandalkan indikator tunggal cenderung dihentikan oleh upaya ulang, pertimbangkan untuk menggabungkan indikator lain untuk menyaring sinyal.
Stop loss terlalu dekat dengan HMA, dapat terjebak lagi oleh breakout berikutnya.
Tidak dapat menentukan arah tren dan kekuatan. Pertimbangkan menambahkan indikator klasifikasi tren.
Stop loss tetap menyebabkan fluktuasi besar dalam risiko / imbalan.
Strategi ini relatif sederhana dan praktis secara keseluruhan dengan ide inti yang jelas. Ini mengidentifikasi tren utama dengan HMA dan menyaring sinyal palsu dengan breakout. Ini menghindari tersinggung oleh pasar yang berbelit-belit. Optimasi parameter yang tepat dapat mencapai hasil yang layak. Namun, keandalan dan tingkat kemenangan masih terbatas sebagai strategi indikator tunggal. Disarankan untuk dikombinasikan dengan indikator teknis lain atau metode manajemen uang untuk meningkatkan ketahanan secara signifikan.
/*backtest start: 2023-08-21 00:00:00 end: 2023-09-20 00:00:00 period: 2h 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/ // © SeaSide420. Any timeFrame/pair , Hull Moving Average vs Candle //@version=4 strategy("Hull Moving Average vs Candle",shorttitle="HMA-vs-Candle",overlay=true,default_qty_type=strategy.percent_of_equity,default_qty_value=100,commission_type=strategy.commission.cash_per_order,commission_value=1.00,slippage=1) Period=input(title="Hull MA Period",type=input.integer,defval=50,minval=1) Resolution=input(title="Candle Resolution", type=input.resolution,defval="D") Price=input(title="Source of Price",type=input.source,defval=open) HMA=hma(Price,Period) Candle=security(syminfo.tickerid,Resolution,Price,barmerge.gaps_off,barmerge.lookahead_off) change_color=HMA>Candle?color.green:color.red plot1=plot(Candle,color=change_color,title="Candle Line",linewidth=2,transp=50) plot2=plot(HMA[1],color=change_color,title="Hull MA Line",linewidth=2,transp=50) fill(plot1,plot2,color=change_color,transp=50) strategy.close("BUY",when=Price<HMA and HMA<Candle,comment="close buy entry") strategy.close("SELL",when=Price>HMA and HMA>Candle,comment="close sell entry") if (Price>HMA and HMA>Candle and Price>Price[1]) strategy.entry("BUY",strategy.long) if (Price<HMA and HMA<Candle and Price<Price[1]) strategy.entry("SELL",strategy.short) // /L'-, // ,'-. /MM . . / L '-, // . _,--dMMMM\ /MMM `.. / '-, // : _,--, )MMMMMMMMM),. `QMM ,<> /_ '-,' // ; ___,--. \MM( `-' )M//MM\ ` ,',.; .-'* ; .' // | \MMMMMM) \MM\ ,dM//MMM/ ___ < ,; `. )`--' / // | \MM()M MMM)__ /MM(/MP' ___, \ \ ` `. `. /__, ,' // | MMMM/ MMMMMM( /MMMMP'__, \ | / `. `-,_\ / // | MM /MMM---' `--'_ \ |-' |/ `./ .\----.___ // | /MM' `--' __,- \"" |-' |_, `.__) . .F. )-. // | `--' \ \ |-' |_, _,-/ J . . . J-'-. `-., // | __ \`. | | | \ / _ |. . . . \ `-. F // | ___ / \ | `| ' __ \ | /-' F . . . . \ '` // | \ \ \ / | __ / \ | |,-' __,- J . . . . . \ // | | / |/ __,- \ ) \ / |_,- __,--' |. .__.----,' // | |/ ___ \ |'. |/ __,--' `.-;;;;;;;;;\ // | ___ \ \ | | ` __,--' /;;;;;;;;;;;;. // | \ \ |-'\ ' __,--' /;;;;;;;;;;;;;;\ // \ | | / | __,--' `--;;/ \;-'\ // \ | |/ __,--' / / \ \ // \ | __,--' / / \ \ // \|__,--' _,-;M-K, ,;-;\ // <;;;;;;;; '-;;;; // ~ priceless artwork by SeaSide420