
この戦略は,ブリン帯の指標を市場トレンドの方向を判断するために使用し,動量指標と組み合わせてトレンド追跡取引を実現する.戦略の名において,動量は動量指標を採用することを表し,交差は判断指標の交差を多空信号にすることを表し,ブリン帯のはブリン帯の方向を判断することを表し,傾向は戦略追跡トレンドを表し,追跡は戦略がトレンド追跡して取引を行うことを表す.
この戦略は主に3つの部分に分かれています.
ブリン帯の方向を判断する. ブリン帯の中線は均線を表し,ブリン帯の上下線は波動範囲を表する. 価格が上線に近づくと超買い,下線に近づくと超売りである. ブリン帯の方向は価格の傾向方向を表する.
動量計算。この戦略はハル動量を選択。ハル動量は,急速移動平均を減算してゆっくり移動平均を得ます。正値は上昇傾向を表し,負値は下降傾向を表します。
交差信号。 急速移動平均線が下からゆっくり移動平均線を穿越するときに多信号を生じ; 上から下を通過するときに空白信号を生じ。
取引ルールは:ブリン帯の方向は大きなトレンドを表し,動量指標の交差は入場時刻を表する.動量交差がブリン帯の方向と一致するときに,取引信号が生成する.すなわち,ブリン帯の代表するトレンドの方向を追跡する.
傾向と動力を組み合わせて,偽突破を避ける.ブリン帯を用いて大レベルの傾向を判断し,動力の指標を用いて特定の入場タイミングを判断し,局所的な突破によるフォームセットリスクを避ける.
リスク管理が優れている.ブリン帯は,単純移動平均よりも効果的で,ストップ・ロスを提供している.
動態指標は,入場後,価格を元の方向に動かすために十分な力があることを保証し,トレンドをより順調に追跡します.
ブリン帯は失敗のリスクを判断する.ブリン帯は常に完全に正確なトレンド判断をしない.方向信号を誤って提供して損失率を増やす可能性がある.
トレンド反転リスク. ブリン帯が正常に大レベルトレンドを反映しているとしても,価格が中期期間に反転する可能性があり,取引する際の判断に注意してください.
パラメータ最適化リスク.計算周期などの戦略パラメータは,異なる市場データに対して最適化され,最適な取引効果を達成する必要があります.
さらに多くの指標 FILTER を組み合わせて.ブリン帯とハル動量以外にも,MACD,KDJなどの他の指標を加え,指標 FILTER を形成し,判断精度を向上させることができる.
適応パラメータ最適化. 機械学習アルゴリズムを組み込み,異なる品種と市場環境に応じて,リアルタイムでパラメータを最適化して,戦略の安定性を高める.
ストップ・ロスの最適化 ストップ・ロスの最適化 傾向が変わらずに利益を最大限封じ,傾向が逆転したときに最速でストップ・ロスを行う
この戦略は,ブリン帯を集約して大レベルのトレンドを判断し,ハル動力指数で特定の入場タイミングを判断し,トレンドの効果的な追跡を実現している.同時に,さらなる指標フィルター,パラメータ自在適応最適化,およびストップダメージ戦略最適化などの側面から改善できる一定の改善の余地がある.
/*backtest
start: 2024-01-26 00:00:00
end: 2024-02-25 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
// Hull Moving Average Crossover by SeaSide420
strategy("Hull Moving Average Crossover Strategy", overlay=true)
keh=input(title="HullMA cross",defval=10)
p=input(ohlc4)
n2ma=2*ta.wma(p,math.round(keh/2))
nma=ta.wma(p,keh)
diff=n2ma-nma
sqn=math.round(math.sqrt(keh))
n2ma1=2*ta.wma(p[1],math.round(keh/2))
nma1=ta.wma(p[1],keh)
diff1=n2ma1-nma1
sqn1=math.round(math.sqrt(keh))
n1=ta.wma(diff,sqn)
n2=ta.wma(diff1,sqn)
hullcross1 = n1
hullcross2 = n2
longcross1=(n1[0]-n1[3])+(n1[0]-n2[4])*100
longcross2=(n2[0]-n2[3])+(n2[0]-n1[4])*100
closelong = n1<n2 and longcross1<longcross2
if (closelong)
strategy.close("Long")
closeshort = n1>n2 and longcross1>longcross2
if (closeshort)
strategy.close("Short")
longCondition = n1>n2 and longcross1>longcross2 and strategy.opentrades<1
if (longCondition)
strategy.entry("Long",strategy.long)
shortCondition = n1<n2 and longcross1<longcross2 and strategy.opentrades<1
if (shortCondition)
strategy.entry("Short",strategy.short)
b=hullcross1>hullcross2?color.green:color.red
c=hullcross2>hullcross1?color.green:color.red
plot(ta.cross(hullcross1, hullcross2) ? hullcross1 : na,color=c, linewidth = 5, offset=3)
barcolor(longcross1 < longcross2 ? color.black : color.white)
bgcolor(longcross2 < longcross1 ? color.green : color.black, transp=85)
plotshape(ta.cross(longcross2, longcross1) ? longcross2 : na, text="X", style=shape.labeldown, location=location.bottom)