Стратегия двойного показателя

Автор:Чао Чжан, Дата: 2023-11-02 15:30:54
Тэги:

img

Обзор

Стратегия двойного индикатора - это количественная стратегия торговли, которая сочетает в себе индикаторы простой скользящей средней (SMA) и скользящей средней конвергенции дивергенции (MACD).

Логика стратегии

Основой стратегии двойного индикатора являются два индикатора: SMA и MACD. Стратегия использует SMA 7-, 15- и 60-периодных периодов, а также стандартный параметр MACD 12/26/9.

Когда 7-периодный SMA выше 15- и 60-периодного SMA, а 15-периодный SMA выше 60-периодного SMA, он считается бычьим сигналом от индикатора SMA с вероятностью 0,5.

В то же время, когда линия MACD пересекает линию сигнала, это считается бычьим сигналом от индикатора MACD, также с вероятностью 0,5.

Когда вероятность сигнала бычьего тренда от обоих индикаторов составит 1, будет открыта длинная позиция.

И наоборот, когда 7-периодная SMA падает ниже 15- и 60-периодной SMA, а 15-периодная SMA ниже 60-периодной SMA, это считается медвежьим сигналом от индикатора SMA с вероятностью 0,5.

Между тем, когда линия MACD пересекает ниже линии сигнала, это считается медвежьим сигналом от индикатора MACD, с вероятностью 0,5.

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

Кроме того, стратегия использует две разные точки получения прибыли: закрыть 50% позиции при росте или падении цены на 9%, и закрыть оставшуюся позицию при росте или падении цены на 21%.

В случае возникновения сигнала, противоположного текущей позиции, текущая позиция закрывается прежде, чем открывается новая позиция, основанная на новом сигнале.

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

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

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

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

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

Стратегия может быть оптимизирована путем корректировки параметров периода SMA или включения дополнительных индикаторов фильтрации для обеспечения более надежных сигналов.

Руководство по оптимизации

Некоторые аспекты стратегии двойного показателя могут быть дополнительно оптимизированы:

  1. Тест с добавлением других технических индикаторов, таких как RSI, полосы Боллинджера для фильтрации по нескольким показателям.

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

  3. Выполните настройку параметров на основе различных продуктов и временных рамок.

  4. Включите стоп-лосс для строгого контроля потери на одной сделке.

  5. Оптимизируйте стратегию получения прибыли для устойчивых тенденций.

Благодаря систематическому обратному тестированию и оптимизации можно постоянно повышать стабильность и рентабельность стратегии.

Заключение

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


/*backtest
start: 2023-10-02 00:00:00
end: 2023-11-01 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("SMA & MACD Dual Direction Strategy", shorttitle="SMDDS", overlay=true, initial_capital=1000)

// SMA settings
sma7_length = input.int(7, title="7 Candle SMA Length")
sma15_length = input.int(15, title="15 Candle SMA Length")
sma60_length = input.int(60, title="60 Candle SMA Length")

// MACD settings
fast_length = input.int(12, title="Fast Length")
slow_length = input.int(26, title="Slow Length")
signal_length = input.int(9, title="Signal Length")

// Leverage
leverage = 10

// Calculate the SMAs
sma7 = ta.sma(close, sma7_length)
sma15 = ta.sma(close, sma15_length)
sma60 = ta.sma(close, sma60_length)

// Calculate the MACD line and Signal line
[macdLine, signalLine, _] = ta.macd(close, fast_length, slow_length, signal_length)

// SMA-based Probabilities
smaBullishProb = (sma7 > sma15 and sma7 > sma60 and sma15 > sma60) ? 0.5 : 0.0
smaBearishProb = (sma7 < sma15 and sma7 < sma60 and sma15 < sma60) ? 0.5 : 0.0

// MACD-based Probabilities
macdBullishProb = ta.crossover(macdLine, signalLine) ? 0.5 : 0.0
macdBearishProb = ta.crossunder(macdLine, signalLine) ? 0.5 : 0.0

// Combined Probabilities
combinedBullishProb = smaBullishProb + macdBullishProb
combinedBearishProb = smaBearishProb + macdBearishProb

// Trade logic using `if` conditions
if combinedBullishProb == 1.0
    strategy.close("Short")
    strategy.entry("Long", strategy.long, qty=leverage)

if combinedBearishProb == 1.0
    strategy.close("Long")
    strategy.entry("Short", strategy.short, qty=leverage)

// Exit conditions based on profit points
longTargetProfit1 = close * 1.09
longTargetProfit2 = close * 1.21

shortTargetProfit1 = close * 0.91
shortTargetProfit2 = close * 0.79

strategy.exit("Long TP1", from_entry="Long", limit=longTargetProfit1, qty_percent=0.5)
strategy.exit("Long TP2", from_entry="Long", limit=longTargetProfit2)

strategy.exit("Short TP1", from_entry="Short", limit=shortTargetProfit1, qty_percent=0.5)
strategy.exit("Short TP2", from_entry="Short", limit=shortTargetProfit2)

// Visualization (optional)
plot(sma7, color=color.green, title="7 Candle SMA")
plot(sma15, color=color.blue, title="15 Candle SMA")
plot(sma60, color=color.red, title="60 Candle SMA")
hline(0, "Zero Line", color=color.gray)
plot(macdLine - signalLine, color=color.blue, title="MACD Histogram")


Больше