Стратегия ценности Норо v1.1


Дата создания: 2023-10-24 10:59:38 Последнее изменение: 2023-10-24 10:59:38
Копировать: 0 Количество просмотров: 656
1
Подписаться
1617
Подписчики

Стратегия ценности Норо v1.1

Обзор

Noro’s Value Channel Strategy v1.1 - это трендовая торговая стратегия, основанная на направлении ценного канала и ценовых изменений. Стратегия объединяет индикатор ценного канала и индикатор быстрого RSI, чтобы идентифицировать K-линейные сигналы, которые прорывают ценный канал, и в сочетании с цветными обратными сигналами последовательных красных и зеленых K-линий для создания свободных позиций.

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

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

В то же время, стратегия сочетает в себе два вспомогательных правила суждения: быстрый RSI и цвет K-линии. Когда быстрый RSI ниже 25%, считается, что он находится в состоянии перекупа, цена может отскочить; в это время, если цена прорывается вверх по каналу, создается сильный многоголовый сигнал. Напротив, когда быстрый RSI выше 75%, считается, что он находится в зоне перепродажи, цена может упасть; в это время, если цена прорывается вниз по каналу, создается сильный пустой сигнал.

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

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

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

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

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

  3. Цвет K-линии позволяет дополнительно проверить сохранность тренда, и если цвет изменится, то текущая позиция будет закрыта.

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

  5. Средний метод остановки убытков прост и эффективен. При изменении цвета K-линии убыток уменьшается, чтобы избежать увеличения убытков.

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

В этой стратегии также есть некоторые риски, о которых следует помнить, в частности:

  1. Неправильно настроенные параметры ценностного канала, слишком широкий или слишком узкий канал, могут пропустить переходную точку или создать слишком много ошибочных сигналов.

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

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

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

  5. В результате, “Черная лебедь” стала причиной огромных убытков, несмотря на то, что не смогла справиться с внезапным ударом.

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

В этой стратегии есть несколько основных улучшений:

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

  2. В сочетании с показателем волатильности изменяется параметр RSI, снижается чувствительность при значительных колебаниях, повышается чувствительность при низких колебаниях.

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

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

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

  6. Оптимизация стратегии управления позициями, изменение пропорций позиций в зависимости от динамики рисков.

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

Noro’s Value Channel Strategy v1.1 в целом является простой и практичной стратегией отслеживания тенденций. Она объединяет несколько показателей для идентификации направления средне-длинной линии и устанавливает более осторожные правила открытия позиций. Есть еще место для дальнейшего улучшения в оптимизации механизмов остановки убытков, динамических параметров корректировки и т. Д. Но общая концепция стратегии проста, проста в практическом применении и очень подходит для одной из входных стратегий количественной торговли.

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

//Noro
//2018

//@version=2
strategy(title = "Noro's Price Channel Strategy v1.1", shorttitle = "Price Channel str 1.1", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
usecol = input(true, defval = true, title = "Use color strategy")
usersi = input(true, defval = true, title = "Use RSI strategy")
lev = input(1, defval = 1, minval = 1, maxval = 100, title = "leverage")
pch = input(30, defval = 30, minval = 2, maxval = 200, title = "Price Channel")
showcl = input(true, defval = true, title = "Show center-line")
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")
src = close

//Price channel
lasthigh = highest(src, pch)
lastlow = lowest(src, pch)
center = (lasthigh + lastlow) / 2
trend = low > center ? 1 : high < center ? -1 : trend[1]
col = showcl ? blue : na
plot(center, color = col, linewidth = 2)

//Bars
bar = close > open ? 1 : close < open ? -1 : 0
rbars = sma(bar, 2) == -1
gbars = sma(bar, 2) == 1

//Fast RSI
fastup = rma(max(change(src), 0), 2)
fastdown = rma(-min(change(src), 0), 2)
fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))

//Signals
body = abs(close - open)
abody = sma(body, 10)
up1 = rbars and close > center and usecol
dn1 = gbars and close < center and usecol
up2 = fastrsi < 25 and close > center and usersi
dn2 = fastrsi > 75 and close < center and usersi
exit = (((strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open)) and body > abody / 2)
lot = strategy.equity / close * lev

//Trading
if up1 or up2
    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 dn1 or dn2
    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 time > timestamp(toyear, tomonth, today, 23, 59) or exit
    strategy.close_all()