
この戦略は,MACD指標の短期トレンドと200日平均線を組み合わせて,長期トレンドを判断し,MACD金叉と低水準の走行時に,価格が200日平均線を破った場合,ストップを追跡する方法で長ポジションを構築する.この戦略は,主にMACD指標の金叉死叉と200日平均線の位置関係を利用して,潜在的な機会を識別する.
この戦略は,MACD指数と200日平均線の2つの技術指標に基づいて判断され,具体的論理は以下の通りである.
MACD指標の快線,慢線,MACD線を計算する. 快線パラメータは12日,慢線パラメータは26日,信号線パラメータは9日である.
200日間の指数移動平均EMAを計算する.
MACD快速・遅い線金叉 ((快線で遅い線を貫く),MACD線が負値である ((低位走行)),閉盘価格が200日線以上であるとき,多入場する。
入場後,入場価格の0.5%にストップ・ロスを設定し,入場価格の1%をターゲットにします.
価格がストップまたはターゲット価格に触れた場合,ストップまたはストップはポジションを退出する.
決算前15:15に強制的に平仓を退場させる.
取引時間は毎日9時から15時15分まで設定されています.
MACD指標によって短期トレンドの方向と強さを判断し,200日平均線と組み合わせて長期トレンドの方向を判断し,トレンド追跡操作を実現する. ストップ・ローズ設定が小さい,ターゲット・プライスが大きい,利益の最大化を実現する. 毎日強制離場は,夜間のリスクを制御する.
この戦略の利点は以下の通りです.
複数の指標を組み合わせると,判断信号はより正確である.MACDは短期トレンドと強さを判断し,200日平均線は主要なトレンドの方向を判断する.
止損幅は小さいので,一定の撤回を耐えることができる.止損は0.5%のみで,トレンドの中期走行を追跡するのに有利である.
目標利益率が高く,利益の余地が大きい.目標は入場価格の1%で,トレンド戦略を満たす利益の最大化.
日々の平定を強制することで,夜間の大幅な変動のリスクを回避し,リスクをコントロールできます.
戦略はシンプルでわかりやすく,理解し複製しやすく,初心者向けに適しています.
この戦略にはいくつかのリスクがあります.
破綻リスク。 急速な上昇の後,価格が反転して下落し,間に合わないストップ・ローズで大きな損失を招く可能性がある。 トレーラー・ストップ・モードを設定して,価格に応じてリアルタイムでストップ・ポジションを調整することができる。
トレンド判断の失敗リスク。MACD指数と平均線は誤った信号を発し,非トレンド市場に入ることで損失を招く可能性がある。取引量指数と組み合わせたフィルタリングを考慮して,トレンド加速段階でのみ入場を確保することができる。
夜間波動のリスク. 強制的な毎日の平仓の仕組みが設定されている場合でも,夜間市場では,大きな損失をもたらす断層が発生する可能性があります. これは,トレーダーが一定程度のリスクを担うと同時に,全体的なポジションの規模を制御する必要があります.
この戦略は以下の方向から最適化できます.
取引量指数と組み合わせて,実際のトレンドを判断し,震動調整で誤入場を避ける.例えば,取引量が前期10%以上で入場しなければならないと設定する.
ダイナミック・ストップ・モードを設定する.入場後,価格に応じてリアルタイムでストップ・ポジションを調整し,より多くの利益をロックするためにストップを追跡する.
MACDパラメータの組み合わせを最適化し,異なるパラメータが異なる市場での実効性をテストする.パラメータの設定は信号の感度に影響する.
100日線,150日線など,他の平均線指標をテストして,どの平均線が傾向と一致度が高いかを判断する.
再入場メカニズムを追加する。 強制的な日々の出場を設定したため,後続を逃す可能性がある。 再入場シグナルを追加して,次の日にポジションを継続する。
この戦略は,MACD指数と200日平均線判断信号を統合し,短期指標が継続的な信号を発信するときに,トレンド性入場を行い,止損と止まりの仕組みを設定する.同時に,毎日の平仓制御を強制する.戦略の理念は,シンプルで,操作が簡単で,初心者学習にも適し,他の戦略にモジュールとして統合することもできる.しかし,間違いのリスクと失敗のリスクを判断する一定の傾向も存在し,これはトレーダーに一定のリスク承受能力が必要である.次のステップは,止まりの方法,パラメータの選択,取引量過剰などの面で最適化され,戦略のprofit因子を向上させることができる.
/*backtest
start: 2023-11-12 00:00:00
end: 2023-12-12 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("MACD and 200 EMA Long Strategy", shorttitle="MACD200EMALong", overlay=true)
// Input parameters
fastLength = input(12, title="Fast Length")
slowLength = input(26, title="Slow Length")
signalLength = input(9, title="Signal Length")
ema200Length = input(200, title="200 EMA Length")
stopLossPercentage = input(0.5, title="Stop Loss Percentage")
targetPercentage = input(1, title="Target Percentage")
// Trading session
startHour = input(09, title="Start Hour", minval=0, maxval=23)
startMinute = input(00, title="Start Minute", minval=0, maxval=59)
endHour = input(15, title="End Hour", minval=0, maxval=23)
endMinute = input(15, title="End Minute", minval=0, maxval=59)
// Calculate MACD
[macdLine, signalLine, _] = macd(close, fastLength, slowLength, signalLength)
// Calculate 200-period EMA
ema200 = ema(close, ema200Length)
// Conditions for entering a long position
longCondition = crossover(macdLine, signalLine) and macdLine < 0 and close > ema200 and hour < 13
// Calculate stop loss and target levels only once at the entry
var float stopLossLevel = na
var float targetLevel = na
if (longCondition)
stopLossLevel := close * (1 + stopLossPercentage / 100)
targetLevel := close * (1 + targetPercentage / 100)
// Trading session condition
intradayCondition = true
// Strategy logic
strategy.entry("Long", strategy.long, when=longCondition and intradayCondition)
strategy.exit("Take Profit/Stop Loss", from_entry="Long", loss=stopLossLevel, profit=targetLevel)
// Force exit if the current close is below the stop loss level
if (not na(stopLossLevel) and close < stopLossLevel)
strategy.close("Long")
// Exit the trade if the current close is greater than or equal to the target level
if (not na(targetLevel) and close >= targetLevel)
strategy.close("Long")
// Manually force exit at 3:15 PM
if (hour == 15 and minute == 15)
strategy.close("Long")
// Plotting the EMA, target, and stop loss on the chart
plot(ema200, color=color.blue, title="200 EMA")
plot(stopLossLevel, color=color.red, title="Stop Loss", linewidth=2)
plot(targetLevel, color=color.green, title="Target", linewidth=2)
// Plot entry arrow
plotshape(series=longCondition and intradayCondition, title="Long Entry", color=color.green, style=shape.triangleup, location=location.belowbar)