HullMA 百分比帯に基づく量子取引戦略

作者: リン・ハーンチャオチャン,日付: 2024-03-01 12:16:45
タグ:

img

概要

この戦略は,エントリーとストップ・ロスの決定を行うためにハル移動平均とその百分比帯を計算することによって定量的な取引を実施する.その利点には,調整可能なパラメータ,単純な実装,厳格なストップ・ロスが含まれる.しかし,ピークを追いかけるようなリスクや,頻繁に取引するリスクも存在する.ストップ・ロスの戦略のさらなる最適化と,短期間のオペレーションを追加することで,より良いパフォーマンスにつながる可能性がある.

戦略原則

  1. Hull移動平均体積を長さ長さで計算する.

  2. フルマに基づいて xL1,xL3,xL2,xL4 のプロットパーセンテージ帯.

  3. xL2またはxL4を下回るときの長,xL1,xL2またはxL3を下回るときの長

利点分析

その利点には,以下が含まれます.

  1. HullMAは価格変動に敏感で 傾向をよく把握しています

  2. パーセンテージ帯は,異なる製品に対して非常に調整可能である.

  3. ダブルバンド戦略は 誤った信号を効果的にフィルターします

  4. ストップロスの戦略はリスクを効果的に制御します

リスク分析

いくつかのリスク:

  1. 頂点を追いかけて 落下を犯す

  2. 取引の頻度が下がる

  3. パラメータの調整が不適切で 取引が過剰になる

  4. ストップ・ロストポジションは 繰り返し最適化が必要です

オプティマイゼーションの方向性

  1. 異なる製品に対してHullMA長度パラメータを最適化する.

  2. 誤った取引を減らすために パーセント帯を最適化します

  3. より多くの利益を得るため,短期的な取引を追加します.

  4. ストップ・ロスの戦略を最適化して 効果を確保する.

  5. 耐久性を異なる製品でテストする

結論

この戦略は,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)
    


もっと