Торговая стратегия на основе индикатора KST и индикатора EMA


Дата создания: 2023-11-07 16:36:21 Последнее изменение: 2023-11-07 16:36:21
Копировать: 0 Количество просмотров: 753
1
Подписаться
1617
Подписчики

Торговая стратегия на основе индикатора KST и индикатора EMA

Обзор

Центральная идея этой стратегии заключается в сочетании показателя KST и средней линии EMA, чтобы осуществить суждение о тренде и следовать за ним. Покупайте, когда показатель KST появляется золотой форк и ниже 0, продавайте, когда появляется мертвый форк и выше 0. Вместе с тем, в сочетании со средней линией EMA в качестве поддерживающего сопротивления, только тогда, когда цена закрытия нарушает среднюю линию EMA. Эта стратегия проста, практична, может автоматически отслеживать тенденцию и подходит для средне- и долгосрочных позиций.

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

  1. Вычислить показатель KST: вычислить показатель ROC на 10, 15, 20 и 30 дней, затем произвести соответствующее умножение на них, и, наконец, получить показатель KST с помощью 9-дневного SMA.

  2. Расчет средней линии EMA: средняя линия EMA с длиной расчета 50.

  3. Появление сигнала покупки: Появление сигнала покупки происходит, когда быстрая линия KST проходит медленную линию ((золотой форк) и находится ниже 0, а цена закрытия выше средней линии EMA.

  4. Продажа: Продажа происходит, когда быстрая линия KST пересекает медленную и находится выше 0, а цена закрытия ниже средней линии EMA.

  5. Настройка мобильного стоп-лоска: настройка стоп-лоска на 1% от стоимости счета для автоматического стоп-лоска.

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

  1. Индекс KST может идентифицировать изменения в тренде, средняя линия EMA может подтвердить направление тренда, и в сочетании с этим можно точно определить время ENTRY.

  2. Используйте быстро и медленно скрещивание с 0-ой оси для определения направления KST, чтобы избежать бесполезной торговли.

  3. EMA-одинаковая линия служит в качестве поддерживающего сопротивления, дополнительно фильтруя ложные сигналы, вступая только при прорыве EMA.

  4. Автоматическое отслеживание стоп-лосса для контроля риска и обеспечения прибыльности.

  5. Политические параметры меньше, их легко реализовать и оптимизировать.

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

  1. Показатель KST задерживается при оценке изменения тренда и может упустить некоторые возможности. Можно сократить циклы расчета или оптимизировать способ взвешивания.

  2. EMA имеет отсталость и может потерять силу в момент перелома тренда. Можно попробовать другие показатели или комбинацию из нескольких средних линий.

  3. Слишком мягкие настройки сдерживания могут увеличивать убытки; слишком жесткие могут быть сдерживаемы значительными колебаниями в течение ночи.

  4. Стратегические сигналы часто встречаются, а стоимость сделки может быть высокой.

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

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

  2. Проверьте различные соотношения или комбинации, такие как MA, WMA и т. д., чтобы увидеть, какой из них лучше работает с KST.

  3. Попробуйте скорректировать размер стоп-лосса в зависимости от волатильности или динамики ATR.

  4. Добавить фильтрующие условия, такие как неожиданный рост объема торгов, чтобы избежать обмана.

  5. Подумайте о том, чтобы использовать другие индикаторы, такие как RSI, MACD и т. Д., чтобы сделать стратегию более полной.

  6. Тестирование эффективности параметров различных сортов, разработка оптимизированных программ для различных сортов.

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

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

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

//@version=4
strategy(title="Know Sure Thing and EMA Strategy by JLX", shorttitle="KST EMA JLX", format=format.price, precision=4, initial_capital = 1000, default_qty_type=strategy.percent_of_equity, default_qty_value = 100)
roclen1 = input(10, minval=1, title = "ROC Length #1")
roclen2 = input(15, minval=1, title = "ROC Length #2")
roclen3 = input(20, minval=1, title = "ROC Length #3")
roclen4 = input(30, minval=1, title = "ROC Length #4")
smalen1 = input(10, minval=1, title = "SMA Length #1")
smalen2 = input(10, minval=1, title = "SMA Length #2")
smalen3 = input(10, minval=1, title = "SMA Length #3")
smalen4 = input(15, minval=1, title = "SMA Length #4")
siglen = input(9, minval=1, title = "Signal Line Length")
smaroc(roclen, smalen) => sma(roc(close, roclen), smalen)
kst = smaroc(roclen1, smalen1) + 2 * smaroc(roclen2, smalen2) + 3 * smaroc(roclen3, smalen3) + 4 * smaroc(roclen4, smalen4)
sig = sma(kst, siglen)
plot(kst, color=color.green, title="KST")
plot(sig, color=color.red, title="Signal")
hline(0, title="Zero")

len = input(50, minval=1, title="Length EMA")
src = input(close, title="Source EMA")
offset = input(title="Offset", type=input.integer, defval=0, minval=-500, maxval=500)
fastEMA = ema(src, len)

delta = kst - sig

buySignal = crossover(delta, 0) and kst < 0 and close > fastEMA
sellSignal = crossunder(delta, 0) and kst > 0 and close < fastEMA

longTrailPerc = input(title="Trail Long Loss (%)", type=input.float, minval=0.0, step=0.1, defval=1) * 0.01
shortTrailPerc = input(title="Trail Short Loss (%)",type=input.float, minval=0.0, step=0.1, defval=1) * 0.01

// STEP 2:
// Determine trail stop loss prices
longStopPrice = 0.0, shortStopPrice = 0.0

longStopPrice := if (strategy.position_size > 0)
    stopValue = close * (1 - longTrailPerc)
    max(stopValue, longStopPrice[1])
else
    0
shortStopPrice := if (strategy.position_size < 0)
    stopValue = close * (1 + shortTrailPerc)
    min(stopValue, shortStopPrice[1])
else
    999999

// Submit entry orders
if (buySignal)
    strategy.entry(id="EL", long=true)

if (sellSignal)
    strategy.entry(id="ES", long=false)

// STEP 3:
// Submit exit orders for trail stop loss price
if (strategy.position_size > 0)
    strategy.exit(id="XL TRL STP", stop=longStopPrice)

if (strategy.position_size < 0)
    strategy.exit(id="XS TRL STP", stop=shortStopPrice)



alertcondition(crossover(delta, 0) and kst < 0 and close > fastEMA,'Long alert', 'You should buy')

alertcondition(crossunder(delta, 0) and kst > 0 and close < fastEMA, 'Short alert', 'You should sell')