
Полная версия
Торговые стратегии и индикаторы на Pine Script
Сглаженный импульс: KST разработан таким образом, чтобы выдавать более плавный и менее зашумленный сигнал, чем отдельные ROC, что делает его подходящим для определения значительного долгосрочного импульса.
Практический KST торговые стратегии1. Пересечение KST и сигнальной линии
Это основной способ получения торговых сигналов с помощью KST. Пересечение линии KST и её сигнальной линии указывает на изменение импульса, подтверждающее направление тренда.
Сигнал к покупке: линия KST пересекает сигнальную линию. Это указывает на усиление бычьего импульса.
Сигнал к продаже: линия KST пересекает сигнальную линию снизу вверх. Это указывает на усиление медвежьего импульса.
//@version=5 strategy("KST Crossover Strategy", overlay=true) // Inputs for KST lengths (standard parameters by Martin Pring) roc1Length = input.int(10, title="ROC1 Length", minval=1) sma1Length = input.int(10, title="SMA1 Length", minval=1) roc2Length = input.int(15, title="ROC2 Length", minval=1) sma2Length = input.int(10, title="SMA2 Length", minval=1) roc3Length = input.int(20, title="ROC3 Length", minval=1) sma3Length = input.int(10, title="SMA3 Length", minval=1) roc4Length = input.int(30, title="ROC4 Length", minval=1) sma4Length = input.int(15, title="SMA4 Length", minval=1) signalLength = input.int(9, title="Signal Length", minval=1) // Calculate KST and its signal line [kstValue, signalValue] = ta.kst(close, roc1Length, sma1Length, roc2Length, sma2Length, roc3Length, sma3Length, roc4Length, sma4Length, signalLength) // Plot KST and Signal in a separate pane for visualization plot(kstValue, "KST", color.blue, display=display.pane_only) plot(signalValue, "Signal", color.orange, display=display.pane_only) hline(0, "Zero Line", color.gray, linestyle=hline.style_dotted, display=display.pane_only) // Define conditions for entries longSignal = ta.crossover(kstValue, signalValue) shortSignal = ta.crossunder(kstValue, signalValue) // Strategy entries/exits if (longSignal) strategy.entry("Long", strategy.long) if (shortSignal) strategy.entry("Short", strategy.short)
2. Пересечение нулевой линии KST (подтверждение тренда)
Нулевая линия подтверждает общий рыночный тренд. Превышение нулевой линии указывает на бычий импульс, а снижение – на медвежий.
Подтверждение бычьего тренда: KST пересекает нулевую линию. Это указывает на переход к положительному долгосрочному импульсу.
Подтверждение медвежьего тренда: KST пересекает нулевую линию. Это указывает на переход к отрицательному долгосрочному импульсу.
//@version=5 strategy("KST Zero Line Crossover Strategy", overlay=true) // Inputs for KST lengths roc1Length = input.int(10, title="ROC1 Length", minval=1) sma1Length = input.int(10, title="SMA1 Length", minval=1) roc2Length = input.int(15, title="ROC2 Length", minval=1) sma2Length = input.int(10, title="SMA2 Length", minval=1) roc3Length = input.int(20, title="ROC3 Length", minval=1) sma3Length = input.int(10, title="SMA3 Length", minval=1) roc4Length = input.int(30, title="ROC4 Length", minval=1) sma4Length = input.int(15, title="SMA4 Length", minval=1) signalLength = input.int(9, title="Signal Length", minval=1)
// Signal not used for this strategy // Calculate KST (signal line is not relevant for this zero-line strategy, but calculated by ta.kst) [kstValue, signalValue] = ta.kst(close, roc1Length, sma1Length, roc2Length, sma2Length, roc3Length, sma3Length, roc4Length, sma4Length, signalLength) // Plot KST in a separate pane plot(kstValue, "KST", color.blue, display=display.pane_only) hline(0, "Zero Line", color.gray, linestyle=hline.style_dotted, display=display.pane_only) // Define conditions for entries longSignal = ta.crossover(kstValue, 0) shortSignal = ta.crossunder(kstValue, 0) // Strategy entries/exits if (longSignal) strategy.entry("Long", strategy.long) if (shortSignal) strategy.entry("Short", strategy.short)
3. Стратегия дивергенции KST
Дивергенция между ценой и KST – это очень надёжный сигнал о значительном развороте тренда. Поскольку KST сильно сглажен, его дивергентные сигналы появляются реже, но они более мощные.
Бычья дивергенция: цена формирует более низкий минимум, но KST формирует более высокий минимум. Это указывает на ослабление медвежьего импульса и возможность сильного разворота вверх.
Медвежья дивергенция: цена достигает более высокого максимума, но KST достигает более низкого максимума. Это указывает на ослабление бычьего импульса и вероятность сильного нисходящего разворота.
//@version=5 indicator("KST Divergence Scanner", overlay=true) // Inputs for KST lengths roc1Length = input.int(10, title="ROC1 Length", minval=1) sma1Length = input.int(10, title="SMA1 Length", minval=1) roc2Length = input.int(15, title="ROC2 Length", minval=1) sma2Length = input.int(10, title="SMA2 Length", minval=1) roc3Length = input.int(20, title="ROC3 Length", minval=1) sma3Length = input.int(10, title="SMA3 Length", minval=1) roc4Length = input.int(30, title="ROC4 Length", minval=1) sma4Length = input.int(15, title="SMA4 Length", minval=1) signalLength = input.int(9, title="Signal Length", minval=1) // Calculate KST and its signal line [kstValue, signalValue] = ta.kst(close, roc1Length, sma1Length, roc2Length, sma2Length, roc3Length, sma3Length, roc4Length, sma4Length, signalLength) // Plot KST and Signal in a separate pane plot(kstValue, "KST", color.blue) plot(signalValue, "Signal", color.orange) hline(0, "Zero Line", color.gray, linestyle=hline.style_dotted) // Simple divergence detection (conceptual, robust detection requires advanced pivot logic) // This is a simplified example focusing on price vs KST divergence. // Bullish Divergence (Price lower low, KST higher low) bullishDivergence = close[2] > close[1] and close[1] > close and kstValue[2] < kstValue[1] and kstValue[1] < kstValue // Bearish Divergence (Price higher high, KST lower high) bearishDivergence = close[2] < close[1] and close[1] < close and kstValue[2] > kstValue[1] and kstValue[1] > kstValue plotshape(bullishDivergence, title="Bullish Divergence", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small) plotshape(bearishDivergence, title="Bearish Divergence", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small) alertcondition(bullishDivergence, "Bullish KST Divergence", "Potential bullish reversal based on KST divergence.") alertcondition(bearishDivergence, "Bearish KST Divergence", "Potential bearish reversal based on KST divergence.")
Конец ознакомительного фрагмента.
Текст предоставлен ООО «Литрес».
Прочитайте эту книгу целиком, купив полную легальную версию на Литрес.
Безопасно оплатить книгу можно банковской картой Visa, MasterCard, Maestro, со счета мобильного телефона, с платежного терминала, в салоне МТС или Связной, через PayPal, WebMoney, Яндекс.Деньги, QIWI Кошелек, бонусными картами или другим удобным Вам способом.