
この戦略は,ハル移動平均とその上下比率帯を計算することによって,突破買いと止損売りの定量取引を実現する.戦略の優位性は,パラメータの調整,実現の簡素性,ストッパー厳格性などである.しかし,追高殺跌,頻繁取引などのリスクも存在する.止損戦略を最適化し,ショートライン操作などを追加することで,よりよい効果を得ることができる.
Hull 移動平均 hullma について
フルマのパーセントに基づいて上線 xL1,xL3と下線 xL2,xL4を図を描く.
閉盘価格の上から下を走るときは,多めに;閉盘価格下から下を走るときは,平仓する.
この戦略の利点は以下の通りです.
HullMA指数は価格変化に敏感で,トレンドを効果的に追跡することができる.
パーセンテージ帯の設定の自由度が高いので,調整することで異なる品種に適応できます.
誤信号を効率的にフィルタリングする双線戦略.
ストップ・ロスの戦略はリスクを効果的にコントロールします.
この戦略にはいくつかのリスクがあります.
追放の可能性がある.
商品の購入や販売を頻繁に行うことで,滑点の損失が発生します.
パラメータの設定を間違えた場合,取引が頻繁になる可能性があります.
停止位置の設定は,繰り返しテストして最適化する必要があります.
この戦略は以下の方向から最適化できます.
ハルMA長さのパラメータを最適化して,異なる品種に適応する.
パーセンテージ帯のパラメータを最適化し,誤った取引を減らす.
ショートラインの操作戦略を追加し,リコールを利用してより多くの利益を得ます.
ストップ・ローズ戦略を最適化して,その効果を保証する.
異なる品種のパラメータの健性をテストする.
この戦略は,HullMA指数とそのパーセント帯によって,比較的シンプルで直感的な突破取引戦略を構築している.戦略の優劣は明確であり,パラメータ調整と機能最適化によって拡張され,非常に実用的な量化戦略になることができる.
/*backtest
start: 2023-03-01 00:00:00
end: 2024-02-29 00:00:00
period: 5d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("hullma percentage lines", overlay=true)
length = input(9, minval=1)
src = input(close, title="Source")
hullma = wma(2*wma(src, length/2)-wma(src, length), round(sqrt(length)))
plot(hullma)
Uband1 = input(3, minval=1, step = .5)
Lband1 = input(3, minval=1, step = .5)
Uband2 = input(6, minval=1, step = .5)
Lband2 = input(6, minval=1, step = .5)
v1 = Uband1+100
v2 = 100 - Lband1
v3 = Uband2+100
v4 = 100 - Lband2
xL1 = (hullma / 100) * v1
xL2 = (hullma / 100) * v2
xL3 = (hullma / 100) * v3
xL4 = (hullma / 100) * v4
plot(xL1, color=yellow, title="H1")
plot(xL2, color=yellow, title="L1")
plot(xL3, color=yellow, title="H2")
plot(xL4, color=yellow, title="L2")
longCondition1 = crossover(close, xL4)
if (longCondition1)
strategy.entry("l1", strategy.long)
longCondition2 = crossover(close, xL2)
if (longCondition2)
strategy.entry("l1", strategy.long)
shortCondition1 = crossover(close, xL1)
if (shortCondition1)
strategy.close("l1", strategy.long)
shortCondition2 = crossover(close, xL2)
if (shortCondition2)
strategy.close("l1", strategy.long)
shortCondition3 = crossover(close, xL3)
if (shortCondition3)
strategy.close("l1", strategy.long)