Обратная оценка цен с использованием стратегии перекрестного захвата

Автор:Чао Чжан, Дата: 2024-01-17 16:29:13
Тэги:

img

Обзор

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

Логика стратегии

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

  1. 123 Стратегия отмены
  • Когда цена закрытия меняется с более высокой на более низкую в течение двух дней, и 9-дневный стохастический индикатор находится на нижней полосе (ниже порога), генерируется сигнал покупки
  • Когда цена закрытия меняется с низкой на более высокую в течение двух дней, и 9-дневный стохастический индикатор находится на верхней полосе (выше порога), генерируется сигнал продажи
  1. Стохастическая кроссоверная стратегия
  • Когда линия %K пересекается ниже линии %D, в то время как обе линии находятся на уровнях перекупленности, генерируется сигнал продажи
  • Когда линия %K пересекает линию %D, в то время как обе линии находятся на уровне перепроданности, генерируется сигнал покупки

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

Преимущества

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

К конкретным преимуществам относятся:

  1. Быстрое отслеживание рыночных изменений без длительного ожидания консолидации
  2. Повышенная точность сигнала при двойной проверке обеих подстратегий
  3. Лучший показатель выигрыша, объединяющий анализ как ценового движения, так и показателей

Риски

Эта стратегия также сопряжена с некоторыми рисками:

  1. Цена может резко измениться во время высокой волатильности, вызывая неправильные сигналы
  2. Плохая настройка параметров индикатора влияет на качество сигнала
  3. Не уверен в сроке отмены, существует некоторое время риска

Эти риски можно управлять путем корректировки параметров, использования стоп-лосса и т.д.

Возможности для расширения

Некоторые способы улучшения стратегии:

  1. Оптимизировать параметры индикатора
  2. Добавить другие фильтры, например, объем
  3. Настройка параметров на основе символов и рыночных условий
  4. Включить стоп-лосс для контроля риска
  5. Использование машинного обучения для идентификации сигналов

Заключение

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


/*backtest
start: 2024-01-09 00:00:00
end: 2024-01-16 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 15/09/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 back testing strategy generates a long trade at the Open of the following 
// bar when the %K line crosses below the %D line and both are above the Overbought level.
// It generates a short trade at the Open of the following bar when the %K line 
// crosses above the %D line and both values are below the Oversold level.
//
// 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


StochCross(Length, DLength,Oversold,Overbought) =>
    pos = 0.0
    vFast = stoch(close, high, low, Length)
    vSlow = sma(vFast, DLength)
    pos := iff(vFast < vSlow and vFast > Overbought and vSlow > Overbought, 1,
    	      iff(vFast >= vSlow and vFast < Oversold and vSlow < Oversold, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Stochastic Crossover", 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 Crossover ----")
LengthSC = input(7, minval=1)
DLengthSC = input(3, minval=1)
Oversold = input(20, minval=1)
Overbought = input(70, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posmStochCross = StochCross(LengthSC, DLengthSC,Oversold,Overbought)
pos = iff(posReversal123 == 1 and posmStochCross == 1 , 1,
	   iff(posReversal123 == -1 and posmStochCross == -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 )

Больше