Стратегия отслеживания двойной переменной средней

Автор:Чао Чжан, Дата: 2023-12-07 17:40:12
Тэги:

img

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

Подробные принципы работы следующие:

  1. Вычислить краткосрочную простую скользящую среднюю величину (SMA) и долгосрочную простую скользящую среднюю величину.

  2. Сравните, стоит ли цена выше или ниже скользящих средних.

  3. Пройти длинный путь, когда короткая SMA пересекает длинную SMA; пройти короткий путь, когда короткая SMA пересекает длинную SMA.

  4. Переключайтесь между длинными и короткими позициями.

Основными преимуществами этой стратегии являются:

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

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

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

Основными рисками этой стратегии являются:

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

  2. Неудачные прорывы могут привести к убыткам.

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

Основные направления оптимизации:

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

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

  3. Внедрять эффективный стоп-лосс для контроля рисков, таких как отслеживание стоп-лосса, стоп-лосс ордера и т.д.

  4. Сочетание с другими показателями для повышения надежности стратегии.

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


/*backtest
start: 2023-11-29 00:00:00
end: 2023-12-06 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © HPotter
//  Simple SMA strategy
//
// WARNING:
//      - For purpose educate only
//      - This script to change bars colors
//@version=4
strategy(title="Simple SMA Strategy Backtest", shorttitle="SMA Backtest", precision=6, overlay=true)
Resolution = input(title="Resolution", type=input.resolution, defval="D")
Source = input(title="Source", type=input.source, defval=close)
xSeries = security(syminfo.tickerid, Resolution, Source)
Length = input(title="Length", type=input.integer, defval=14, minval=2)
TriggerPrice = input(title="Trigger Price", type=input.source, defval=close)
BarColors = input(title="Painting bars", type=input.bool, defval=true)
ShowLine = input(title="Show Line", type=input.bool, defval=true)
UseAlerts = input(title="Use Alerts", type=input.bool, defval=false)
reverse = input(title="Trade Reverse", type=input.bool, defval=false)
pos = 0
xSMA = sma(xSeries, Length)
pos := iff(TriggerPrice > xSMA, 1,
         iff(TriggerPrice < xSMA, -1, nz(pos[1], 0)))
nRes = ShowLine ? xSMA : na
alertcondition(UseAlerts == true and pos != pos[1] and pos == 1, title='Signal Buy', message='Strategy to change to BUY')
alertcondition(UseAlerts == true and pos != pos[1] and pos == -1, title='Signal Sell', message='Strategy to change to SELL')
alertcondition(UseAlerts == true and pos != pos[1] and pos == 0, title='FLAT', message='Strategy get out from position')
possig = iff(reverse and pos == 1, -1,
           iff(reverse and pos == -1, 1, pos))
if (possig == 1)
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)
if (possig == 0)
    strategy.close_all()
nColor = BarColors ? possig == -1 ? color.red : possig == 1 ? color.green : color.blue : na 
barcolor(nColor)
plot(nRes, title='SMA', color=#00ffaa, linewidth=2, style=plot.style_line)

Больше