N Bar Close ниже открытой короткой стратегии

Автор:Чао Чжан, Дата: 2023-12-26 10:29:12
Тэги:

img

Обзор

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

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

Стратегия использует переменную nCounter для подсчета количества последовательных строк с закрытием ниже открытой. Когда цена закрытия ниже, чем цена открытия, nCounter увеличивается на 1. Когда цена закрытия выше, чем цена открытия, nCounter сбрасывается до 0. Когда nCounter достигает параметра ввода nLength, он указывает на N последовательных строк, закрывающихся ниже цены открытия, и сигнал C2 становится 1.

По сигналу, если нет позиции, будет отправлен короткий ордер. Если уже в короткой позиции, продолжайте удерживать позицию. После открытия позиции, послеценка записывает цену входа. Приобретение прибыли и остановка убытков устанавливаются на основе цены входа: если цена достигает точки получения прибыли (вход + вход takeprofit), закрыть позицию и сбросить; если цена достигает точки остановки убытков (вход - вход stoploss), закрыть позицию и сбросить.

Анализ преимуществ

Основные преимущества этой стратегии:

  1. Простая и понятная логика, легко понятная и реализуемая.
  2. Настраиваемые параметры, гибкие в различных рыночных условиях.
  3. Укомплектованные с получением прибыли и остановкой убытков, эффективно контролируют риски.

Анализ рисков

Основные риски этой стратегии:

  1. N bar close below open не может полностью подтвердить изменение тренда, может возникнуть ложный сигнал.
  2. Неправильное установление стоп-лосса или прибыли может привести к преждевременному выходу или увеличению потерь.

Руководство по оптимизации

Стратегия может быть улучшена в следующих аспектах:

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

  2. Добавьте подтверждение объема, увеличение объема может лучше подтвердить изменение тренда.

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

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

Заключение

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


/*backtest
start: 2023-12-18 00:00:00
end: 2023-12-25 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 05/02/2020
// Evaluates for n number of consecutive lower closes. Returns a value 
// of 1 when the condition is true or 0 when false.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="N Bars Down", shorttitle="NBD Backtest", overlay = false) 
nLength = input(4, minval=1)
input_takeprofit = input(20, title="Take Profit pip", step=0.01)
input_stoploss = input(10, title="Stop Loss pip", step=0.01)
nCounter = 0
nCounter := iff(close[1] <= open[1], nz(nCounter[1],0)+1,
             iff(close[1] > open[1], 0, nCounter))
C2 = iff(nCounter >= nLength, 1, 0)
posprice = 0.0
pos = 0
barcolor(nz(pos[1], 0) == -1 ? color.red: nz(pos[1], 0) == 1 ? color.green : color.blue ) 
posprice := iff(C2== 1, close, nz(posprice[1], 0)) 
pos := iff(posprice > 0, -1, 0)
if (pos == 0) 
    strategy.close_all()
if (pos == -1)
    strategy.entry("Short", strategy.short)
posprice := iff(low <= posprice - input_takeprofit and posprice > 0, 0 ,  nz(posprice, 0))
posprice := iff(high >= posprice + input_stoploss and posprice > 0, 0 ,  nz(posprice, 0))
plot(C2, title='NBD', color=color.red)

Больше