Количественная стратегия разворота двойной возможности


Дата создания: 2023-11-14 13:42:47 Последнее изменение: 2023-11-14 13:42:47
Копировать: 0 Количество просмотров: 676
1
Подписаться
1617
Подписчики

Количественная стратегия разворота двойной возможности

Обзор

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

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

Стратегия состоит из двух частей:

  1. 123 перевернуться

Эта часть использует формулу 123 для определения ценового переворота.

  • Если конечная цена ниже, чем вчерашняя, и текущая конечная цена выше, чем вчерашняя, а 9Slow Stochastic ниже 50, то сделайте больше

  • Если цена закрытия выше, чем цена закрытия вчерашнего дня, и текущая цена закрытия ниже, чем цена закрытия вчерашнего дня, а 9 Fast Stochastic выше 50, то проделывается дифференциация

Это позволит обнаружить ранние признаки обратного курса.

  1. Stochastic RSI

В этой части RSI анализируется повторно с использованием стохастического индикатора для определения обратного подтверждения:

  • Вычислить значение RSI длиной 14.

  • Применение стохастического анализа к RSI, длина 14, получение значения K

  • Вычислить 3-дневный SMA D для K

  • Если K-значение выше 80, то больше, а если K-значение ниже 20, то пусто.

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

Анализ преимуществ

Наибольшим преимуществом этой стратегии является использование метода двойного подтверждения, который может эффективно фильтровать ложные сигналы и повышать стабильность. Конкретные преимущества:

  1. 123 обратный курс может предсказать обратную тенденцию цены

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

  3. В сочетании с этим можно повысить шансы на победу и снизить вероятность ложных сообщений.

  4. Оптимизация с использованием комбинации параметров, которая позволяет адаптировать параметры для разных рынков

  5. Программированная реализация простая и понятная, легко применяемая в реальном мире

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

В этой стратегии также есть некоторые риски, о которых следует помнить:

  1. Риск обратной попытки. Рынок может оказаться в ложном повороте, что приведет к убыткам.

  2. Риски оптимизации параметров. Неправильное сочетание параметров может привести к неэффективности стратегии.

  3. Риск переоптимизации. Переоптимизация параметров для исторических данных, а будущие эффекты не могут быть воспроизведены.

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

  5. Риск реализации кода: наличие пробелов в коде может привести к нарушениям эффекта жесткого диска.

Решение проблемы:

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

  2. Оптимизация параметров с использованием метода “walk-forward”.

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

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

  5. Внимательно проверяйте код, чтобы убедиться, что логика правильная.

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

Эта стратегия может быть оптимизирована в следующих аспектах:

  1. Параметры оптимизации. Можно настроить параметры, такие как Stochastic, для оптимизации конкретного рынка.

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

  3. Оптимизация механизма остановки убытков. Можно установить такие способы, как мобильная остановка, временная остановка.

  4. Снижение частоты транзакций. Увеличение условий фильтрации транзакций, снижение частоты транзакций.

  5. Добавление управления позициями. Корректировка размеров позиций в соответствии с рыночными условиями.

  6. Учитывайте факторы комиссионных.

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

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

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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 03/08/2021
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The 
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close 
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. 
// The strategy sells at market, if close price is lower than the previous close price 
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
// This strategy used to calculate the Stochastic RSI
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
    vFast = sma(stoch(close, high, low, Length), KSmoothing) 
    vSlow = sma(vFast, DLength)
    pos = 0.0
    pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
	         iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) 
	pos


SRSI(lengthRSI,lengthStoch,smoothK,smoothD, TopBand,LowBand) =>
    pos = 0.0
    Source = close
    rsi1 = rsi(Source, lengthRSI)
    k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
    d = sma(k, smoothD)
    d_cross_80 = cross(d,TopBand) 
    pos := iff(k > TopBand, 1,
              iff(k < LowBand, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Stochastic RSI", shorttitle="Combo", overlay = true)
line1 = input(true, "---- 123 Reversal ----")
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
line2 = input(true, "---- Stochastic RSI ----")
TopBand = input(80, step=0.01)
LowBand = input(20, step=0.01)
lengthRSI = input(14, minval=1)
lengthStoch = input(14, minval=1)
smoothK = input(3, minval=1)
smoothD = input(3, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posSRSI = SRSI(lengthRSI,lengthStoch,smoothK,smoothD, TopBand,LowBand)
pos = iff(posReversal123 == 1 and posSRSI == 1 , 1,
	   iff(posReversal123 == -1 and posSRSI == -1, -1, 0)) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1 , 1, pos))	   
if (possig == 1 ) 
    strategy.entry("Long", strategy.long)
if (possig == -1 )
    strategy.entry("Short", strategy.short)	 
if (possig == 0) 
    strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )