
この戦略は,Heikin-Ashi線,平らなK線価格を計算し,MACD指標と組み合わせて取引信号を発信し,中長線トレンドを追跡する量化取引戦略を実現する.
ハイキン・アシの開値,閉値,最高値,最低値を計算し,ハイキン・アシの線を描き,平らなK線価格動きを図る.
MACDパラメータを設定する:快線長12 ,慢線長26 ,信号線長9。
DEA慢線,DEA快線,MACD差値の計算.MACD柱状図を描画する.
MACD差値が上から0になったとき,多めにする. MACD差値が下から0になったとき,空にする.
指定された期間内での取引のみに,年,月,日フィルター条件を設定します.
Heikin-Ashiの線は,市場騒音を効率的にフィルターし,トレンドを識別します.
MACDは,より明確なトレンドの買取・売買のポイントを提供する.
Heikin-AshiとMACDの組み合わせにより,取引先の質が向上し,取引の収益性が向上します.
タイムフィルター条件を設定し,過去データによるトレードタイムを決定し,率を向上させる.
市場が逆転すると,大きな損失が予想されます.
MACDパラメータの設定が不適切で,無効信号が過剰に発生する.
タイムフィルター条件が厳しすぎて,良い取引機会が逃れることもある.
対策として
ストップ・ストップ・ストップを設定し,単発損失を制御する.
MACDパラメータを最適化し,最適なパラメータ組み合わせを決定する.
他の指標と組み合わせると,局所的な傾向を判断する.
異なるパラメータの組み合わせをテストし,最適なパラメータを探します.
ストップ・ロスを残す/ストップ・ロスを追跡するなどのストップ・メカニズムを追加する.
EMA,KDJなどの指標を組み合わせて判断する転換点.
添加量能指数, 量能分散を回避する
この戦略は,Heikin-Ashi線平滑価格を計算し,MACD Tradingview指標と連携してトレンド方向とエントリーポイントを判断することで,トレンド追跡に基づく定量化戦略を実現している.通常の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")