この記事では,一式化されたMACD指標に基づく量化取引戦略について詳しく説明する.この戦略は,信号の質を向上させるために,クラシックMACD戦略を最適化している.
戦略の原則
この戦略の核心は,誤差を減らすために従来のMACD指標を統一的に処理することです.具体的ステップは以下の通りです.
短期と長期のHull移動平均を計算し,その交差関係から大傾向を判断する.
MACDの差値を計算する.
MACD指標を一定の周期で統一処理する.
MACDの均線を計算し,取引トリガーを形成する.
集約MACD上穿はトリガーの均線化で多し,下穿は空し;
フィルタリングは,均等な線形関係からして,大きなトレンドを逃さないようにします.
ストップ・ローズ・ストップポイントを設定し,単一取引のリスクをコントロールする.
統一処理により,MACD差の絶対幅を縮小させ,その結果,ノイズを軽減し,信号品質を向上させる.傾向フィルタリングは,局所的な調整による逆操作を回避する.止損停止は単一損失を制御する.
2 戦略的優位性
この戦略は,単純なMACD戦略に比べて,統一処理が行われることが最大の利点であり,これはMACDの誤差率を効果的に削減し,信号の正確性を向上させる.
もう1つの優位性は,トレンド判断のフィルターが加えられ,トレンドの逆操作を避けることです. これは,戦略の安定性を高めます.
最後に,ストップ・ストップ条件を設定することで,各取引のリスク・リターンを制御し,積極的な資金管理を実現できます.
3 潜在的リスク
この戦略は最適化されていますが,実際の使用では以下のリスクにも注意してください.
まず,パラメータの最適化が難しく,不適切な設定により過適合が起こりうる.
第二に,止損設定があまりにも近づくと破られ,損失が拡大する可能性があります.
最後に,トレンドが変化したときに,信号が遅滞して,適切なタイミングで反応できない可能性があります.
内容と要約
この記事では,MACD指標を統一処理する量化取引戦略について詳しく説明する.この戦略は,クラシックMACD戦略を改良し,信号の質を効果的に向上させ,リスク管理機構に加入する.しかし,パラメータ最適化の難度や止損設定などの問題には依然として注意が必要である.全体的に,この戦略は,実行可能なMACD戦略最適化思考を提供する.
/*backtest
start: 2023-08-14 00:00:00
end: 2023-09-13 00:00:00
period: 6h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
// Normalized MACD but heavily modified by SeaSide420. Normalized MACD v420
strategy("Normalized MACD (v420)",shorttitle="NmacD(v420)",overlay=true, default_qty_type=strategy.percent_of_equity, max_bars_back=1440, default_qty_value=100, calc_on_order_fills= true, calc_on_every_tick=true, pyramiding=0)
p=input(ohlc4)
jah=input(title="HullMA cross",defval=21)
tsp = input(34,title='Trigger')
np = input(50,title='Normalize')
SL = input(defval=-420.00, title="Stop Loss in $", step=1)
TP = input(defval=31.00, title="Target Point in $", step=1)
ot=1
n2ma=2*wma(p,round(jah/2))
nma=wma(p,jah)
diff=n2ma-nma
sqn=round(sqrt(jah))
n2ma1=2*wma(p[2],round(jah/2))
nma1=wma(p[2],jah)
diff1=n2ma1-nma1
sqn1=round(sqrt(jah))
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
sh=n1
lon=n2
ratio = min(sh,lon)/max(sh,lon)
Mac = (iff(sh>lon,2-ratio,ratio)-1)
MacNorm = ((Mac-lowest(Mac, np)) /(highest(Mac, np)-lowest(Mac, np)+.000001)*2)- 1
MacNorm2 = iff(np<2,Mac,MacNorm)
Trigger = wma(MacNorm2, tsp)
Hist =(MacNorm2-Trigger)
Hist2= Hist>1?1:Hist<-1?-1:Hist
teh=MacNorm2+MacNorm2[2]-MacNorm2[1]
closelong = strategy.openprofit<SL or strategy.openprofit>TP or teh[1]<Trigger[1] and n1<n2[1]
if (closelong)
strategy.close("Long")
closeshort = strategy.openprofit<SL or strategy.openprofit>TP or teh[1]>Trigger[1] and n1>n2[1]
if (closeshort)
strategy.close("Short")
longCondition = Trigger<0 and teh>Trigger and MacNorm>Trigger and strategy.opentrades<ot
if (longCondition)
strategy.entry("Long",strategy.long)
shortCondition = Trigger>0 and teh<Trigger and MacNorm<Trigger and strategy.opentrades<ot
if (shortCondition)
strategy.entry("Short",strategy.short)