Idea utama strategi ini adalah untuk membandingkan Hull Moving Average (HMA) dengan nilai candlestick untuk menjana isyarat beli dan jual.
Pertama, strategi ini mengira HMA tempoh tertentu menggunakan fungsi hma(). Kemudian ia mendapat harga buka lilin sebelumnya sebagai penanda aras. Jika HMA lebih tinggi daripada harga buka lilin sebelumnya, isyarat beli dihasilkan. Jika HMA lebih rendah daripada harga buka lilin sebelumnya, isyarat jual dihasilkan.
Syarat kemasukan adalah bahawa harga perlu memecahkan HMA ke arah yang bertentangan sebelum memasuki pasaran. Itu bermakna ia hanya akan membeli apabila harga memecahkan di atas HMA dari bawah. Ia hanya akan menjual apabila harga memecahkan di bawah HMA dari atas. Ini mengelakkan daripada dipukul oleh pasaran berayun.
Syarat keluar adalah untuk menghentikan kerugian apabila harga jatuh kembali ke sisi lain HMA. Sebagai contoh, jika harga jatuh di bawah HMA selepas membeli, ia akan menghentikan kerugian menjual.
Ringkasnya, strategi ini mengenal pasti arah trend utama menggunakan kelancaran HMA untuk menjana isyarat. Sementara itu, ia memerlukan penembusan harga untuk menapis isyarat palsu dan mengelakkan digigit oleh bunyi bising pasaran.
Menggunakan HMA bukannya SMA dapat mengenal pasti trend dan menapis bunyi bising dengan lebih baik.
Mekanisme breakout boleh mengurangkan kebarangkalian terperangkap dan membuka kedudukan berulang.
Mengambil harga lilin terdahulu dan bukannya harga semasa mengelakkan pemasangan lengkung.
Peraturan mudah dan jelas, sesuai untuk pengoptimuman parameter dan perdagangan robot.
Boleh digunakan secara fleksibel kepada mana-mana instrumen dan jangka masa, dengan keseluruhan.
Tetapan parameter HMA yang tidak betul mungkin terlepas trend atau terlalu sensitif.
Mengandalkan satu penunjuk mudah dihentikan oleh percubaan semula, pertimbangkan menggabungkan penunjuk lain untuk menapis isyarat.
Stop loss terlalu dekat dengan HMA, boleh terperangkap lagi dengan pecah berikutnya.
Tidak dapat menentukan arah trend dan kekuatan. Pertimbangkan menambah penanda klasifikasi trend.
Stop loss tetap menyebabkan turun naik besar dalam risiko / ganjaran.
Strategi ini agak mudah dan praktikal secara keseluruhan dengan idea teras yang jelas. Ia mengenal pasti trend utama dengan HMA dan menapis isyarat palsu dengan pecah. Ia mengelakkan daripada dipukul oleh pasaran yang bergolak. Pengoptimuman parameter yang betul dapat mencapai hasil yang baik. Walau bagaimanapun, kebolehpercayaan dan kadar kemenangan masih terhad sebagai strategi penunjuk tunggal. Ia disyorkan untuk digabungkan dengan penunjuk teknikal lain atau kaedah pengurusan wang untuk meningkatkan ketahanan dengan ketara. Kesimpulannya, strategi ini menyediakan pendekatan yang mudah dan berkesan untuk perdagangan kuantitatif, yang bernilai penyelidikan dan aplikasi yang mendalam.
/*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