この戦略は,価格線を平滑させるためにハイキン・アシのキャンドルスタイクを計算し,中長期のトレンドを追跡する定量戦略を実装し,取引信号を生成するためにMACD指標を組み合わせます.
ハイキン・アシ・オープン, 閉店, 高値,低値を計算して ハイキン・アシ・キャンドルスタイクと平らな価格動向を図表します
MACD パラメータを設定します 速度の長さ12 遅さの長さ26 信号長さ9
DEAのスローライン,DEAのファーストライン,MACDヒストグラムを計算します.
MACD ヒストグラムが0を超えるとロング; 0を下回るとショート.
指定された時間帯に取引を制限するために,年,月,日フィルターを追加します.
ハイキン・アシのろうそくは 市場騒音を効果的にフィルタリングして 傾向を特定します
MACDは明確なトレンド・シグナルを提供します.
ハイキン・アシとMACDを組み合わせると信号の質と収益性が向上します
タイムフィルターは,過去のパフォーマンスに基づいて取引スケジュールを最適化するのに役立ちます.
トレンド逆転時の大きな損失の可能性
MACD パラメータが正しくない場合,値があまりない信号が発生する可能性があります.
厳格な時間フィルターは 良い取引機会を見逃すかもしれません
対策:
損失を制限するためにストップ・ロース/プロフィート・テイクを設定します.
MACD パラメータを最適化して 最適な組み合わせを決定する.
地域動向を特定するための指標を追加します
異なるパラメータの組み合わせをテストして 最適値を見つけます
ストップ・ロスのメカニズムを追加します
EMA,KDJのような指標を足して 逆転点を決定します
音量指標を追加して 差異を回避します
この戦略は,ハイキン・アシのキャンドルスタイクで価格アクションをスムーズにし,トレンドをフォローする量子戦略を実施するために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")