
この戦略は,EMA 34の動力交差を入場信号として使用したトレンド追跡戦略である.これは,価格破裂のEMA動力線の突破信号とEMA 34の均等線の黄金の交差を組み合わせて取引信号を生成する.
この戦略は,まず,close,high,lowの34周期EMA平均線を計算し,emaClose,emaHigh,emaLowと命名する.そして,価格がemaHighとemaLowを突破するかどうかによって,買入と売却のシグナルを生成する.
具体的には,クローズ価格がemaHighを超えると,買入シグナルが生成され,クローズ価格がemaLowを下ると,売り出しシグナルが生成される.シグナルが生成されると,当時のクローズ価格で入場し,ストップを100点,ストップロスを50点に設定する.
EMA 34の動態指標を活用して市場のトレンドを把握し,トレンド追跡を行う.
この戦略の最大の利点は,均線の黄金の交差信号と価格の突破信号を同時に組み合わせることで,入場時間をより正確にし,偽の信号を効果的にフィルターできるという点にある.さらに,EMAはトレンド追跡ツールとして,戦略に市場トレンドをタイムリーに捉え,トレンド追跡取引を実現するのに役立つ.
この戦略の主なリスクは,連続的な損失を複数発生させやすい状況にある.市場が短時間的な調整震動の後,再び上昇傾向を開始するときに,この戦略は,しばしばポジション損失を減らせる可能性がある.さらに,トレンド追跡戦略として,それは状況を整頓する際にうまく利益を得ることができない.
戦略の勝利率を向上させるには,ストップ・ローを適切に調整したり,他の指標を追加したりすることで最適化することができます.
この戦略は以下の方向から最適化できます.
偽の突破に巻き込まれるのを避けるために,取引量指標など,他の指標のフィルターを追加します.
EMA周期パラメータを最適化し,この品種に適した周期パラメータに調整する.
戦略の安定性を向上させるには,単なるストップ・ストップ・ポイントではなく,このような退出の仕組みを活用する.
流動性のフィルターを追加し,流動性の低い取引を回避することで,滑り場損失を減らすことができます.
この戦略は,EMAの動態指標に基づいたトレンド追跡戦略として,高い実用性を持っています.それは,価格の突破信号とEMAの黄金交差信号を同時に組み合わせて,新しいトレンド方向を効果的に発見することができます.特定のパラメータと退出機構の最適化により,戦略の安定性をさらに強化することができます.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("EMA 34 Crossover Strategy_4", overlay=true)
length = 34
exitPoints = 50
emaClose = ta.ema(close, length)
emaHigh = ta.ema(high, length)
emaLow = ta.ema(low, length)
var float[] entryPrices = array.new_float()
var float[] exitLevels = array.new_float()
// Long entry condition: Price crosses above EMA 34 high
enterLong = ta.crossover(close, emaHigh)
// Short entry condition: Price crosses below EMA 34 low
enterShort = ta.crossunder(close, emaLow)
// Exit condition for both long and short trades
exitLong = array.size(entryPrices) > 0 ? close >= array.get(entryPrices, array.size(entryPrices) - 1) + exitPoints : false
exitShort = array.size(entryPrices) > 0 ? close <= array.get(entryPrices, array.size(entryPrices) - 1) - exitPoints : false
if (enterLong)
array.push(entryPrices, close)
array.push(exitLevels, close + exitPoints)
strategy.entry("Buy", strategy.long)
if (enterShort)
array.push(entryPrices, close)
array.push(exitLevels, close - exitPoints)
strategy.entry("Sell", strategy.short)
if (exitLong)
strategy.close("Buy")
if (exitShort)
strategy.close("Sell")
plot(emaClose, color=color.blue, title="EMA 34 Close")
plot(emaHigh, color=color.red, title="EMA 34 High")
plot(emaLow, color=color.green, title="EMA 34 Low")