この戦略は,MACD指標の速い線と遅い線のクロスオーバーを使用してエントリーと出口を決定する. EMA指標は,トレンド方向を判断するためにも使用される. 速い線が下からスローラインを突破し,MACD値は0未満であるとき,長い; 速い線が上からスローラインを突破し,MACD値は0を超えると短い. ストップ損失出口は,シグナルが生成されたときのEMA値に設定され,利益を取ることはエントリー価格の2倍に設定される.
MACDの高速線が下からスローラインを突破し,MACD値は0を下回ると,価格の短期移動平均が上昇し,インパクトが強化し始めることを示し,ロングポジションを取ることができる.高速線が上からスローラインを突破し,MACD値は0を超えると,価格の短期移動平均が低下し,インパクトが弱くなり始めることを示し,ショートポジションを取ることができる.
EMA指標は,全体的なトレンド方向を判断する. EMA値の高さは上昇傾向を示し,低い値は下落傾向を示します. EMAが上昇傾向を示したときのみ戦略は長くなり,EMAが反傾向取引を避けるために下落傾向を示したときのみ戦略は短くなります.
ストップ・ロスは,シグナル発生時のEMA値に設定される. EMAはトレンドをよく判断することができる. EMA値として設定することで,以前の低点または高点でストップ・ロスが取られる可能性が低下する. 利益を取ることはエントリー価格の2倍に設定され,リスク報酬比が2になる.
この戦略は,MACDとEMA指標を組み合わせて,エントリータイミングとトレンド方向をより良く決定する.ストップロスの方法は上昇と減少を追求することを避ける.リスク報酬比は2で,比較的保守的なパラメータ設定である.MACD指標のパラメータは,市場の変化に柔軟に対応するために調整することができる.
MACDインジケーターは平均遅れがあり,インジケーターターンは価格ターンを遅らせる傾向があります.戦略は特定のエントリーポイントを決定することはできません.いくつかの盲点があります.ストップ・ロスは変動する価格アクションによって引き起こす傾向があります.テイク・プロフィットポイントは早めにまたは遅れてヒットすることがあります.
この戦略は,MACDとEMA指標を組み合わせてエントリータイミングとトレンド方向を決定する.ストップ・ロストとテイク・プロフィートのシンプルで合理的な方法を使用する.より良い戦略結果を得るため,MACDの遅れ,ストップ・ロストとテイク・プロフィートのパラメータなどにさらなる最適化を行うことができます.
/*backtest start: 2022-12-21 00:00:00 end: 2023-12-27 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("MACD & EMA 200 Strategy", overlay=true) // MACD Settings fastLength = input(12, title="Fast Length") slowLength = input(26, title="Slow Length") signalLength = input(9, title="Signal Length") src = close [macdLine, signalLine, _] = ta.macd(src, fastLength, slowLength, signalLength) // 200 EMA ema200 = ta.ema(src, 200) plot(ema200, title="200 EMA", color=color.red) // Long Condition longCondition = ta.crossover(macdLine, signalLine) and macdLine < 0 and close > ema200 if (longCondition and strategy.position_size <= 0) strategy.entry("Long", strategy.long) longStopLoss = ema200 longTakeProfit = close + 2 * (close - ema200) strategy.exit("Exit Long", "Long", stop=longStopLoss, limit=longTakeProfit) // Short Condition shortCondition = ta.crossunder(macdLine, signalLine) and macdLine > 0 and close < ema200 if (shortCondition and strategy.position_size <= 0) strategy.entry("Short", strategy.short) shortStopLoss = ema200 shortTakeProfit = close - 2 * (ema200 - close) strategy.exit("Exit Short", "Short", stop=shortStopLoss, limit=shortTakeProfit)