
この戦略は,HULL平滑移動平均と指数移動平均の交差を計算して,市場トレンドの方向を判断し,買入と売却のシグナルを生成する.中短期トレンドフォロー戦略に属している.
5日間のHULLスムーズ移動平均を計算する (HULL SMA) 〔HULL SMAは,加重移動平均と周期の平方根を計算することで,価格変化により迅速に反応する〕
5日指数移動平均 ((EMA) を計算する.EMAは,最近の価格により大きな重みを与えることで平均を計算し,SMAと比較してより敏感である.
HULL SMAとEMAの交差を判断し,買入と売却のシグナルを生成する.
HULL SMAでEMAを突破すると,買い信号が生じます. これは,短期トレンドが長期トレンドを突破し,価格が上昇することを示唆しています.
HULL SMAがEMAを下回ったとき,セールシグナルが生じます. これは,短期トレンドが転換し始め,価格が下がることを示しています.
HULL SMAは価格変化に敏感で,トレンドの変化を早期に発見できる.
EMAは長期のトレンドを追跡し,ノイズを平らにする能力を持っています.
速線が遅線を突破し,トレンドの転換点を把握し,市場へ間に合うようにシグナルを発信する.
移動平均のパラメータを調整することで,異なる周期の取引に対応できます.
価格の上昇と下落を同時に判断し,両方向の動きを柔軟に捉えることができます.
震災時の誤信号はより多く発生する可能性がある.
傾向の強さや弱さを判断できず,弱さのあるトレンドで損失を繰り返す可能性があります.
移動平均のギャップが大きすぎるので,部分的に見逃す可能性があります.
快線と慢線のパラメータの設定が不適切で,取引信号の質に影響する.
取引の頻度が高くなり,取引コストや滑り場リスクが増加する可能性があります.
他の指標のフィルタリング信号と組み合わせて,トレンドの強さや弱さを評価し,パラメータの設定を最適化し,リスクを制御することによって改善することができます.
MACD,RSIなどの指標をフィルターして,買い買いを判断する.
ADXのようなトレンド強度指標を足し,弱気なトレンドで取引を避ける.
移動平均のパラメータを最適化し,最適なパラメータの組み合わせを探します.
ストップ・ロスの戦略を設定し,単一損失をコントロールする.
取引回数とコストのコントロールを考慮し,開設頻度調整.
より多くの時間周期分析と組み合わせて,跨周期的なトレンド信号を識別する.
自動パラメータ最適化プログラムを開発し,動的に最適なパラメータを探します.
この戦略は,快線HULL SMAと慢線EMAの交差によって市場のトレンドを判断し,典型的な移動平均の交差戦略に属します.この戦略は,従来の移動平均と比較して,より敏感なHULL SMAを使用し,傾向の変化を早期に検出することができます.しかし,パラメータの設定を最適化する必要がまだあり,誤った信号を減らすために他の技術指標に補足する必要があります.この戦略は,優れたリスクと資金管理と組み合わせれば,より効率的な中短期トレンド追跡戦略になることができます.
/*backtest
start: 2022-10-23 00:00:00
end: 2023-10-29 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("HULL EMA Crossover", overlay = true, process_orders_on_close = true)
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © spiritedPerson95700
inSession = true
HULL_INP = input.int(5, "Hull EMA Value")
EMA_INP = input(5, "EMA Value")
/// Indicator
HULL_EMA = ta.hma(close, HULL_INP)
EMA = ta.ema(close, EMA_INP)
prevSignal = ''
if (prevSignal == '')
prevSignal := HULL_EMA > EMA ? 'buy' : 'sell'
/// buy and sell signal
buy = ta.crossover(HULL_EMA, EMA)
short = ta.crossover(EMA, HULL_EMA)
sell = short
cover = buy
if inSession
if buy
prevSignal := 'na'
strategy.entry("long", direction = strategy.long, comment = "Buy")
if sell
prevSignal := 'na'
strategy.close("long", comment = "Sell")
if short
strategy.entry("short", direction = strategy.short, comment = "Short")
if cover
strategy.close("short", comment = "Cover")
plot(HULL_EMA, color = color.green)
plot(EMA, color = color.blue)
// if ( hour(time) == 15 and minute(time) > 25 )
// strategy.close("long", comment="EOD")
// strategy.close("short", comment="EOD")
// buy := false
// sell := false
// prevSignal := ''