N Последовательное повышение закрывает стратегию прорыва

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

img

Обзор

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

Принцип стратегии

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

В частности, если close[1]>=open[1], nCounter добавляет 1, что указывает на подъем; если close[1]

Затем сравните nCounter с параметром nLength. Когда nCounter>=nLength, выходный сигнал C1=1; в противном случае C1=0. Здесь nLength - это количество последовательных восходящих свечей, которые мы определили для генерации сигнала.

После получения сигнала C1=1, если нет текущей позиции, выйти на длинную позицию; если уже на длинной позиции, продолжать держать.

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

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

Это типичная тенденция, следующая за стратегией с нижеперечисленными сильными сторонами:

  1. Он может воспользоваться возможностями восходящего тренда цены акций, подходящей как длинная стратегия
  2. N последовательных подъемов в качестве входного сигнала может эффективно отфильтровать ложный прорыв и уменьшить ненужные сделки
  3. Установка стоп-лосса и прибыли может ограничить риск снижения и зафиксировать прибыль
  4. Логика проста и понятна, легко понять и изменить
  5. Частота торговли может контролироваться путем настройки параметра nLength

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

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

  1. Если восходящий тренд изменится, неудача вовремя остановить потерю может привести к огромным потерям
  2. Если набор nLength слишком большой, хорошие возможности для входа могут быть упущены
  3. Удержание длинной позиции при крахе рынка может привести к дополнительным потерям.
  4. Использование единых параметров без корректировки на основе различных характеристик запасов может не применяться к некоторым запасам

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

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

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

  1. Они могут корректировать точку остановки потери соответственно на основе изменения цены, чтобы уменьшить риск потери
  2. Оптимизировать параметр nLength. соответственно тестировать для различных типов запасов, чтобы узнать более подходящие значения параметров
  3. Добавьте суждение о рыночной среде. Например, приостановить торговлю, когда рынок падает, чтобы избежать дополнительных потерь на медвежьем рынке
  4. Добавьте другие факторы, такие как объем в качестве вспомогательных условий.
  5. Установите контроль за снятием, как максимально допустимый процент потерь, максимальное время последовательных потерь и т. д. чтобы остановить потерю автоматически контролируя общую потерю

Заключение

Эта стратегия улавливает восходящий тренд путем обнаружения 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)

Больше