Эта стратегия является последовательной торговой системой, основанной на двойной экспоненциальной скользящей средней (EMA), реализующей лимитные заказы на уровне EMA20. Она использует консервативный подход к управлению деньгами, используя только 10% собственного капитала на сделку и включая уровни получения прибыли и остановки потери для управления рисками.
Основная логика стратегии основана на нескольких ключевых элементах: 1. Использует EMA300 в качестве фильтра тренда, рассматривая длинные позиции только тогда, когда цена выше EMA300, обеспечивая направление торговли в соответствии с основным трендом. 2. Ограничивают ордера на покупку на уровне EMA20, когда условия тренда выполнены, что позволяет вводить по относительно более низким ценам во время отступлений к поддержанию скользящей средней. 3. Внедряет фиксированные процентные уровни получения прибыли и стоп-лосса, не допуская дефолта до 10% для целей прибыли и 5% для стоп-лосса, сохраняя соотношение риск-вознаграждение выше 2: 1. 4. Использует размещение позиций на уровне 10% от собственного капитала счета, эффективно снижая риск по сделке за счет консервативного управления деньгами.
Эта стратегия сочетает в себе скользящую среднюю систему с строгими правилами контроля рисков для создания относительно надежной торговой системы. Ее основные сильные стороны заключаются в ее тенденциях и комплексных механизмах управления рисками, оптимизации входных цен через лимитные ордера при сохранении консервативного управления деньгами.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-09 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Limit Buy at EMA20 (Last 30 Days)", overlay=true) // Inputs for EMAs ema20Length = input.int(30, title="EMA 20 Length") ema300Length = input.int(300, title="EMA 300 Length") tpPercentage = input.float(10.0, title="Take Profit (%)", step=0.1) / 100 slPercentage = input.float(5.0, title="Stop Loss (%)", step=0.1) / 100 // Stop loss at 15% // Calculate EMAs ema20 = ta.ema(close, ema20Length) ema300 = ta.ema(close, ema300Length) // Plot EMAs plot(ema20, color=color.blue, title="EMA 20") plot(ema300, color=color.red, title="EMA 300") // Limit backtesting to the last 30 days startTime = timestamp(year(timenow), month(timenow), dayofmonth(timenow) - 30, 0, 0) if (time < startTime) strategy.close_all() strategy.cancel_all() // Entry Condition: Price above EMA300 longCondition = close > ema300 and time >= startTime // Calculate position size (10% of equity) positionSize = strategy.equity * 0.10 / ema20 // Use EMA20 as the limit price // Place a limit buy order at EMA20 if (longCondition) strategy.order("Limit Buy", strategy.long, qty=positionSize, limit=ema20) // Calculate TP and SL levels tpPrice = ema20 * (1 + tpPercentage) slPrice = ema20 * (1 - slPercentage) // Set take profit and stop loss if (strategy.position_size > 0) strategy.exit("Take Profit/Stop Loss", "Limit Buy", stop=slPrice, limit=tpPrice)