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


Дата создания: 2023-10-26 16:05:01 Последнее изменение: 2023-10-26 16:05:01
Копировать: 0 Количество просмотров: 700
1
Подписаться
1617
Подписчики

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

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

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

Эта стратегия сначала вычисляет 3-дневную простую подвижную среднюю SMA. Затем вычисляет соотношение цены закрытия close к SMA, а затем вычитает 1, получая показатель ind. Когда ind превышает установленные параметры limit, это означает, что цена закрытия значительно превышает SMA, учитывая превышение; когда ind превышает -limit, это означает, что цена закрытия значительно ниже SMA, учитывая превышение.

Стратегия также отображает 0-угол, лимит-угол и -лимит-угол. Индикатор ind в разных областях окрашивается в разные цвета, чтобы помочь в суждении. Когда индикатор ind проходит через лимит или -лимит, то появляется сигнал “сделай больше” или “сделай меньше”.

При появлении сигнала “продолжай” или “продолжай” стратегия сначала ликвидирует позиции, расположенные в противоположном направлении от текущего, а затем открывает позиции “продолжай” или “продолжай”. Когда индикатор “ind” возвращается между 0-й осью, ликвидирует все позиции.

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

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

  2. Нарисуйте ориентирную ось и визуально определите местоположение и прохождение ориентира.

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

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

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

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

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

  2. В качестве индикатора, движущийся средний недостаточно гибкий и не может своевременно отражать изменения цен.

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

  4. Следить за движущимися средними не позволяет идентифицировать колебания в тренде, поэтому их следует использовать в сочетании с индикаторами колебаний и т. д.

  5. Необходимо оптимизировать правила удержания позиции, например, настроить стоп-лосс, стоп-стоп; или поймать взлет только в начале тренда.

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

  1. Можно тестировать различные параметры, такие как SMA-периоды; или использовать адаптивные скользящие средние, такие как индексные скользящие средние.

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

  3. Можно рассмотреть возможность приостановки торговли при усилении волатильности в сочетании с индикатором волатильности, таким как Брин-банд.

  4. Можно установить правила управления позицией, например, открытие позиции с фиксированным количеством, поэтапное увеличение позиции, управление капиталом и т. д.

  5. Можно установить линию остановки убытков или приостановить новые заказы при фиксированном убытке, чтобы контролировать риски.

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

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

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

//Noro
//2018

//@version=3
strategy(title = "Noro's Shift Close Strategy v1.0", shorttitle = "Shift Close 1.0", default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 5)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot, %")
limit = input(10)
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From Day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To Day")

//Shift MA
sma = sma(ohlc4, 3)
ind = ((close / sma) - 1) * 100

//Oscilator
plot(3 * limit, color = na, transp = 0)
plot(limit, color = black, transp = 0)
plot(0, color = black, transp = 0)
plot(-1 * limit, color = black, transp = 0)
plot(-3 * limit, color = na, transp = 0)
plot(ind, linewidth = 3, transp = 0)
col = ind > limit ? red : ind < -1 * limit ? lime : na
bgcolor(col, transp = 0)

//Signals
size = strategy.position_size
up = ind < -1 * limit
dn = ind > limit
exit = ind > -1 * limit and ind < limit

//Trading
lot = 0.0 
lot := size == 0 ? strategy.equity / close * capital / 100 : lot[1]

if up
    if strategy.position_size < 0
        strategy.close_all()
        
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))

if dn
    if strategy.position_size > 0
        strategy.close_all()
        
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if exit
    strategy.close_all()