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


Дата создания: 2024-01-29 11:15:42 Последнее изменение: 2024-01-29 11:15:42
Копировать: 8 Количество просмотров: 585
1
Подписаться
1617
Подписчики

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

Обзор

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

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

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

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

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

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

  1. Простая в использовании и легко реализуемая. Стратегия использует только два показателя: скользящую среднюю и показатель ROC.

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

  3. Эффективное управление односторонними потерями. Использование переменных точек скользящей средней своевременно останавливает потери, что позволяет снизить количество крупных односторонних потерь.

  4. Широкое применение. Принцип стратегии прост и может применяться к различным видам и различным временным рамкам торговли, таким как дневная линия, часовая линия и т. Д.

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

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

Существуют также риски, связанные со стратегией перекрёстного трейдинга с переходными точками, в основном сосредоточенные на следующих аспектах:

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

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

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

  4. При значительных колебаниях движущаяся средняя производит несколько неэффективных перекрестков, что влияет на эффективность стратегии.

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

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

  1. В сочетании с индикаторами трендовых колебаний. Добавление таких показателей, как ADX, ATR и т. Д., используется для определения состояния тренда.

  2. Объединение нескольких временных рамок. В более высоких временных рамах определяется направление основных тенденций, избегается обратная торговля.

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

  4. Введение в распознавание паттернов. Распознавание паттернов в MA-пересечениях для фильтрации ложных сигналов.

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

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

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

//@version=4
//study(title="MA Crossover Strategy", overlay = true)
strategy("MA Crossover Strategy with MA Turning Point Exits", overlay=true)
src = input(close, title="Source")

price = request.security(syminfo.tickerid, timeframe.period, src)
ma1 = input(25, title="1st MA Length")
type1 = input("SMA", "1st MA Type", options=["SMA", "EMA"])

ma2 = input(50, title="2nd MA Length")
type2 = input("SMA", "2nd MA Type", options=["SMA", "EMA"])

price1 = if (type1 == "SMA")
    sma(price, ma1)
else
    ema(price, ma1)
    
price2 = if (type2 == "SMA")
    sma(price, ma2)
else
    ema(price, ma2)


//plot(series=price, style=line,  title="Price", color=black, linewidth=1, transp=0)
plot(series=price1, style=line,  title="1st MA", color=blue, linewidth=2, transp=0)
plot(series=price2, style=line, title="2nd MA", color=green, linewidth=2, transp=0)


longCondition = crossover(price1, price2)
if (longCondition)
    strategy.entry("Long", strategy.long)

shortCondition = crossunder(price1, price2)
if (shortCondition)
    strategy.entry("Short", strategy.short)

lookback1 = input(1, "Lookback 1")
roc1 = roc(price1, lookback1)

ma1up = false
ma1down = false
ma2up = false
ma2down = false

ma1up := nz(ma1up[1])
ma1down := nz(ma1down[1])
ma2up := nz(ma2up[1])
ma2down := nz(ma2down[1])

trendStrength1 = input(2, title="Minimum slope magnitude * 100", type=float) * 0.01

if crossover(roc1, trendStrength1)
    ma1up := true
    ma1down := false
    
if crossunder(roc1, -trendStrength1) 
    ma1up := false
    ma1down := true

shortexitCondition = ma1up and ma1down[1]
if (shortexitCondition)
    strategy.close("Short")

longexitCondition = ma1down and ma1up[1]
if (longexitCondition)
    strategy.close("Long")