Стратегия краткосрочной торговли по развороту и прорыву диапазона Nut 123


Дата создания: 2024-01-29 16:31:04 Последнее изменение: 2024-01-29 16:31:04
Копировать: 0 Количество просмотров: 547
1
Подписаться
1617
Подписчики

Стратегия краткосрочной торговли по развороту и прорыву диапазона Nut 123

Обзор

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

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

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

  1. Стратегия переворота в Nut123

Она представляет собой систематически модифицированную обратную стратегию, описанную в книге Ульфа Дженсена P183. Продажа происходит, когда цена закрытия 2 дня подряд выше цены закрытия предыдущего дня, а на 9 день стохастическая медленная линия ниже 50; продажа - когда цена закрытия 2 дня подряд ниже цены закрытия предыдущего дня, а на 9 день стохастическая быстрая линия выше 50.

  1. Стратегия прорыва

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

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

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

Эта стратегия объединяет в себе преимущества двух подстратегий: обратной стратегии и стратегии прорыва, чтобы в совокупности принять во внимание больше факторов, которые могут отфильтровывать некоторые шумные сделки и повысить вероятность выигрыша.

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

  2. В этом случае, как и в случае с прорывами, есть возможность использовать стратегию, которая позволяет уловить движение в короткой линии после прорыва.

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

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

Также существуют следующие риски:

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

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

  3. Ни одна из этих подстратегий не гарантирована эффективностью при использовании в одиночку, и использование в комбинации может привести к неудаче.

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

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

В этой стратегии есть место для дальнейшей оптимизации:

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

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

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

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

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

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

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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 01/07/2019
// 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
//    Breakout Range Short Strategy
//
// 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

BreakoutRangeShort(look_bak) =>
    pos = 0
    xLowest = lowest(low, look_bak)
    pos :=	iff(low < xLowest[1], -1, 0) 
    pos

strategy(title="Combo Backtest 123 Reversal & Breakout Range Short", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
look_bak = input(4, minval=1, title="Look Bak")
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posBreakoutRangeShort = BreakoutRangeShort(look_bak)
pos = iff(posReversal123 == 1 and posBreakoutRangeShort == 1 , 1,
	   iff(posReversal123 == -1 and posBreakoutRangeShort == -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 ? color.red: possig == 1 ? color.green : color.blue )