Основная логика этой стратегии заключается в том, чтобы обнаружить, продолжает ли цена закрытия N последовательных свечей расти. Если это так, займите длинную позицию; в противном случае, закрыть позицию. Это может уловить восходящий тренд цены акций и принести прибыль.
Основным показателем этой стратегии является nCounter. Он сравнивает цену закрытия и цену открытия текущей свечи, чтобы судить о том, растет ли цена.
В частности, если close[1]>=open[1], nCounter добавляет 1, что указывает на подъем; если close[1]
Затем сравните nCounter с параметром nLength. Когда nCounter>=nLength, выходный сигнал C1=1; в противном случае C1=0. Здесь nLength - это количество последовательных восходящих свечей, которые мы определили для генерации сигнала.
После получения сигнала C1=1, если нет текущей позиции, выйти на длинную позицию; если уже на длинной позиции, продолжать держать.
Кроме того, эта стратегия устанавливает условия остановки потерь и получения прибыли. Если цена падает ниже цены входа на определенный процент, остановка потерь выходит из позиции; если повышается выше цены входа на определенный процент, получать прибыль.
Это типичная тенденция, следующая за стратегией с нижеперечисленными сильными сторонами:
В этой стратегии есть некоторые риски, главным образом в следующих аспектах:
Чтобы уменьшить эти риски, мы можем установить более строгие стоп-лосс, оптимизировать nLength, добавить правила рыночных условий или тестировать параметры отдельно для разных акций. Конечно, ни одна стратегия не может полностью избежать потерь.
Учитывая вышеперечисленные риски, мы можем оптимизировать стратегию из следующих аспектов:
Эта стратегия улавливает восходящий тренд путем обнаружения N последовательных восходящих свечей. Она может эффективно проводить трендовые наблюдения. Преимущества заключаются в простой логике, гибкой настройке параметров, фильтрации ложного прорыва. Но есть также некоторые риски. Для улучшения ей необходимо добавить такие модули, как стоп-лосс, оптимизация параметров, суждение об окружающей среде. В целом эта стратегия обеспечивает ценную базовую модель для количественной торговли. Она может стать мощным торговым инструментом после непрерывного улучшения.
/*backtest start: 2023-01-01 00:00:00 end: 2023-12-07 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 05/02/2020 // Evaluates for n number of consecutive higher 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 Up", shorttitle="NBU 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)) C1 = 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(C1== 1, close, nz(posprice[1], 0)) pos := iff(posprice > 0, 1, 0) if (pos == 0) strategy.close_all() if (pos == 1) strategy.entry("Long", strategy.long) posprice := iff(low <= posprice - input_stoploss and posprice > 0, 0 , nz(posprice, 0)) posprice := iff(high >= posprice + input_takeprofit and posprice > 0, 0 , nz(posprice, 0)) plot(C1, title='NBU', color=color.green)