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

EMA
Дата создания: 2024-12-20 16:54:43 Последнее изменение: 2024-12-20 16:54:43
Копировать: 4 Количество просмотров: 407
1
Подписаться
1617
Подписчики

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

Обзор

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

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

Основная логика стратегии включает в себя следующие ключевые части:

  1. Подтверждение тренда: использование трех различных циклов ЭМА ((25,50,100), когда краткосрочная средняя линия находится выше среднесрочной средней линии, а среднесрочная средняя линия находится выше долгосрочной средней линии, образует золотое крестообразование, подтверждающее восходящую тенденцию.
  2. Сигнал входа: на основе формирования золотого креста, когда цена закрытия преодолеет EMA25 вверх, вводятся в продажу две партии по 50% позиций.
  3. Стоп-страх: динамический стоп-страх, основанный на минимальных ценах за последние 20 циклов, с добавлением дополнительного буферного интервала ((0.0003)), чтобы избежать ложного прорыва.
  4. Разделение на стоп-мишени: установка двух стоп-мишени с разными коэффициентами (в 1,0 и в 1,5 раза), первые позиции выходят из игры, когда достигаются более низкие стоп-мишени, а вторые позиции выходят из игры, когда достигаются более высокие стоп-мишени
  5. Защита от окончания тренда: когда цена опускается ниже EMA100, для предотвращения убытков, вызванных обратным трендом, вызывается сигнал “полизирования” всех позиций.

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

  1. Механизм множественного подтверждения: благодаря совместному использованию множественных средних линий, можно эффективно отфильтровать ложные сигналы и повысить надежность сделки.
  2. Динамический риск-менеджмент: стоп-лизы динамически корректируются на основе рыночных колебаний в режиме реального времени и более адаптивны.
  3. Стройка складов и остановок: с помощью сплошных операций можно не только блокировать часть прибыли, но и позволить прибыли продолжать бегать, чтобы максимизировать прибыль.
  4. Механизм защиты тренда: установлена долгосрочная средняя линия в качестве предупредительной линии для обратного тренда, которая позволяет вовремя остановить убытки и избежать резкого отступления.

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

  1. Риск отставания: средний индекс сам по себе имеет отставание, что может привести к задержке входа в рынок и пропуску оптимальной точки покупки.
  2. Риск колебания рынка: в случае колебания рынка в сторону, частое ложное прорыв может привести к последовательному остановке.
  3. Риски фиксированной буферной зоны: использование фиксированной буферной зоны может быть не подходит для всех рыночных условий.
  4. Риски управления капиталом: распределение фиксированных 50% позиций может быть недостаточно гибким.

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

  1. Оптимизация динамических параметров: можно автоматически корректировать среднелинейный цикл и буферную зону стоп-убытков в зависимости от волатильности рынка.
  2. Фильтр рыночных условий: добавление индикаторов интенсивности и волатильности тренда, изменение параметров стратегии в различных рыночных условиях.
  3. Оптимизация управления позициями: динамическая корректировка размеров позиций на основе волатильности и чистой стоимости счетов.
  4. Оптимизация времени входа: может быть использовано в сочетании с другими техническими показателями (например, RSI, MACD и т. д.) для оптимизации времени входа.
  5. Оптимизация способа остановки: может быть введен механизм передвижной остановки, чтобы лучше защитить уже прибыльную лодку.

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

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

Исходный код стратегии
/*backtest
start: 2024-11-19 00:00:00
end: 2024-12-18 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=6
strategy("Golden Cross with Customizable TP/SL", overlay=true)

// Parameters for EMA
ema_short_length = 25
ema_mid_length = 50
ema_long_length = 100

// Parameters for stop-loss and take-profit
lookback_bars = input.int(20, title="Lookback bars for lowest low")
pip_buffer = input.float(0.0003, title="Stop-loss buffer (pips)")  // Fixed default pip value (e.g., 3 pips for 5-digit pairs)
tp_multiplier1 = input.float(1.0, title="Take-profit multiplier 1")
tp_multiplier2 = input.float(1.5, title="Take-profit multiplier 2")

// Calculate EMAs
ema25 = ta.ema(close, ema_short_length)
ema50 = ta.ema(close, ema_mid_length)
ema100 = ta.ema(close, ema_long_length)

// Golden Cross condition (EMA25 > EMA50 > EMA100)
golden_cross = ema25 > ema50 and ema50 > ema100

// Entry condition: Candle crosses above EMA25 after a golden cross
cross_above_ema25 = ta.crossover(close, ema25)
entry_condition = golden_cross and cross_above_ema25

// Stop-loss and take-profit calculation
lowest_low = ta.lowest(low, lookback_bars)
var float entry_price = na
var float stop_loss = na
var float take_profit1 = na
var float take_profit2 = na

if (entry_condition)
    entry_price := close
    stop_loss := lowest_low - pip_buffer
    take_profit1 := entry_price + (entry_price - stop_loss) * tp_multiplier1
    take_profit2 := entry_price + (entry_price - stop_loss) * tp_multiplier2
    strategy.entry("Buy1", strategy.long, qty=0.5)  // First 50%
    strategy.entry("Buy2", strategy.long, qty=0.5)  // Second 50%

// Separate exit conditions for each entry
cross_below_ema100 = ta.crossunder(close, ema100)
exit_condition1 = close >= take_profit1
exit_condition2 = close >= take_profit2
exit_condition_sl = close <= stop_loss

if (exit_condition1 or cross_below_ema100)
    strategy.close("Buy1")
if (exit_condition2 or cross_below_ema100 or exit_condition_sl)
    strategy.close("Buy2")

// Plot EMAs
plot(ema25, color=color.blue, title="EMA 25")
plot(ema50, color=color.orange, title="EMA 50")
plot(ema100, color=color.red, title="EMA 100")