Торговая стратегия Momentum Moving Average Crossover Sakkoulas


Дата создания: 2024-02-21 15:14:19 Последнее изменение: 2024-02-21 15:14:19
Копировать: 0 Количество просмотров: 553
1
Подписаться
1617
Подписчики

Торговая стратегия Momentum Moving Average Crossover Sakkoulas

Обзор

Эта торговая стратегия сочетает в себе несколько технических индикаторов, таких как пересечение скользящих средних (MACD), относительно сильные индикаторы (RSI), простые скользящие средние (SMA), случайные индикаторы (Stochastic) и буринговые полосы (Bollinger Bands), чтобы идентифицировать точки входа и выхода на рынок. Когда индикатор показывает многоголовый сигнал, делайте больше; когда показывает пустой сигнал, делайте пустое.

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

Делайте больше, когда MACD пересекает DEA-линию на DIF-линии и переходит в многоголовый режим; или когда RSI ниже 30 и переходит в перепроданный режим; или когда %K-линия и %D-линия случайного индикатора одновременно ниже 20 и переходят в перепроданный режим.

Напротив, когда MACD переходит через DEA-линию под DIF-линией и входит в пустой режим; или когда RSI выше 70 входит в перекуп; или когда %K-линия и %D-линия случайного индикатора одновременно выше 80 входят в перекуп.

Стоп-лост устанавливается по ATR, умноженному на один коэффициент, а стоп-блок - по рисково-возвратному соотношению.

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

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

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

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

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

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

Эта стратегия может быть оптимизирована в следующих аспектах:

  1. Добавление показателей статистических моделей, в сочетании с тенденциями и корреляционными суждениями;
  2. Увеличение надежности оценочных сигналов в моделях машинного обучения;
  3. Оптимизация управления капиталом, автоматизация и интеллектуализация системы сдерживания убытков

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

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

Исходный код стратегии
/*backtest
start: 2024-01-21 00:00:00
end: 2024-02-20 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Enhanced Moving Average Crossover sakkoulas with ATR and SAR", overlay=true)

// Παράμετροι MACD
fastLength = input.int(16, title="Fast Length")
slowLength = input.int(6, title="Slow Length")
signalSmoothing = input.int(5, title="Signal Smoothing")

// Παράμετροι RSI
rsiLength = input.int(6, title="RSI Length")
upperBound = input.int(70, title="Upper Bound")
lowerBound = input.int(30, title="Lower Bound")

// Παράμετροι SMA
smaPeriod = input.int(10, title="SMA Period")

// Παράμετροι Stochastic
stoLength = input.int(5, title="Stochastic Length")
stoSmoothK = input.int(3, title="Stochastic %K Smoothing")
stoSmoothD = input.int(10, title="Stochastic %D Smoothing")

// Παράμετροι Bollinger Bands
bbLength = input.int(20, title="Bollinger Bands Length")
bbStdDev = input.float(1, title="Bollinger Bands StdDev")

// Παράμετροι ATR
atrLength = input.int(14, title="ATR Length")
atrMultiplier = input.float(1.5, title="ATR Multiplier for Stop Loss")

// Παράμετροι Parabolic SAR
sarAcceleration = input.float(0.02, title="SAR Acceleration")
sarMaximum = input.float(0.2, title="SAR Maximum")

// Διαχείριση κινδύνου
riskRewardRatio = input.float(2.0, title="Risk/Reward Ratio")

// Υπολογισμοί δεικτών
[macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalSmoothing)
rsi = ta.rsi(close, rsiLength)
sma = ta.sma(close, smaPeriod)
atr = ta.atr(atrLength)

// Παράμετροι και κλήση του Parabolic SAR
sar = ta.sar(sarAcceleration, sarMaximum, 15) // Διορθωμένη κ
// Υπολογισμός Stop Loss με βάση το ATR
longStopLoss = close - atrMultiplier * atr 
shortStopLoss = close + atrMultiplier * atr

// Συνθήκες για είσοδο και έξοδο
longCondition = ta.crossover(macdLine, signalLine) and close > sar
shortCondition = ta.crossunder(macdLine, signalLine) and close < sar

// Εκτέλεση εντολών συναλλαγής με διαχείριση κινδύνου
if (longCondition)
    strategy.entry("Long Position", strategy.long)
    strategy.exit("Exit Long", "Long Position", stop=longStopLoss)
    
if (shortCondition)
    strategy.entry("Short Position", strategy.short)
    strategy.exit("Exit Short", "Short Position", stop=shortStopLoss)

// Συνθήκες για είσοδο και έξοδο
 
// Εμφάνιση βελών για σημεία εισόδου
plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small, title="Long Entry")
plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small, title="Short Entry")


// Εμφάνιση δεικτών
plot(macdLine, color=color.blue, title="MACD Line")
plot(signalLine, color=color.red, title="Signal Line")
plot(sma, color=color.orange, title="SMA")
plot(series=sar, color=color.fuchsia, style=plot.style_circles, title="Parabolic SAR")
hline(upperBound, "Upper Bound", color=color.red)
hline(lowerBound, "Lower Bound", color=color.green)