グラデントMACD量子戦略

作者: リン・ハーンチャオチャン開催日:2023年12月19日 16:14:50
タグ:

img

概要

この戦略は,価格線を平滑させるためにハイキン・アシのキャンドルスタイクを計算し,中長期のトレンドを追跡する定量戦略を実装し,取引信号を生成するためにMACD指標を組み合わせます.

戦略の論理

  1. ハイキン・アシ・オープン, 閉店, 高値,低値を計算して ハイキン・アシ・キャンドルスタイクと平らな価格動向を図表します

  2. MACD パラメータを設定します 速度の長さ12 遅さの長さ26 信号長さ9

  3. DEAのスローライン,DEAのファーストライン,MACDヒストグラムを計算します.

  4. MACD ヒストグラムが0を超えるとロング; 0を下回るとショート.

  5. 指定された時間帯に取引を制限するために,年,月,日フィルターを追加します.

利点分析

  1. ハイキン・アシのろうそくは 市場騒音を効果的にフィルタリングして 傾向を特定します

  2. MACDは明確なトレンド・シグナルを提供します.

  3. ハイキン・アシとMACDを組み合わせると信号の質と収益性が向上します

  4. タイムフィルターは,過去のパフォーマンスに基づいて取引スケジュールを最適化するのに役立ちます.

リスク分析

  1. トレンド逆転時の大きな損失の可能性

  2. MACD パラメータが正しくない場合,値があまりない信号が発生する可能性があります.

  3. 厳格な時間フィルターは 良い取引機会を見逃すかもしれません

対策:

  1. 損失を制限するためにストップ・ロース/プロフィート・テイクを設定します.

  2. MACD パラメータを最適化して 最適な組み合わせを決定する.

  3. 地域動向を特定するための指標を追加します

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

  1. 異なるパラメータの組み合わせをテストして 最適値を見つけます

  2. ストップ・ロスのメカニズムを追加します

  3. EMA,KDJのような指標を足して 逆転点を決定します

  4. 音量指標を追加して 差異を回避します

概要

この戦略は,ハイキン・アシのキャンドルスタイクで価格アクションをスムーズにし,トレンドをフォローする量子戦略を実施するためにMACDトレディングビュー指標でトレンド方向とエントリーシグナルを決定する.通常のMACD戦略と比較して,より明確なトレンド識別のためにいくつかのノイズをフィルタリングする.パラメータ最適化,ストップ損失,コンボインジケーターのさらなる強化により,安定性と収益性が向上する.


/*backtest
start: 2023-11-18 00:00:00
end: 2023-12-18 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("MACD ASHI BARS .v1 ", overlay=false,default_qty_type = strategy.percent_of_equity, default_qty_value = 100,commission_type=strategy.commission.percent,commission_value=0.1,slippage=1)

// Calculation HA Values 
haopen  = 0.0
haclose = (open + high + low + close) / 4
haopen := na(haopen[1]) ? (open + close) / 2 : (haopen[1] + haclose[1]) / 2
hahigh  = max(high, max(haopen, haclose))
halow   = min(low,  min(haopen, haclose))

// HA colors
hacolor = haclose > haopen ? color.green : color.red
src=haclose



fastmacd = input(12,title='MACD Fast  Line Length')
slowmacd = input(26,title='MACD Slow Line Length')
signalmacd = input(9,title='Signal Line Length')

macdslowline1 = sma(src,slowmacd)
macdslowline2 = sma(macdslowline1,slowmacd)
DEMAslow = ((2 * macdslowline1) - macdslowline2 )

macdfastline1 = sma(src,fastmacd)
macdfastline2 = sma(macdfastline1,fastmacd)
DEMAfast = ((2 * macdfastline1) - macdfastline2)

MACDLine = (DEMAfast - DEMAslow)

SignalLine = sma(MACDLine, signalmacd)

delta = MACDLine-SignalLine




swap1 = delta>0?color.green:color.red



plot(delta,color=swap1,style=plot.style_columns,title='Histo',histbase=0,transp=20)
p1 = plot(MACDLine,color=color.blue,title='MACD Line')
p2 = plot(SignalLine,color=color.red,title='Signal')
fill(p1, p2, color=color.blue)
hline(0)



yearfrom = input(2020)
yearuntil =input(2042)
monthfrom =input(1)
monthuntil =input(12)
dayfrom=input(1)
dayuntil=input(31)







if ( crossover(delta,0)  and   year >= yearfrom and year <= yearuntil and month>=monthfrom and month <=monthuntil and dayofmonth>=dayfrom and dayofmonth < dayuntil) 
    strategy.entry("MMAL", strategy.long, stop=close, oca_name="TREND",  comment="AL")
    
else
    strategy.cancel(id="MMAL")


if (  crossunder(delta,0) and  year >= yearfrom and year <= yearuntil and month>=monthfrom and month <=monthuntil and dayofmonth>=dayfrom and dayofmonth < dayuntil ) 

    strategy.entry("MMSAT", strategy.short,stop=close, oca_name="TREND",  comment="SAT")
else
    strategy.cancel(id="MMSAT")
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    


もっと