Классическая стратегия пересечения двойных скользящих средних


Дата создания: 2023-10-27 16:47:30 Последнее изменение: 2023-10-27 16:47:30
Копировать: 0 Количество просмотров: 695
1
Подписаться
1625
Подписчики

Классическая стратегия пересечения двойных скользящих средних

Обзор

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

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

Основные части кода стратегии:

  1. Определение длины и типа скорейшей и медленной средних: скорейшая длина составляет 5 циклов, медленная длина - 21 цикл, в каждом из которых используется простая скользящая средняя.

  2. Вычислить быструю и медленную линию: вычислить простую скользящую среднюю из 5 и 21 циклов с помощью функции sma.

  3. Картография: Картография движения скоростной и замедленной линий.

  4. Определение условий покупки и продажи: покупка на быстрой линии при прохождении медленной линии, продажа на быстрой линии при прохождении медленной линии.

  5. Выполнение сделок: с помощью функций long и short стратегии автоматически выполняются операции по покупке и продаже при выполнении условий.

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

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

Стратегия двойного равнолинейного пересечения имеет следующие преимущества:

  1. Принцип прост, легко освоить и подходит для начинающих.

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

  3. Частота сделок должна быть умеренной, не слишком часто.

  4. Настраиваемые параметры, гибкий отклик на изменения рынка.

  5. Оптимизация позволяет легко находить подходящие комбинации параметров.

  6. Можно установить точку остановки и контролировать риск.

  7. Он доступен на многих рынках и имеет широкий спектр применений.

  8. Может использоваться в комбинации с другими показателями для повышения эффективности.

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

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

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

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

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

  4. Невозможно определить тип тренда, существует риск обратной торговли.

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

  6. Одиночные показатели подвержены влиянию внешней среды, их эффективность может быть нестабильной. Их можно проверять в сочетании с другими показателями.

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

Также можно оптимизировать стратегию двойного равномерного пересечения:

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

  2. Добавление фильтров, таких как объем торгов, ATR-стоп-лосс и т.д., уменьшает невыгодные возможности.

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

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

  5. В сочетании с трендовым и волновым индикаторами, для отслеживания трендов и контрастных торгов.

  6. Применение адаптивных средних линий, при которых параметры средних линий корректируются в соответствии с рынком, а не с фиксированным циклом.

  7. Используются комбинации из нескольких временных промежутков, используются различные комбинации параметров в зависимости от особенностей времени рынка.

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

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

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

Исходный код стратегии
/*backtest
start: 2023-09-26 00:00:00
end: 2023-10-26 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
// strategy("Stochastic Strategy of BiznesFilosof", shorttitle="SS of BiznesFilosof", overlay=false, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=20, commission_type=strategy.commission.percent, commission_value=0.15, pyramiding=0)

//Period
startY = input(title="Start Year", defval = 2011)
startM = input(title="Start Month", defval = 1, minval = 1, maxval = 12)
startD = input(title="Start Day", defval = 1, minval = 1, maxval = 31)
finishY = input(title="Finish Year", defval = 2050)
finishM = input(title="Finish Month", defval = 12, minval = 1, maxval = 12)
finishD = input(title="Finish Day", defval = 31, minval = 1, maxval = 31)
//finish = input(2019, 02, 28, 00, 00)
timestart = timestamp(startY, startM, startD, 00, 00)
timefinish = timestamp(finishY, finishM, finishD, 23, 59)
window = true // Lenghth strategy

length1 = input(21, minval=1), smoothK1 = input(3, minval=1), smoothD1 = input(3, minval=1)
//length2 = input(5, minval=1), smoothK2 = input(1, minval=1), smoothD2 = input(1, minval=1)
inh0 = input(title="Bottom Line", defval = 14, minval=0), inh1 = input(title="Upper Line", defval = 86, minval=0)

k1 = sma(stoch(close, high, low, length1), smoothK1)
d1 = sma(k1, smoothD1)
plot(k1, color=blue)
plot(d1, color=red)
//k2 = sma(stoch(close, high, low, length2), smoothK2)
//d2 = sma(k2, smoothD2)
//plot(k2, color=orange)

h1 = hline(inh1)
h0 = hline(inh0)
fill(h0, h1, color = aqua, transp=90)

//open
strategy.entry("LongEntryID", strategy.long, comment="LONG", when = crossover(k1, d1) and crossover(k1, inh0) and window)
strategy.entry("ShortEntryID", strategy.short, comment="SHORT", when = crossunder(k1, d1) and crossunder(k1, inh1) and window)

if crossunder(k1, d1) and crossunder(k1, inh1) and strategy.position_size > 0
    strategy.close_all()
if crossover(k1, d1) and crossover(k1, inh0) and strategy.position_size < 0
    strategy.close_all()