Стратегия количественной торговли относительной нереализованной прибыли EMA100 и NUPL

EMA
Дата создания: 2024-06-17 14:55:13 Последнее изменение: 2024-06-17 14:55:13
Копировать: 0 Количество просмотров: 575
1
Подписаться
1617
Подписчики

Стратегия количественной торговли относительной нереализованной прибыли EMA100 и NUPL

Обзор

Торговая стратегия, основанная на трех показателях: 100-циклической скользящей средней индексной величины (EMA100), чистой нереализованной прибыли/убытка (NUPL) и относительно нереализованной прибыли, генерирует торговый сигнал, оценивая пересечение цены с EMA100 и положительное отрицание NUPL и относительно нереализованной прибыли. Многосигналы вызываются, когда цена пересекает EMA100, а NUPL и относительно нереализованная прибыль являются положительными; пустые сигналы вызываются, когда цена пересекает EMA100, а NUPL и относительно нереализованная прибыль являются отрицательными.

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

  1. Вычисление 100-циклической ЭМА в качестве основного индикатора тенденции
  2. Использование NUPL и относительной нереализованной прибыли в качестве вспомогательных показателей для подтверждения силы и устойчивости тенденции
  3. В то же время, когда цена проходит через EMA100 вверх/вниз, NUPL и относительно неиспользованная прибыль одновременно генерируют сигналы о повышении/понижении при положительном/отрицательном времени
  4. Применение 10% фиксированной позиции и установка 10% стоп-лосса, контроль риска
  5. При владении позицией сверх залога, если цена опустится выше ценой остановки убытка, ликвидируется позиция сверх залога; при владении позицией сверх залога, если цена опустится выше ценой остановки убытка, ликвидируется позиция сверх залога

Анализ преимуществ

  1. Простая и понятная: стратегия имеет четкую логику, использует распространенные технические показатели, легко понимается и реализуется
  2. Тренд-трекер: с помощью EMA100 захватывает основные тренды, подходящие для использования на трендовых рынках
  3. Управление рисками: установка фиксированных позиций и остановок для эффективного управления рисками
  4. Адаптируемость: стратегия может применяться к различным рынкам и торговым показателям

Анализ рисков

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

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

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

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

Эта торговая стратегия генерирует торговые сигналы с помощью EMA100, NUPL и трех показателей относительной нереализованной прибыли. Она обладает такими преимуществами, как логическая ясность, управляемая опасность и высокая адаптивность. В то же время существуют риски, такие как ложные сигналы, задержка и оптимизация параметров. В будущем стратегия может быть оптимизирована и улучшена с помощью оптимизации параметров, фильтрации сигналов, динамического управления позициями и многогабаритной комбинации.

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

//@version=5
strategy("Scalping Strategy with EMA 100, NUPL, and Relative Unrealized Profit", overlay=true)

// Input for EMA period
emaPeriod = input.int(100, title="EMA Period", minval=1)
ema100 = ta.ema(close, emaPeriod)
plot(ema100, color=color.blue, title="EMA 100")

// Placeholder function for NUPL (Net Unrealized Profit/Loss)
// Replace this with actual NUPL data or calculation
NUPL = close * 0.0001 // Dummy calculation

// Placeholder function for relative unrealized profit
// Replace this with actual relative unrealized profit data or calculation
relativeUnrealizedProfit = close * 0.0001 // Dummy calculation

// Define conditions for long and short entries
longCondition = ta.crossover(close, ema100) and NUPL > 0 and relativeUnrealizedProfit > 0
shortCondition = ta.crossunder(close, ema100) and NUPL < 0 and relativeUnrealizedProfit < 0

// Plot buy and sell signals on the chart
plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.labelup, title="Buy Signal")
plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.labeldown, title="Sell Signal")

// Calculate stop loss levels
longStopLoss = close * 0.90
shortStopLoss = close * 1.10

// Strategy entry and exit rules
if (longCondition)
    strategy.entry("Long", strategy.long, stop=longStopLoss)

if (shortCondition)
    strategy.entry("Short", strategy.short, stop=shortStopLoss)

// Set stop loss levels for active positions
if (strategy.position_size > 0)
    strategy.exit("Exit Long", "Long", stop=longStopLoss)
if (strategy.position_size < 0)
    strategy.exit("Exit Short", "Short", stop=shortStopLoss)

// Alerts for long and short entries
alertcondition(longCondition, title="Long Entry Alert", message="Long entry signal based on EMA 100, NUPL, and relative unrealized profit")
alertcondition(shortCondition, title="Short Entry Alert", message="Short entry signal based on EMA 100, NUPL, and relative unrealized profit")

// Visualize the entry conditions
plotshape(series=longCondition, location=location.belowbar, color=color.blue, style=shape.cross, title="Long Condition")
plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.cross, title="Short Condition")