Стратегия покупки и продажи точек на основе KDJ и RSI


Дата создания: 2023-11-27 10:57:16 Последнее изменение: 2023-11-27 10:57:16
Копировать: 0 Количество просмотров: 2432
1
Подписаться
1617
Подписчики

Стратегия покупки и продажи точек на основе KDJ и RSI

Обзор

Эта стратегия объединяет индикаторы KDJ и RSI для определения времени покупки/продажи. Она подает торговый сигнал, когда индикаторы KDJ и RSI дают сигнал покупки/продажи.

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

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

В частности, когда J-линия KDJ пересекает K-линию снизу, это рассматривается как сигнал к покупке, а когда J-линия пересекает K-линию снизу, это рассматривается как сигнал к продаже. Это означает, что акции покупаются, когда они переходят из состояния перепродажи в состояние перекупа, и продаются, когда они переходят из состояния перекупа в состояние перепродажи.

В то же время, эта стратегия в сочетании с RSI определяет сильные и слабые сигналы. RSI меньше 30 - это перепродажа, RSI больше 70 - это перепродажа. Когда KDJ выдает сигнал покупки, если RSI также отображается как перепродажа, это повышает надежность сигналов покупки. Напротив, когда KDJ выдает сигнал продажи, если RSI также отображается как перепродажа, это повышает надежность сигналов продажи.

В целом, стратегия дает торговые сигналы в следующих случаях:

Покупательские сигналы:

  1. Линия J KDJ пересекает линию K вверх, и RSI (эпизод 6) < RSI (эпизод 12)
  2. Линия J KDJ пересекает линию K вверх, а RSI ((выпуск 6) пересекает RSI ((выпуск 24)
  3. RSI (период 6) проходит через RSI (период 24) и RSI (период 6) < 40

Продается сигнал:

  1. Линия J KDJ пересекает линию K вниз, и RSI (часть 6) > RSI (часть 12)
  2. Линия J KDJ вниз через линию K, а RSI (выпуск 6) через RSI (выпуск 24)
  3. RSI (на 6-й период) проходит через RSI (на 24-й период) и RSI (на 6-й период) > 60

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

  1. В сочетании с индикатором KDJ и RSI, это делает торговые сигналы более надежными.

  2. Индекс KDJ определяет состояние перепродажи, а RSI определяет состояние слабости, и они помогают лучше уловить переломные моменты.

  3. Сочетание различных условий покупки/продажи, чтобы избежать упущенных возможностей из-за одного показателя.

  4. Параметры RSI установлены в трех группах параметров: 6, 12 и 24, которые применяются для различных уровней цикла, что позволяет более широкому применению стратегии.

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

  1. Как KDJ, так и RSI могут иметь ложные сигналы, что может привести к ненужной торговле.

  2. Многочисленные условия торгов повышают сложность стратегических операций, которые требуют тщательной проверки.

  3. Стратегия также нуждается в тестировании и оптимизации на различных рынках, а также в корректировке параметров.

Оптимизация стратегии

  1. Можно тестировать добавление других показателей, таких как линий буринга, усиление торговых сигналов.

  2. Параметры KDJ и RSI могут быть оптимизированы, чтобы они соответствовали различным периодам.

  3. Риск можно контролировать, повышая стандарты сдерживания убытков.

  4. Можно добавить автоматический механизм остановки убытков.

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

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

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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © innocentChart76064

//@version=5
strategy(title = "buy/sell KDJ RSI", overlay=true)

//Define KDJ parameter
kdj_length = input(9, title = "KDJ length")
signal = input(3,title="signal")

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

c = close
h = ta.highest(high, kdj_length)
l = ta.lowest(low,kdj_length)
RSV = 100*((c-l)/(h-l))
kdj_k = bcwsma(RSV, signal, 1)
kdj_d = bcwsma(kdj_k, signal, 1)
kdj_j = 3 * kdj_k-2 * kdj_d

//Define RSI parameter 
rsi_length_1 = input(6)
rsi_length_2 = input(12)
rsi_length_3 = input(24)
price = close 

//Calculate RSI values
rsi_1 = ta.rsi(price, rsi_length_1)
rsi_2 = ta.rsi(price, rsi_length_2)
rsi_3 = ta.rsi(price, rsi_length_3)

// Trading conditions
longCondition = ta.crossover(kdj_j,kdj_k) and rsi_1 > rsi_2 or ta.crossover(kdj_j,kdj_k) and ta.crossover(rsi_1,rsi_3) or ta.crossover(rsi_1,rsi_3) and rsi_1<40
shortCondition = ta.crossunder(kdj_j,kdj_k) and rsi_1 < rsi_2 or ta.crossunder(kdj_j,kdj_k) and ta.crossunder(rsi_1,rsi_3) or ta.crossunder(rsi_1,rsi_3) and rsi_1>60
// Enter long trade
strategy.entry("Long", strategy.long, when=longCondition)

// Enter short trade
strategy.entry("Short", strategy.short, when=shortCondition)