Динамическая стратегия SMMA и кроссовера SMA


Дата создания: 2024-02-02 11:38:08 Последнее изменение: 2024-02-02 11:38:08
Копировать: 0 Количество просмотров: 788
1
Подписаться
1617
Подписчики

Динамическая стратегия SMMA и кроссовера SMA

Обзор

Эта стратегия использует кросс-сигналы 50-циклического скользящего скользящего среднего значения (SMMA) и 20-циклического простого скользящего среднего значения (SMA) для определения времени покупки и продажи. Быстрый SMA вверх дает сигнал покупки, а медленный SMA вниз дает сигнал продажи.

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

  1. Вычислить и нарисовать 50-циклические SMMA и 20-циклические SMA.
  2. Когда SMA пробивает SMMA снизу вверх, создается сигнал покупать; наоборот, когда SMA пробивает SMMA снизу вверх, создается сигнал продавать.
  3. При появлении сигнала “купить” и “продать” устанавливаются позиции “купить” и “продать” соответственно.
  4. Для каждой позиции установлены фиксированные стоп-позиции в 150 пунктов.
  5. На следующей K-линии, которая дает сигнал, устанавливается динамическая стоп-стоп.
  6. Если цена касается остановки, то остановка; если касается остановки, то остановка.

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

  1. Двухлинейная стратегия проста в использовании, ее принцип прост и понятен.
  2. SMMA - это улучшение SMA, которое позволяет лучше улавливать тенденции.
  3. В сочетании с различными циклами SMA и SMMA можно одновременно улавливать тренды во время колебаний гипервойн.
  4. Использование динамического стоп-положения позволяет корректировать положение стоп-положения в зависимости от изменения рыночных условий, эффективно контролируя риск.
  5. Предварительная остановка помогает своевременно блокировать прибыль.

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

  1. Двойная равнолинейная стратегия способна создавать ложные сигналы и быть арбитражной. Можно правильно отфильтровать сигналы, чтобы избежать слишком частого трейдинга.
  2. Фиксированный стоп легко пропустить. Можно установить подвижный стоп или стоп доходности.
  3. Динамический стоп может быть слишком близко при резких колебаниях рынка, поэтому следует соответственно ослабить степень стоп-ущерба.
  4. Следует обратить внимание на различия между различными сортами и параметрами цикла.

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

  1. можно тестировать комбинации различных параметров (количество циклов, условия фильтрации и т. д.) для поиска оптимальных параметров;

  2. фильтрующие сигналы могут быть объединены с другими факторами, например, сверхнормативными объемами;

  3. поиск оптимальных параметров с помощью инструментов оптимизации параметров;

  4. Другие способы остановки могут быть рассмотрены в сочетании с подвижными и пропорциональными остановками;

  5. Динамическая стоп-стоп может быть рассчитана в сочетании с рыночной волатильностью.

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

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

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

//@version=4
strategy("50 SMMA and 20 SMA Crossover with TP and SL", overlay=true)

// Define 50 SMMA
smma50 = sma(close, 50)

// Define 20 SMA
sma20 = sma(close, 20)

// Plotting the SMMA and SMA
plot(smma50, color=color.blue, title="50 SMMA")
plot(sma20, color=color.red, title="20 SMA")

// Initialize TP and SL variables
tp = 150
var float sl_price = na

// Buy Signal
buySignal = crossover(sma20, smma50)
strategy.entry("Buy", strategy.long, when = buySignal)
strategy.exit("Take Profit/Stop Loss", from_entry="Buy", profit=tp, loss=sl_price)

// Sell Signal
sellSignal = crossunder(sma20, smma50)
strategy.entry("Sell", strategy.short, when = sellSignal)
strategy.exit("Take Profit/Stop Loss", from_entry="Sell", profit=tp, loss=sl_price)

// Update stop loss level on every crossover
if (buySignal or sellSignal)
    sl_price := close[bar_index + 1]

// Plot Stop Loss level
plotshape(series=sl_price != na, title="Stop Loss Level", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)