この戦略の主なアイデアは,Hull Moving Average (HMA) をキャンドルスティック値と比較して購入・売却信号を生成することです.HMAがキャンドルスティック上にあるとき購入し,HMAがキャンドルスティック下にあるとき販売します.
まず,戦略は hma ((() 関数を使用して特定の期間の HMA を計算する.その後,先行キャンドルストイックのオープン価格をベンチマークとして取得する. HMA が先行キャンドルオープン価格より高くなった場合,購入信号が生成される. HMA が前回のキャンドルオープン価格より低くなった場合,販売信号が生成される.
入場条件は,価格が市場に入る前に逆方向にHMAを突破する必要があるということです.これは,価格が下からHMAを突破するときにのみ購入することを意味します.価格が上からHMAを下に突破するときにのみ販売します.これは振動する市場によって鞭打ちされるのを避けます.
出口条件は,価格がHMAの反対側に戻ると損失を停止することです.例えば,価格が購入後HMAを下回ると,損失を停止します.
要するに,この戦略は,HMAのスムーズさを利用してシグナルを生成するために主要なトレンド方向を特定します.一方,偽のシグナルをフィルタリングし,市場の騒音に引っかかることを避けるために価格ブレイクが必要です.
HMA を SMA の代わりに使うことで,傾向をよりよく特定し,ノイズをフィルターすることができます.
ブレイクアウトメカニズムは 閉じ込められ 繰り返しポジションを開く可能性を 減らすことができます
現在の価格ではなく前のキャンドル価格を採用することで,曲線フィッティングを回避できます.
パラメータ最適化やロボット取引に適した シンプルで明確なルールです
柔軟にあらゆるツールや時間枠に適用され,普遍性があります
HMA パラメータの設定が正しくない場合,トレンドを見逃したり過度に敏感になり,最適な値を見つけるために異なる期間をテストすることができます.
単一の指標に頼ることは 突破再試しに止められやすいので,他の指標を組み合わせてシグナルをフィルターすることを検討してください.
ストップ・ロスはHMAに近すぎると,次のブレイクで再び閉じ込められる.ストップをサポート/レジスタンスに適切に広げることができる.
傾向の方向と強さを判断できない.傾向分類指標を追加することを検討する.
固定ストップ損失はリスク/リターンの大きな変動を引き起こす.適応ストップやマネーマネジメントを試すことができます.
この戦略は,比較的シンプルで,全体的に実践的で,明確なコアアイディアを持っています. HMA で主要なトレンドを特定し,ブレイクアウトで偽信号をフィルタリングします. 不安定な市場によって鞭打ちされるのを避けます.適切なパラメータ最適化は,立派な結果を達成することができます. しかし,信頼性と勝利率は,単一の指標戦略としてまだ制限されています. 安定性を著しく改善するために,他の技術指標またはマネーマネジメント方法と組み合わせることをお勧めします. 結論として,この戦略は,詳細な研究と適用に値する定量取引のためのシンプルで効果的なアプローチを提供します.
/*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