この戦略の核心思想は,ホール移動平均 (Hull Moving Average,HMA) とK線の値を比較して,買入と売却のシグナルを生成することである.HMAがK線より高いときは買い,HMAがK線より低いときは売る.
まず,戦略は,hma ((() 関数を使用して一定の周期のHMAを計算します. 次に,比較基準として上記のK行の開札価格を取得します. HMAが上記のK線の開札価格より高い場合は,買入シグナルを生成します. HMAが上記のK線の開札価格より低い場合は,売り出します.
策略の入場条件は,価格が逆方向にHMAを破るときにのみ入場することである.つまり,価格が下からHMAを破るときにのみ購入すること;価格が上からHMAを破るときにのみ売却することである.これは,揺れ動いている市場が繰り返しシグナルを触発するのを防ぐことができる.
策略の出場条件は,価格がHMAの反対側に戻ったときに止損出場である.例えば,購入後に価格がHMAを下回れば,止損売りである.
全体として,この戦略はHMAの平滑な特性を利用し,主要トレンドの方向を識別してシグナルを生成する.同時に,偽のシグナルをフィルターするために価格の突破を要求し,市場の揺れに繰り返し囚われることを避ける.
HMAをSMAではなく使用することで,トレンドを識別し,振動をフィルタリングできます.
突破メカニズムは, ポジションを押収したり,繰り返し開いたりする確率を減らすことができます.
過去のK線価格ではなく現在の価格を判断することで,逆行曲線を描画を回避できます.
規則はシンプルで明快で,パラメータ最適化やロボット取引に適しています.
柔軟な適用は,任意の品種と周期で,普遍性があります.
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