
이 전략은 MACD 운동 지표와 EMA 평균선을 결합한 양방향 거래 시스템이다. 그것은 주로 MACD 지표의 교차 신호와 가격의 EMA에 대한 위치에 따라 진입 시기를 판단한다. 이 전략은 2:1의 리스크/수익 비율을 채택하고, 5분 시간 주기에서 작동할 수 있으며, 유연한 변수 조정을 지원한다.
전략의 핵심 논리는 다음과 같은 핵심 조건에 기초합니다.
이것은 합리적으로 설계된 전략 시스템이며, 기술 지표와 결합하여 비교적 신뢰할 수 있는 거래 신호를 제공합니다. 약간의 잠재적인 위험이 있지만, 합리적인 최적화와 위험 관리를 통해 이 전략은 실전 응용에 좋은 잠재력을 가지고 있습니다. 실전 사용 전에 충분한 피드백을 수행하고, 특정 시장 상황에 따라 매개 변수를 조정하는 것이 좋습니다.
/*backtest
start: 2025-02-12 00:00:00
end: 2025-02-19 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © @DieBartDie
//@version=5
strategy("Strategy with MACD and EMA", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// Editable parameters
ema_length = input.int(200, title="EMA Length")
tp_ratio = input.float(2.0, title="Take Profit Ratio (%)") // Take Profit ratio
sl_ratio = input.float(1.0, title="Stop Loss Ratio (%)") // Stop Loss ratio
// MACD configuration
fast_length = input.int(12, title="MACD Fast Length")
slow_length = input.int(26, title="MACD Slow Length")
signal_length = input.int(9, title="MACD Signal Length")
// Operation type configuration
operation_type = input.string("Long & Short", title="Operation Type", options=["Long", "Short", "Long & Short"])
// Indicators
ema_200 = ta.ema(close, ema_length)
[macd, signal, _] = ta.macd(close, fast_length, slow_length, signal_length)
// Conditions for LONG entries
price_above_ema = close > ema_200
macd_above_signal = ta.crossover(macd, signal) // MACD crosses above the signal line
macd_below_zero = macd < 0
long_condition = price_above_ema and macd_above_signal and macd_below_zero
// Conditions for SHORT entries
price_below_ema = close < ema_200
macd_below_signal = ta.crossunder(macd, signal) // MACD crosses below the signal line
macd_above_zero = macd > 0
short_condition = price_below_ema and macd_below_signal and macd_above_zero
// Calculate Stop Loss and Take Profit
stop_loss_long = close * (1 - sl_ratio / 100)
take_profit_long = close * (1 + tp_ratio / 100)
stop_loss_short = close * (1 + sl_ratio / 100)
take_profit_short = close * (1 - tp_ratio / 100)
// Execute LONG position if conditions are met
if (operation_type == "Long" or operation_type == "Long & Short") and long_condition
strategy.entry("Long", strategy.long)
strategy.exit("Take Profit/Stop Loss", "Long", stop=stop_loss_long, limit=take_profit_long)
// Execute SHORT position if conditions are met
if (operation_type == "Short" or operation_type == "Long & Short") and short_condition
strategy.entry("Short", strategy.short)
strategy.exit("Take Profit/Stop Loss", "Short", stop=stop_loss_short, limit=take_profit_short)
// Plot the EMA
plot(ema_200, color=color.orange, linewidth=2, title="EMA 200")