Тенденция после стратегии

Автор:Чао Чжан, Дата: 2023-09-25 17:50:11
Тэги:

Обзор

Стратегия Noro's Trend Following - это простая стратегия торговли трендом, основанная на ценовом канале, RSI и фильтре тела. Она идентифицирует общий тренд с использованием ценового канала, входит на основе уровней перекупленности / перепроданности RSI и использует фильтр тела для дополнительного подтверждения сигнала.

Логика стратегии

Ключевыми аспектами являются:

  1. Канал цены определяет общую тенденцию. Канал, сформированный путем заглядывания вверх/вниз, определяет восходящий/снижающий тренд.

  2. RSI указывает на перекупленность/перепроданность на момент входа.

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

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

  5. Факультативные цвета фона четко иллюстрируют тенденцию.

  6. Настраиваемые временные рамки для выборочной торговли.

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

Преимущества

Основными преимуществами являются:

  1. Ценовой канал интуитивно определяет общее направление тренда.

  2. RSI эффективно обнаруживает уровни перекупленности/перепроданности при входе в систему.

  3. Фильтр тела улучшает качество сигнала и избегает ложных сигналов.

  4. Многоиндикаторное подтверждение повышает точность.

  5. Простые показатели уменьшают риски приспособления кривой.

  6. Настраиваемые временные рамки торговли добавляют гибкости.

  7. Легко в использовании с минимальными параметрами.

  8. Цвета фона обеспечивают четкость зрения.

Риски

Некоторые риски следует учитывать:

  1. Риск ошибочной идентификации тенденции ценового канала.

  2. Неточные риски сигналов RSI.

  3. Фильтр тела исключает действительные сигналы.

  4. Риск снижения при коррекции тренда.

  5. Риск оптимизации от неправильной настройки параметров.

  6. Риск размещения позиций от полного распределения по умолчанию.

  7. Риск выбора инструмента, если он применяется к активам, не относящимся к тренду.

  8. Риски временных рамок торговли при неправильной конфигурации.

Возможности для расширения

Некоторые возможности улучшения:

  1. Добавьте стратегию стоп-лосса для контроля потери на торговле.

  2. Оптимизировать параметры на основе поведения прибора.

  3. Включить правила размещения позиций, основанные на силе тренда.

  4. Внедряйте лимиты привлечения для сдерживания потерь.

  5. Добавить объемный анализ цен для проверки сигнала.

  6. Внедрить машинное обучение для оптимизации параметров.

  7. Специализировать параметры на основе класса активов.

  8. Усовершенствовать логику временных рамок для большей гибкости.

Заключение

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


/*backtest
start: 2023-08-25 00:00:00
end: 2023-09-24 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(title = "Noro's TrendMaster Strategy v1.0", shorttitle = "TrendMaster str 1.0", 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")
len = input(21, defval = 20, minval = 2, maxval = 200, title = "MA Period")
needbg = input(false, defval = false, title = "Need trend Background?")
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")

//PriceChannel 1
lasthigh = highest(close, len)
lastlow = lowest(close, len)
center = (lasthigh + lastlow) / 2

//Trend
trend = low > center and low[1] > center[1] ? 1 : high < center and high[1] < center[1] ? -1 : trend[1]

//Bars
bar = close > open ? 1 : close < open ? -1 : 0

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

//Body filter
nbody = abs(close - open)
abody = sma(nbody, 10)
body = nbody > abody / 2

//Signals
up1 = trend == 1 and rsi < 60 and (strategy.position_avg_price > close or strategy.position_size <= 0) and body
dn1 = trend == -1 and rsi > 40 and (strategy.position_avg_price < close or strategy.position_size >= 0) and body

//Lines
plot(center, color = blue, linewidth = 3, transp = 0, title = "MA")

//Background
col = needbg == false ? na : trend == 1 ? lime : red
bgcolor(col, transp = 80)

//Trading

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

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

Больше