Эта стратегия использует перекрестное использование стохастики между линиями K и D для генерации торговых сигналов, типичная стохастическая стратегия торговли.
Вычислить стохастические линии K и D за данный период.
Пересечение линии К над линией D генерирует сигналы покупки.
Пересечение линии К ниже линии D генерирует сигналы продажи.
Можно установить диапазон даты обратного тестирования для проверки эффективности стратегии.
Простые и понятные правила торговли кроссовером.
Стохастические показатели чувствительны к уровням перекупленности и перепродажи.
Линии K и D образуют легкие торговые сигналы.
Обратный тест проверяет эффективность стратегии.
Стохастику легко вычислить и реализовать.
Конкретный код, легкий для дальнейшего развития.
Пересечения могут генерировать ложные сигналы.
Нет остановки потери или получения прибыли.
Не может различать тенденции и диапазоны.
Обратный тест несет в себе предвзятость.
Реальные результаты торговли могут отличаться от обратных тестов.
Испытать параметры для поиска оптимальных значений.
Добавить фильтр тренда для дополнительной проверки.
Встройте механизмы стоп-лосса и прибыли.
Включить другие факторы для подтверждения сигнала.
Обрабатывайте данные обратных тестов, чтобы исключить предвзятость.
Бумажная торговля для оптимизации параметров для торговли в режиме реального времени.
Эта стратегия торгует простыми кроссоверами стохастики, легко реализуемыми, но требуют уточнений для стабильности. Улучшение ее с помощью настройки параметров, контроля рисков и т. Д. может превратить ее в надежную квантовую торговую систему.
/*backtest start: 2023-08-20 00:00:00 end: 2023-09-19 00:00:00 period: 2h basePeriod: 15m 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/ // © utanico //@version=4 strategy(title="Stochastic", overlay=true, shorttitle="Stoch") periodK = input(35, title="K", minval=1) periodD = input(21, title="D", minval=1) smoothK = input(21, title="Smooth", minval=1) startYear = input(type=input.integer, title = "開始年", defval = 2020) startMonth = input(type=input.integer, title = "開始月", defval = 1) startDay = input(type=input.integer, title = "開始日", defval = 1) endYear = input(type=input.integer, title = "終了年", defval = 2030) endMonth = input(type=input.integer, title = "終了月", defval = 12) endDay = input(type=input.integer, title = "終了日", defval = 31) //開始日時 test_start = timestamp(startYear, startMonth, startDay, 00, 00) //終了日時 test_end = timestamp(endYear, endMonth, endDay, 00, 00) //テスト期間の指定 is_test = true k = sma(stoch(close, high, low, periodK), smoothK) d = sma(k, periodD) if (is_test) if (k > d) strategy.entry("Stoch_LE", strategy.long, comment="Stoch_LE") //if (strategy.opentrades > 0 and k < d) //strategy.close("Stoch_LE",comment="CloseLONG") if (k < d) strategy.entry("Stoch_SE", strategy.short, comment="Stoch_SE") //if (strategy.opentrades < 0 and k > d) //strategy.close("Stoch_SE",comment="CloseShort")