Количественная стратегия, основанная на экспоненциальной скользящей средней и взвешивании объема

Автор:Чао Чжан, Дата: 2024-01-25 15:31:21
Тэги:

img

Обзор

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

Принцип

xMAVolPrice = ema(volume * close, length)
xMAVol = ema(volume, length) 
nRes = xMAVolPrice / xMAVol

Стратегия определяет направление длинных и коротких позиций, сравнивая соотношение размеров между nRes и последней ценой закрытия:

if (nRes < close[1])  
    long
if (nRes > close[1]) 
    short

Если nRes ниже последней ценой закрытия, это означает, что скорректированная по объему цена ниже последней цены, которая является сигналом покупки; если nRes больше последней ценой закрытия, это означает, что скорректированная по объему цена выше последней цены, которая является сигналом продажи.

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

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

Основными преимуществами этой стратегии являются:

  1. По сравнению с простыми скользящими средними, экспоненциальные скользящие средние в этой стратегии более чувствительны к последним данным и могут быстро улавливать последние изменения на рынке.

  2. Идея стратегии проста и понятна, легко понять и реализовать, и отвечает требованиям количественной торговли.

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

Хотя стратегия имеет определенные преимущества, она также имеет следующие риски:

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

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

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

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

Основными направлениями оптимизации этой стратегии являются:

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

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

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

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

Резюме


/*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=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 06/03/2017
// The related article is copyrighted material from Stocks & Commodities 2009 Oct 
//
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
strategy(title="Combining Exponential And Volume Weighting", overlay=true)
length = input(22, minval=1)
reverse = input(false, title="Trade reverse")
xMAVolPrice = ema(volume * close, length)
xMAVol = ema(volume, length)
nRes = xMAVolPrice / xMAVol
pos = iff(nRes < close[1], 1,
	     iff(nRes > close[1], -1, nz(pos[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)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue )
plot(nRes, color=blue)

Больше