Стратегия Noro
Ключевыми аспектами являются:
Канал цены определяет общую тенденцию. Канал, сформированный путем заглядывания вверх/вниз, определяет восходящий/снижающий тренд.
RSI указывает на перекупленность/перепроданность на момент входа.
Фильтр тела обеспечивает окончательный сигнал. Торгуется только если тело свечи превышает порог, чтобы избежать шума.
Длинные записи в восходящем тренде на бычьих сигналах, короткие записи в нисходящем тренде на медвежьих сигналах.
Факультативные цвета фона четко иллюстрируют тенденцию.
Настраиваемые временные рамки для выборочной торговли.
Многочисленные индикаторы выстраиваются, чтобы создать относительно стабильную тенденцию следующей системы.
Основными преимуществами являются:
Ценовой канал интуитивно определяет общее направление тренда.
RSI эффективно обнаруживает уровни перекупленности/перепроданности при входе в систему.
Фильтр тела улучшает качество сигнала и избегает ложных сигналов.
Многоиндикаторное подтверждение повышает точность.
Простые показатели уменьшают риски приспособления кривой.
Настраиваемые временные рамки торговли добавляют гибкости.
Легко в использовании с минимальными параметрами.
Цвета фона обеспечивают четкость зрения.
Некоторые риски следует учитывать:
Риск ошибочной идентификации тенденции ценового канала.
Неточные риски сигналов RSI.
Фильтр тела исключает действительные сигналы.
Риск снижения при коррекции тренда.
Риск оптимизации от неправильной настройки параметров.
Риск размещения позиций от полного распределения по умолчанию.
Риск выбора инструмента, если он применяется к активам, не относящимся к тренду.
Риски временных рамок торговли при неправильной конфигурации.
Некоторые возможности улучшения:
Добавьте стратегию стоп-лосса для контроля потери на торговле.
Оптимизировать параметры на основе поведения прибора.
Включить правила размещения позиций, основанные на силе тренда.
Внедряйте лимиты привлечения для сдерживания потерь.
Добавить объемный анализ цен для проверки сигнала.
Внедрить машинное обучение для оптимизации параметров.
Специализировать параметры на основе класса активов.
Усовершенствовать логику временных рамок для большей гибкости.
С помощью оптимизации параметров, контроля риска и других улучшений, стратегия имеет потенциал стать последовательно прибыльной трендовой торговой стратегией.
/*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()