Основная идея этой стратегии состоит в том, чтобы использовать золотой крест и мертвый крест скользящих средних в качестве торговых сигналов, в сочетании с ценовым прорывом двойных скользящих средних для внесения вкладов и остановок. Он генерирует сигнал покупки, когда скользящая средняя короткого периода пересекает длинную скользящую среднюю; сигнал продажи генерируется, когда скользящая средняя короткого периода пересекает длинную скользящую среднюю. Таким образом, стратегия имеет как следующие тенденции, так и средние характеристики реверсии.
Подробные принципы работы следующие:
Вычислить краткосрочную простую скользящую среднюю величину (SMA) и долгосрочную простую скользящую среднюю величину.
Сравните, стоит ли цена выше или ниже скользящих средних.
Пройти длинный путь, когда короткая SMA пересекает длинную SMA; пройти короткий путь, когда короткая SMA пересекает длинную SMA.
Переключайтесь между длинными и короткими позициями.
Основными преимуществами этой стратегии являются:
Стратегия двойной скользящей средней сочетает в себе как следование тренду, так и реверсию средней величины, что позволяет отслеживать рыночные тенденции и отслеживать возможности реверсии.
Золотой крест и мертвый крест скользящих средних имеют некоторую стойкость, что помогает отфильтровать ложные прорывы.
Основываясь на теории скользящей средней, это выгодно, чтобы закрепить прибыль во время тренда и диапазона ограниченных рынков.
Основными рисками этой стратегии являются:
Стратегия двойной скользящей средней чувствительна к параметрам. Неправильные настройки параметров могут привести к переоценке или упущенным возможностям.
Неудачные прорывы могут привести к убыткам.
Обратная тенденция не гарантирует успеха. Первоначальная тенденция может продолжиться, что приведет к потерям.
Основные направления оптимизации:
Проверьте и оптимизируйте параметры скользящей средней, чтобы найти наилучшую комбинацию параметров.
Добавить индикатор определения тенденции для различения между тенденционными и колеблющимися рынками.
Внедрять эффективный стоп-лосс для контроля рисков, таких как отслеживание стоп-лосса, стоп-лосс ордера и т.д.
Сочетание с другими показателями для повышения надежности стратегии.
В заключение, как стратегия двойного отслеживания обратного движения скользящих средних, она учитывает как отслеживание тренда, так и обратную торговлю. При надлежащей оптимизации параметров и контроле рисков она может достичь хороших результатов. Однако любая стратегия сталкивается с рисками, такими как направленные ошибки, сбой стоп-лосса и т. Д. Непрерывное тестирование и оптимизация необходимы для адаптации к изменяющимся рынкам.
/*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)