Краткосрочная стратегия торговли на основе стохастического индекса

Автор:Чао Чжан, Дата: 2024-01-18 16:14:34
Тэги:

img

Обзор

Эта стратегия разрабатывает краткосрочную торговую стратегию, основанную на индикаторе стохастического индекса (SMI), в основном для краткосрочной торговли акциями и цифровыми валютами.

Принцип стратегии

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

SMI = (MA(Close - LL) /(HH - LL)) * 100

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

В этой стратегии параметр SMA N принимает 5 и 3, что указывает на то, что используется 5-дневный и 3-дневный стохастический индекс. Обычно использование только одного параметра может легко генерировать неправильные сигналы. Поэтому эта стратегия использует двойную двойную подтверждение SMA, которая может отфильтровать некоторое шумиху.

Кроме того, индикатор EMA наложен на стратегию, а параметры установлены таким образом, чтобы соответствовать индикатору SMI, чтобы дополнительно подтвердить сигналы индикатора SMI и избежать ошибок в оценке.

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

  1. Оценить перекупленные и перепроданные зоны на основе индикатора стохастического индекса для выявления возможностей реверсии
  2. Двойные параметры SMA могут эффективно отфильтровывать неправильные сигналы
  3. Сочетание с индикатором EMA для подтверждения, чтобы избежать ошибочного суждения

Риски стратегии

  1. Даже при двойных индикаторах SMA и EMA, риска не могут быть полностью избегнуты.
  2. На рынке с тенденциями эта стратегия может привести к слишком большому количеству обратных операций, что повлияет на общую прибыль.

Предотвращение риска:

  1. Использование стоп-потери для контроля одиночных потерь
  2. Используйте эту стратегию только на боковых или диапазоне торговых рынков, чтобы избежать ее использования на трендовых рынках

Руководство по оптимизации

  1. Испытать показатели SMI при различных параметровых настройках для поиска оптимальной комбинации параметров
  2. Попробуйте комбинировать с другими индикаторами для подтверждения, такими как полосы Боллинджера, KDJ и т. д., чтобы улучшить точность сигнала.
  3. Оптимизировать стратегии стоп-лосса и устанавливать переменный стоп-лосс на основе волатильности рынка
  4. Комбинировать с индикаторами оценки тренда, чтобы избежать использования во время трендовых рынков

Резюме

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


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

//@version=2
strategy(title="SMIndex Strategy", shorttitle="SMIndex Strategy", overlay=false, pyramiding=0, initial_capital=1000, currency=currency.USD)
//
sm1 = input(5, 'sm1')
sm2 = input(3, 'sm2')
//
Lower = lowest (low, sm1)
Hight = highest (high, sm1)
Downsideup = Hight - Lower
Upsidedown = close - (Hight+Lower)/2
//
ema1 = ema(ema(Upsidedown,sm2),sm2)
ema2 = ema(ema(Downsideup,sm2),sm2)
smi = ema2 != 0 ? (ema1/(ema2/2)*100) : 0
//
obLevel1 = input(55, "Over Bought Level 1")
obLevel2 = input(35, "Over Bought Level 2")
osLevel1 = input(-55, "Over Sold Level 1")
osLevel2 = input(-35, "Over Sold Level 2")
//
// h1=plot(obLevel1, color=red, title='Sell 1s 55 do', style=dashed, linewidth=2)
// h2=plot(obLevel2, color=maroon, title='Sell 2s 35 do', style=circles, linewidth=2)
// h3=plot(osLevel1, color=red, title='Buy 1s -55 up', style=dashed, linewidth=2)
// h4=plot(osLevel2, color=maroon, title='Buy 2s -35 up', style=circles, linewidth=2)
plot(smi, color=gray, style=line, linewidth=0, transp=5)
plot(ema1, color=orange, style=line, linewidth=0, transp=5)
plot(0, color=gray, style=circles, linewidth=1, title='Base Line')
//
// fill(h1, h2, color=red, transp=55)
// fill(h3, h4, color=green, transp=55)
//Strategy Long Short Entry
longEntry = (smi) < -75 or (smi) < -65 or (smi) < -55 or (smi) < -45 
shortEntry = (smi) > 75 or (smi) > 65 or (smi) > 55 or (smi) > 45 

longCondition = longEntry
if(longCondition)
    strategy.entry("long", strategy.long)
    
shortCondition = shortEntry
if(shortCondition)
    strategy.entry("short", strategy.short)


Больше