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


Дата создания: 2024-01-23 10:49:57 Последнее изменение: 2024-01-23 10:49:57
Копировать: 0 Количество просмотров: 572
1
Подписаться
1617
Подписчики

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

Обзор

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

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

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

В частности, правила генерации торговых сигналов стратегии:

  1. Условия построения покупательского сигнала: верхний рельс прорывает нижний рельс ((показатель Aroon определяет пересечение двойных рельсов, образующее восходящий тренд) и закрытие в тот же день выше скользящей средней LSMA ((закрытие находится в восходящем тренде))

  2. Условия генерирования сигнала продажи: верхний рельс опускается с нижнего рельса ((показатель Aroon определяет пересечение двух рельсов, образующее нисходящую тенденцию), и цена закрытия в тот день ниже скользящей средней LSMA ((цена закрытия находится в нисходящей тенденции))

Стратегические преимущества

  1. Используйте индикатор Aroon, чтобы определить направление тренда и избежать помех от шума
  2. Добавление скользящей средней LSMA в качестве вспомогательного фильтра, чтобы избежать нежелательных сделок с ложными прорывами
  3. Продолжайте делать только плюсы, чтобы соответствовать долгосрочным характеристикам большого рынка, чтобы избежать неограниченного риска потерь, связанных с дефолтом.
  4. Настройка параметров стратегии проста и легко реализуема

Стратегический риск

  1. “Стратегия - это не что иное, как прибыль в условиях потрясения”
  2. Риск переизмеримости при установке фиксированных параметров
  3. Трудность и потеря времени при повороте тренда

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

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

  1. Можно рассматривать возможность включения в дисконтный рынок и получать прибыль от падения
  2. Можно проверить эффективность показателей с различными периодическими параметрами
  3. Модуль машинного обучения для автоматической оптимизации параметров

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

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

Исходный код стратегии
/*backtest
start: 2023-01-16 00:00:00
end: 2024-01-22 00:00:00
period: 1d
basePeriod: 1h
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/
// © exlux99

//@version=4

strategy(title = "Aroon Strategy long only", overlay = true,  pyramiding=1,initial_capital = 100, default_qty_type= strategy.percent_of_equity, default_qty_value = 100, calc_on_order_fills=false, slippage=0,commission_type=strategy.commission.percent,commission_value=0.1)

//Time
fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2010, title = "From Year", minval = 1970)
 //monday and session 
// To Date Inputs
toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2021, title = "To Year", minval = 1970)

startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true

//INPUTS

length = input(15, minval=1, title="Aroon Legnth")
upper = 100 * (highestbars(high, length+1) + length)/length
lower = 100 * (lowestbars(low, length+1) + length)/length

lengthx = input(title="Length LSMA", type=input.integer, defval=20)
offset = 0//input(title="Offset", type=input.integer, defval=0)
src = input(close, title="Source")
lsma = linreg(src, lengthx, offset)


long = crossover(upper,lower) and close > lsma
longexit = crossunder(upper,lower) and close < lsma

if(time_cond)
    strategy.entry("long",1,when=long)
    strategy.close("long",when=longexit)