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


Дата создания: 2023-12-07 17:40:12 Последнее изменение: 2023-12-07 17:40:12
Копировать: 0 Количество просмотров: 611
1
Подписаться
1619
Подписчики

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

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

Подробное описание стратегии:

  1. Вычислите краткосрочные простые скользящие средние и долгосрочные простые скользящие средние

  2. Сравнение того, выше или ниже ли цены передвижного среднего, основывается на том, что цены выше передвижного среднего являются плюсовыми, а цены ниже передвижного среднего являются пустыми.

  3. Сделайте больше при ношении длинной средней линии на короткой средней линии; сделайте пустоту при ношении длинной средней линии под короткой средней линией.

  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)