Краткосрочная количественная стратегия на основе RSI и VWAP


Дата создания: 2024-01-19 14:21:15 Последнее изменение: 2024-01-19 14:21:15
Копировать: 0 Количество просмотров: 982
1
Подписаться
1617
Подписчики

Краткосрочная количественная стратегия на основе RSI и VWAP

Обзор

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

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

  1. Используйте RSI, чтобы определить, находится ли рынок в состоянии перекупа или перепродажи. Значение RSI выше 80 означает зону перекупа, а ниже 20 - зону перепродажи.
  2. RSI использует VWAP вместо цены закрытия в качестве источника данных. VWAP может отражать среднюю цену сделки на день.
  3. Когда RSI пересекает отметку 20 от зоны перепродажи, это дает сигнал к покупке. Когда RSI пересекает отметку 80 от зоны перепродажи, это дает сигнал к продаже.
  4. В этой стратегии используется только лишний капитал, а не свободный капитал. То есть, только при перепродаже покупают и продают.

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

  1. Использование VWAP в качестве источника данных RSI позволяет RSI более точно оценивать рынок и избегать ошибочного анализа.
  2. Это позволит снизить частоту операций и обеспечить долгосрочную стабильность доходов.
  3. RSI имеет параметр 17, подходящий для операций на коротких линиях.
  4. Использование коротких линий с меньшим количеством ожидаемых сделок снижает стоимость сделок, что способствует получению более высокой доходности.

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

  1. Существует риск пересогласования количественных стратегических отзывов, результаты на практике могут не совпадать с отзывами.
  2. “Все, что мы делаем, - это не замечаем возможности для падения рынка.
  3. Критерии для определения перекупки могут не подходить для всех сортов и требуют корректировки параметров для разных сортов.
  4. Любые технические показатели могут привести к ошибочным сигналам, что не позволит полностью избежать убытков.

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

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

  1. Тестировать влияние различных параметров на эффективность стратегии, оптимизировать длину RSI и преодолеть предел перекупа.
  2. Увеличение стратегии стоп-лосса, блокирование части прибыли с помощью мобильного стоп-лосса, временного стоп-лосса и т. д., снижение отмены.
  3. Фильтрация сигнала в сочетании с другими показателями повышает его точность.
  4. В зависимости от особенностей разных сортов устанавливаются отдельные диапазоны параметров, что позволяет лучше адаптировать стратегию к разным сортам.

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

Эта стратегия в целом является простой и практичной стратегией коротких линий. Использование VWAP позволяет более точно оценивать показатели RSI, а также уменьшает частоту операций. Идея стратегии ясна, легко понятна и реализуема, подходит для входа в количественную торговлю.

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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Xaviz

//#####©ÉÉÉɶN###############################################
//####*..´´´´´´,,,»ëN########################################
//###ë..´´´´´´,,,,,,''%©#####################################
//###'´´´´´´,,,,,,,'''''?¶###################################
//##o´´´´´´,,,,,,,''''''''*©#################################
//##'´´´´´,,,,,,,'''''''^^^~±################################
//#±´´´´´,,,,,,,''''''''^í/;~*©####æ%;í»~~~~;==I±N###########
//#»´´´´,,,,,,'''''''''^;////;»¶X/í~~/~~~;=~~~~~~~~*¶########
//#'´´´,,,,,,''''''''^^;////;%I^~/~~/~~~=~~~;=?;~~~~;?ë######
//©´´,,,,,,,''''''''^^~/////X~/~~/~~/~~»í~~=~~~~~~~~~~^;É####
//¶´,,,,,,,''''''''^^^;///;%;~/~~;í~~»~í?~?~~~?I/~~~~?*=íÑ###
//N,,,,,,,'''''''^^^^^///;;o/~~;;~~;£=»í»;IX/=~~~~~~^^^^'*æ##
//#í,,,,,''''''''^^^^^;;;;;o~»~~~~íX//~/»~;í?IíI»~~^/*?'''=N#
//#%,,,'''''''''^^^^^^í;;;;£;~~~//»I»/£X/X/»í*&~~~^^^^'^*~'É#
//#©,,''''''''^^^^^^^^~;;;;&/~/////*X;í;o*í»~=*?*===^'''''*£#
//##&''''''''^^^^^^^^^^~;;;;X=í~~~»;;;/~;í»~»±;^^^^^';=''''É#
//##N^''''''^^^^^^^^^^~~~;;;;/£;~~/»~~»~~///o~~^^^^''''?^',æ#
//###Ñ''''^^^^^^^^^^^~~~~~;;;;;í*X*í»;~~IX?~~^^^^/?'''''=,=##
//####X'''^^^^^^^^^^~~~~~~~~;;íííííí~~í*=~~~~Ií^'''=''''^»©##
//#####£^^^^^^^^^^^~~~~~~~~~~~íííííí~~~~~*~^^^;/''''='',,N###
//######æ~^^^^^^^^~~~~~~~~~~~~~~íííí~~~~~^*^^^'=''''?',,§####
//########&^^^^^^~~~~~~~~~~~~~~~~~~~~~~~^^=^^''=''''?,íN#####
//#########N?^^~~~~~~~~~~~~~~~~~~~~~~~~^^^=^''^?''';í@#######
//###########N*~~~~~~~~~~~~~~~~~~~~~~~^^^*'''^='''/É#########
//##############@;~~~~~~~~~~~~~~~~~~~^^~='''~?'';É###########
//#################É=~~~~~~~~~~~~~~^^^*~'''*~?§##############
//#####################N§£I/~~~~~~»*?~»o§æN##################

//@version=4
strategy("RSI-VWAP INDICATOR", overlay=false)

// ================================================================================================================================================================================
// RSI VWAP INDICATOR
// ================================================================================================================================================================================

// Initial inputs
Act_RSI_VWAP = input(true, "RSI VOLUME WEIGHTED AVERAGE PRICE")
RSI_VWAP_length = input(17, "RSI-VWAP LENGTH")
RSI_VWAP_overSold = input(19, "RSI-VWAP OVERSOLD", type=input.float)
RSI_VWAP_overBought = input(80, "RSI-VWAP OVERBOUGHT", type=input.float)

// RSI with VWAP as source
RSI_VWAP = rsi(vwap(close), RSI_VWAP_length)

// Plotting, overlay=false
r=plot(RSI_VWAP, color = RSI_VWAP > RSI_VWAP_overBought ? color.red : RSI_VWAP < RSI_VWAP_overSold ? color.lime : color.blue, title="rsi", linewidth=2, style=plot.style_line)
h1=plot(RSI_VWAP_overBought, color = color.gray, style=plot.style_stepline)
h2=plot(RSI_VWAP_overSold, color = color.gray, style=plot.style_stepline)
fill(r,h1, color = RSI_VWAP > RSI_VWAP_overBought ? color.red : na, transp = 60)
fill(r,h2, color = RSI_VWAP < RSI_VWAP_overSold ? color.lime : na, transp = 60)

// Long only Backtest
strategy.entry("Long", strategy.long, when = (crossover(RSI_VWAP, RSI_VWAP_overSold)))
strategy.close("Long", when = (crossunder(RSI_VWAP, RSI_VWAP_overBought)))