Стратегия следования за трендом с несколькими целевыми скользящими средними пересечениями

EMA SL TP
Дата создания: 2025-02-08 15:22:15 Последнее изменение: 2025-02-08 15:22:15
Копировать: 6 Количество просмотров: 391
1
Подписаться
1617
Подписчики

Стратегия следования за трендом с несколькими целевыми скользящими средними пересечениями

Обзор

Стратегия представляет собой систему отслеживания трендов, основанную на перекрестных сигналах EMA. Она использует 34-циклические EMA в качестве основного индикатора тренда, в сочетании с механизмами сбора прибыли и контроля риска, что позволяет полностью автоматизировать торговлю.

Стратегический принцип

Стратегия основана на следующих основных принципах:

  1. Использование 34-циклической EMA в качестве индикатора тренда
  2. Когда цена пересекает EMA вверх, открывайте позицию в позиции EMA
  3. Применение тройной цели прибыли (5%, 10%, 15%) для достижения сплошной сборки
  4. Стойкость 7% для контроля риска
  5. Задержка 10% позиции в качестве долгосрочной позиции, чтобы уловить большую тенденцию
  6. Избегайте переплаты с минимальным интервалом в 8 часов
  7. Поддержка фиксированного объема торговли и динамического размера позиций

Стратегические преимущества

  1. Дизайн с несколькими прибыльными целями, хорошо работающий в разных рыночных условиях
  2. Вы можете воспользоваться преимуществами больших тенденций, сохранив часть позиций в качестве долгосрочных позиций.
  3. Поддержка торговой лейборизации, которая может быть скорректирована в соответствии с риском.
  4. Механизмы, предотвращающие чрезмерную торговлю
  5. Гибкость в управлении позициями с возможностью выбора между фиксированными и динамическими позициями
  6. Полностью автоматизированный, без вмешательства человека
  7. Параметры легко адаптируются к различным стилям торговли

Стратегический риск

  1. EMA как отсталый показатель может привести к задержке времени входа
  2. Некоторые рынки могут столкнуться с неоднократными остановками.
  3. Использование рычагов может увеличить убытки
  4. Фиксированные процентные стопы могут быть недостаточно гибкими в условиях высокой волатильности рынка
  5. Цели с несколькими доходами могут привести к преждевременному выходу из сильной тенденции Контрмеры:
  • Рекомендуется использовать на рынках с четкой тенденцией
  • Удельный вес убытков, скорректированный в зависимости от рыночных колебаний
  • Осторожность при использовании рычагов
  • Периодическая проверка параметров оптимизации

Направление оптимизации стратегии

  1. Увеличение фильтров интенсивности тренда, повышение качества входа
  2. Внедрение динамических механизмов погашения убытков, таких как ATR
  3. Добавление показателя подтверждения транзакций
  4. Разработка адаптивных механизмов целевой прибыли
  5. Добавление модуля оценки рыночной ситуации
  6. Динамические механизмы корректировки для оптимизации интервалов между сделками Эти оптимизации позволяют повысить стабильность и прибыльность стратегии и снизить влияние ложных сигналов.

Подвести итог

Это стратегия для отслеживания тенденций, разработанная с рациональной, логически четкой логикой. Управление риском с использованием многократных прибыльных целей, с использованием равномерного перекрестного захвата тенденций, и сохранение некоторых позиций для удержания больших тенденций.

Исходный код стратегии
/*backtest
start: 2024-02-08 00:00:00
end: 2025-02-06 08:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("EMA25 Long Strategy", overlay=true)

// Inputs
initial_capital = input.float(50000, title="Initial Capital ($)")
leverage = input.int(1, title="Leverage")
mode = input.string("Fixed Volume", title="Position Sizing Mode", options=["Fixed Volume", "Current Balance"])
ema_length = input.int(34, title="EMA Length")
stop_loss_percent = input.float(7, title="Stop Loss (%)", step=0.1) / 100
take_profit_1_percent = input.float(5, title="Take Profit 1 (%)", step=0.1) / 100
take_profit_2_percent = input.float(10, title="Take Profit 2 (%)", step=0.1) / 100
take_profit_3_percent = input.float(15, title="Take Profit 3 (%)", step=0.1) / 100
position_size_percent = input.float(100, title="Position Size (%)", step=1) / 100
long_term_hold_percent = input.float(10, title="Long Term Hold (%)", step=1) / 100
trade_delay = input.int(8, title="Trade Delay (hours)", minval=1) * 60  // Convert hours to minutes

// Calculate EMA
ema = ta.ema(close, ema_length)
// Plot EMA
plot(ema, title="EMA25", color=color.blue)

// Determine if a new trade can be placed
var float last_trade_time = na
can_trade = na(last_trade_time) or (time - last_trade_time) > trade_delay * 60 * 1000

// Determine position size based on selected mode
var float position_size = na
if (mode == "Fixed Volume")
    position_size := initial_capital * leverage * position_size_percent / close
else
    position_size := strategy.equity * leverage * position_size_percent / close

// Entry Condition
var float entry_price = na
price_crossed_ema_up = ta.crossover(close, ema)
price_crossed_ema_down = ta.crossunder(close, ema)

if ((price_crossed_ema_up or price_crossed_ema_down) and can_trade)
    entry_price := ema
    strategy.entry("Long", strategy.long, qty=position_size, limit=entry_price)
    last_trade_time := time
    label.new(bar_index, entry_price, text="Entry", color=color.green, style=label.style_label_up, textcolor=color.white, size=size.small)

// Stop Loss
strategy.exit("Stop Loss", from_entry="Long", stop=entry_price * (1 - stop_loss_percent))

// Take Profits
take_profit_1_price = entry_price * (1 + take_profit_1_percent)
take_profit_2_price = entry_price * (1 + take_profit_2_percent)
take_profit_3_price = entry_price * (1 + take_profit_3_percent)

strategy.exit("Take Profit 1", from_entry="Long", limit=take_profit_1_price, qty=position_size / 3)
strategy.exit("Take Profit 2", from_entry="Long", limit=take_profit_2_price, qty=position_size / 3)
strategy.exit("Take Profit 3", from_entry="Long", limit=take_profit_3_price, qty=position_size / 3)

// Long Term Hold (10% of position)
hold_qty = position_size * long_term_hold_percent
if (strategy.position_size > hold_qty)
    strategy.close("Long Term Hold")