Стратегия покупки положительного прорыва линии KDJ


Дата создания: 2024-02-01 10:28:12 Последнее изменение: 2024-02-01 10:28:12
Копировать: 0 Количество просмотров: 1098
1
Подписаться
1617
Подписчики

Стратегия покупки положительного прорыва линии KDJ

Обзор

Стратегия прорыва на линии KDJ - это стратегия количественного трейдинга, основанная на индикаторе KDJ. Стратегия использует главным образом золотой крест линии J и линии D индикатора KDJ для формирования сигнала покупки, делая много входов при прохождении линии D на линии J. Стратегия проста, проста в реализации и подходит для начинающих в количественном трейдинге.

Стратегический принцип

Основными техническими показателями, используемыми в этой стратегии, являются показатели KDJ.

K = {окончательная цена за день - наименьшая цена за N дней} ÷ {окончательная цена за N дней - наибольшая цена за N дней} × 100;

Д = M-дневная скользящая средняя по K-значению;

J = 3K-2D.

Согласно установке индикатора KDJ, когда J-значение превышает D-значение, указывающее на то, что цена акции перевернулась вверх, можно сделать больше; когда J-значение превышает D-значение, указывающее на то, что цена акции перевернулась вниз, можно сделать пробел.

Стратегия заключается в том, чтобы использовать вышеуказанное правило, чтобы сделать много входных позиций при покупке сигнала при прохождении линии D на линии J, т.е. при формировании золотого форка. Выйти из позиции, когда exitsignal больше линии J, чем 100.

Стратегические преимущества

  1. Используйте индикатор KDJ, чтобы определить, когда стоит купить, который учитывает информацию о падении цен на акции и является более надежным.

  2. Правила определения стратегических сигналов просты, понятны и легко применяются, поэтому они подходят для начинающих в количественной торговле.

  3. Применение стратегии “стоп-стоп-лосс” позволяет эффективно контролировать риск.

  4. Оптимизация параметров стратегии имеет большое пространство и гибкость в реализации.

Стратегический риск

  1. Показатели KDJ легко поддаются ложному сигналу, что может привести к убыткам.

  2. После покупки, короткие корректировки рынка могут привести к потере выхода, что не позволит уловить большую тенденцию.

  3. Неправильная настройка параметров может привести к частым сделкам или неочевидным сигналам.

  4. Необходимо обратить внимание на влияние затрат на общую прибыль.

Основные методы управления рисками: рациональная оптимизация параметров, усиление индекса отслеживания, надлежащее расширение пределов остановки и т. д.

Направление оптимизации

  1. Оптимизируйте параметры KDJ, чтобы найти оптимальную комбинацию параметров.

  2. Добавить условия фильтрации, чтобы избежать ложных сигналов. Фильтрация может быть выполнена в сочетании с другими показателями или формами.

  3. В зависимости от типа рынка можно выбрать различные параметры.

  4. Стоп-лосс может быть расширен соответствующим образом, чтобы уменьшить вероятность выхода из стоп-лосса.

  5. Это может быть связано с анализом таких показателей, как объем сделок, чтобы избежать обмана.

Подвести итог

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

Исходный код стратегии
/*backtest
start: 2023-01-25 00:00:00
end: 2024-01-31 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//  ## !<------------------ Script --------------------------> 
//@version=5
strategy('KDJ NVDA', shorttitle='KDJ')

ilong = input(9, title='period')
isig = input(3, title='signal')

bcwsma(s, l, m) =>
    _bcwsma = float(na)
    _s = s
    _l = l
    _m = m
    _bcwsma := (_m * _s + (_l - _m) * nz(_bcwsma[1])) / _l
    _bcwsma

// profit strategy add
profit_m = input.float(1.20,"Profit Margin",minval=1.0,maxval=1.99,step=0.05)
stop_m = input.float(0.98,"Stop Loss Margin",minval=0.0,maxval=1,step=0.05)

// Make input options that configure backtest date range
startDate = input.int(title="Start Date", defval=1, minval=1,maxval=31)
startMonth = input.int(title="Start Month", defval=1,minval=1,maxval=12)
startYear = input.int(title="Start Year", defval=2023,minval=2018,maxval=2024)
endDate = input.int(title="End Date", defval=1, minval=1,maxval=31)
endMonth = input.int(title="End Month", defval=1,minval=1,maxval=12)
endYear = input.int(title="End Year", defval=2024,minval=2018,maxval=2099)

// intialization of variables
// Look if the close time of the current bar
// falls inside the date range
inDateRange = (time >= timestamp(syminfo.timezone, startYear,startMonth, startDate, 0, 0)) and (time < timestamp(syminfo.timezone, endYear, endMonth, endDate, 0, 0))

c = close
h = ta.highest(high, ilong)
l = ta.lowest(low, ilong)
RSV = 100 * ((c - l) / (h - l))
pK = bcwsma(RSV, isig, 1)
pD = bcwsma(pK, isig, 1)
pJ = 3 * pK - 2 * pD
KDJ = math.avg(pD, pJ, pK)

go_long= ta.crossunder(pD,pJ)


if (inDateRange and go_long)
    strategy.entry("S",strategy.long,comment="C")
	// strategy.exit("S", limit=c*profit_m, stop=c*stop_m, comment="SL/SP")
	
if (inDateRange and pJ > 100)
	strategy.close("S", comment="TP")
	
// Plot options
// plot(pK, color= #1E88E5)
// plot(pD, color=#FF6F00)
// plot(ma, color=color.yellow)
// bgcolor(pJ>pD? color.green : color.red)

plot(pK, title='% K', color=color.new(color.orange, 0))
plot(pD, title='% D', color=color.new(color.lime, 0))
plot(pJ, title='% J', color=color.new(color.fuchsia, 0))
plot(KDJ, title='KDJ', color=color.new(color.white, 0))
// </PINE> </SCRIPT>
// ## This source code is subject to the terms of the ozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// ## !<------------------ End Script -------------------------->