
Основная логика этой стратегии заключается в том, чтобы обнаружить, продолжается ли рост цен на закрытие последовательной N-корневой K-линии, если да, то сделайте больше; если не удовлетворены, то сравните позиции. Таким образом, можно улавливать тенденцию к росту цен на акции и получать прибыль.
Центральным показателем этой стратегии является nCounter, который определяет, повысилась ли цена, сравнивая текущие цены закрытия и открытия линии K.
В частности, если close[1]>=open[1], то nCounter плюс 1 означает повышение; если close[1]
Затем nCounter сравнивается с параметром nLength, когда nCounter> = nLength, выводит сигнал C1 = 1; в противном случае C1 = 0 . Здесь nLength - это то, сколько последовательных линий вверх K, которые мы определяем, требуется для создания сигнала .
После получения сигнала C1=1, если в настоящее время нет позиции, выполняется больше; если уже есть несколько голов, продолжается держать позиции.
Кроме того, в этой стратегии также установлены условия для остановки и остановки. Если цена ниже определенной пропорции от цены входа, то остановка будет закрыта; если выше определенной пропорции от цены входа, то остановка будет сделана.
Это типичная стратегия отслеживания трендов, которая имеет следующие преимущества:
В этой стратегии есть определенные риски, которые сосредоточены на следующих аспектах:
Чтобы снизить эти риски, мы можем установить более строгие условия для остановки убытков, оптимизировать параметры nLength, добавить правила для определения большого пакета или тестировать параметры для разных акций. Конечно, любая стратегия не может полностью избежать убытков, и она должна соответствовать предпочтениям трейдера в отношении риска.
С учетом вышеперечисленных рисков мы можем продолжить оптимизацию стратегии в следующих направлениях:
Эта стратегия позволяет эффективно отслеживать тенденции, зафиксировав пары сверхновой тенденции путем обнаружения последовательной K-линии с 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)