
Стратегия представляет собой торговую систему, основанную на скрещивании средне- и долгосрочных индексных движущихся средних ((EMA), в сочетании с динамическим управлением позициями и механизмом контроля риска. Стратегия идентифицирует рыночные тенденции с помощью скрещивания 21-циклических и 55-циклических ЭМА, а также динамически корректирует размер торговых позиций в соответствии с пользовательскими рискованными коэффициентами прибыли и процентами риска, что обеспечивает точный контроль риска.
Основная логика стратегии основана на перекрестных сигналах EMA двух временных циклов. Когда 21-циклическая EMA пересекает 55-циклическую EMA вверх, система идентифицирует это как тенденцию к повышению и запускает многосигнальный сигнал. Когда 21-циклическая EMA пересекает 55-циклическую EMA вниз, система идентифицирует это как тенденцию к снижению и запускает пустой сигнал.
Стратегия создает целостную торговую систему, сочетающую трендовые сигналы EMA с динамическим управлением рисками. Основные преимущества стратегии заключаются в ее научном управлении позициями и механизме контроля риска, но все же требуется соответствующая оптимизация параметров в соответствии с рыночной обстановкой и личными предпочтениями в отношении риска.
/*backtest
start: 2024-02-21 00:00:00
end: 2024-07-11 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Carlos Humberto Rodríguez Arias
//@version=5
strategy("EMA Crossover Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// EMA periods
MT_EMA = input.int(21, title="Medium Term EMA")
LT_EMA = input.int(55, title="Long Term EMA")
RR = input.float(2.0, title="Risk-Reward Ratio") // User-defined RR
RiskPercent = input.float(1.0, title="Risk Percentage") // User-defined risk percentage
// Calculate EMAs
Signal_MT_EMA = ta.ema(close, MT_EMA)
Signal_LT_EMA = ta.ema(close, LT_EMA)
// Plot EMAs
plot(Signal_MT_EMA, title="Medium Term EMA", color=color.orange, linewidth=2)
plot(Signal_LT_EMA, title="Long Term EMA", color=color.blue, linewidth=2)
// Determine trend conditions
uptrend = ta.crossover(Signal_MT_EMA, Signal_LT_EMA)
downtrend = ta.crossunder(Signal_MT_EMA, Signal_LT_EMA)
// Stop-Loss Calculations
longStopLoss = ta.lowest(low, 2) // SL for buy = lowest low of last 2 candles
shortStopLoss = ta.highest(high, 2) // SL for sell = highest high of last 2 candles
// Take-Profit Calculations
longTakeProfit = close + (close - longStopLoss) * RR
shortTakeProfit = close - (shortStopLoss - close) * RR
// Calculate Position Size based on Risk Percentage
capital = strategy.equity * (RiskPercent / 100)
longPositionSize = capital / (close - longStopLoss)
shortPositionSize = capital / (shortStopLoss - close)
// Execute Buy Order
if uptrend
strategy.entry("Long", strategy.long, qty=longPositionSize)
strategy.exit("Long Exit", from_entry="Long", stop=longStopLoss, limit=longTakeProfit)
// Execute Sell Order
if downtrend
strategy.entry("Short", strategy.short, qty=shortPositionSize)
strategy.exit("Short Exit", from_entry="Short", stop=shortStopLoss, limit=shortTakeProfit)