Комбинированная многопоказательная количественная стратегия торговли

Автор:Чао Чжан, Дата: 2024-01-24 15:10:41
Тэги:

img

Обзор

Эта стратегия использует три технических индикатора цены акций, RSI, StochRSI и Bollinger Bands, и объединяет условия времени и направления торговли для определения сигналов купли и продажи для количественных торговых стратегий.

Принцип

Когда индикатор RSI меньше нижней области и линия StochRSI K пересекает линию D, это считается сигналом покупки.

В то же время, цена акции выше верхней линии полосы Боллинджера или прерывает верхнюю линию полосы Боллинджера также используется в качестве основы для продажи.

Показатель RSI определяет, является ли цена акции перекупленной или перепроданной, StochRSI определяет динамику цены акций, а Bollinger Bands определяет, работает ли цена акции на высоких уровнях и дешевой.

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

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

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

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

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

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

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

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

Оптимизация

  1. Увеличить меры контроля рисков, такие как максимальное использование средств для ограничения потерь.

  2. Например, ускорить параметры RSI, чтобы быстрее обнаружить изменения цен.

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

  4. Выбор акций может относиться к основополагающим факторам, чтобы избежать акций с серьезным финансовым мошенничеством.

Резюме

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


/*backtest
start: 2023-12-24 00:00:00
end: 2024-01-23 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version= 2
strategy("RSI+STOCHRSI+BB Strategy", overlay=true)
lengthrsi = input(6)
overSold = input( 20 )
overBought = input( 70 )
price = close
vrsi = rsi(price, lengthrsi)

smoothK = input(3, minval=1)
smoothD = input(3, minval=1)
lengthRSI = input(14, minval=1)
lengthStoch = input(14, minval=1)
src = input(close, title="RSI Source")

rsi1 = rsi(src, lengthRSI)
k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = sma(k, smoothD)

bblength = input(50)
bbupmult =input(1.5,title="Multiplier for BB Upper Band")
bblowmult = input(1.5,title="Multiplier for BB Lower Band")

basis =  sma(close,bblength)

devup = bbupmult * stdev(close, bblength)
devlow = bblowmult * stdev(close, bblength)

upper = basis + devup
lower = basis - devlow
plot(basis, color=red)
p1 = plot(upper, color=blue)
p2 = plot(lower, color=blue)
fill(p1, p2)


yearfrom = input(2018)
yearuntil =input(2019)
monthfrom =input(6)
monthuntil =input(12)
dayfrom=input(1)
dayuntil=input(31)



if (  ( crossover(k,d)) and ( crossover(vrsi,overSold) or vrsi<overSold)  and (  (price<lower) or crossover(price,lower) ) ) 
    strategy.entry("BUY", strategy.long, stop=close, oca_name="TREND",  comment="BUY")
    
else
    strategy.cancel(id="BUY")


if ( ( crossunder(k,d) ) and ( (vrsi >overBought) or crossunder(vrsi,overBought) ) and  ( (price>upper) or crossunder(price,upper) )) 

    strategy.entry("SELL", strategy.short,stop=close, oca_name="TREND",  comment="SELL")
else
    strategy.cancel(id="SELL")
    
    
    

Больше