Эта стратегия является автоматизированной торговой системой, основанной на индикаторе MACD, включающей в себя динамические механизмы стоп-лосса и берущей прибыли. Основная стратегия определяет торговые сигналы через перекрестки линии MACD и линии сигнала, интегрируя при этом процентные стоп-лосса, цели прибыли и последующие остановки для управления рисками. Стратегия рассчитывает индикатор MACD с использованием разницы между быстрыми и медленно движущимися средними показателями, выявляет точки обратного тренда рынка через перекрестки линии сигнала для принятия соответствующих торговых решений.
Основная логика включает в себя несколько ключевых компонентов:
Эта стратегия создает надежную автоматизированную торговую систему с помощью кроссоверных сигналов MACD и комплексного управления рисками. Хотя есть возможности для оптимизации, основная структура уже хорошо разработана. Благодаря постоянной оптимизации и улучшению стратегия имеет потенциал для поддержания стабильной производительности в различных рыночных условиях. Для реализации реального времени рекомендуется проводить тщательное тестирование и корректировать параметры в соответствии с конкретными характеристиками рынка.
/*backtest start: 2024-01-01 00:00:00 end: 2024-11-01 00:00:00 period: 12h basePeriod: 12h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © traderhub //@version=5 strategy("MACD Strategy with Settings", overlay=true) // Параметры MACD в контрольной панели fastLength = input.int(12, title="Fast Length", minval=1, maxval=50) slowLength = input.int(26, title="Slow Length", minval=1, maxval=50) signalSmoothing = input.int(9, title="Signal Smoothing", minval=1, maxval=50) // Параметры риска stopLossPerc = input.float(1, title="Stop Loss (%)", step=0.1) // Стоп-лосс в процентах takeProfitPerc = input.float(2, title="Take Profit (%)", step=0.1) // Тейк-профит в процентах trailStopPerc = input.float(1.5, title="Trailing Stop (%)", step=0.1) // Трейлинг-стоп в процентах // Вычисляем MACD [macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalSmoothing) // Показываем MACD и сигнальную линию на графике plot(macdLine, color=color.blue, title="MACD Line") plot(signalLine, color=color.red, title="Signal Line") hline(0, "Zero Line", color=color.gray) // Условия для покупки и продажи longCondition = ta.crossover(macdLine, signalLine) // Покупка при пересечении MACD вверх сигнальной линии shortCondition = ta.crossunder(macdLine, signalLine) // Продажа при пересечении MACD вниз сигнальной линии // Расчет стоп-лосса и тейк-профита var float longStopLevel = na var float longTakeProfitLevel = na if (longCondition) longStopLevel := strategy.position_avg_price * (1 - stopLossPerc / 100) longTakeProfitLevel := strategy.position_avg_price * (1 + takeProfitPerc / 100) strategy.entry("Long", strategy.long) if (strategy.position_size > 0) // Установка стоп-лосса и тейк-профита strategy.exit("Take Profit/Stop Loss", "Long", stop=longStopLevel, limit=longTakeProfitLevel, trail_offset=trailStopPerc) // Закрытие позиции при медвежьем сигнале if (shortCondition) strategy.close("Long") strategy.entry("Short", strategy.short)