Ferramenta de análise avançada baseada no desenvolvimento da gramática Alpha101

Autora:Bem-estar, Criado: 2020-06-09 09:34:58, Atualizado: 2023-11-01 20:27:17

img

Resumo

A plataforma FMZ lançou uma ferramenta de análise de fatores de negociação baseada no WorldQuant Alpha101, que fornece uma nova arma para desenvolvedores de estratégias de negociação quantitativas.

O que é Alpha101

img

Antes de introduzir Alpha101, primeiro entenda o que é Alpha? Alpha refere-se a retornos excessivos. Por exemplo: comprar 1 milhão de fundos de índice e mantê-lo o tempo todo. Esta é uma estratégia Beta para ganhar retornos passivos no mercado. Mas se você usar 10 milhões para comprar 10 ações e ganhar 10% a mais comprando um fundo de índice, então esses 10% são retornos excessivos de Alpha. Não subestime esse retorno excessivo de Alpha. Na verdade, a maioria dos traders no mercado, incluindo os gerentes de fundos, não pode vencer o índice, então muitas pessoas trabalham seu cérebro para melhorar o retorno de Alpha.

  • Estratégia de negociação de retorno excedente = retorno passivo (Beta) + retorno da negociação (Alpha)

Em 2015, o fundo de hedge comercial quantitativo WorldQuant LLC, que é bom em mineração de dados, lançou o relatório de pesquisa WorldQuant Formulaic 101 Alphas, que divulgou as 101 expressões Alpha que eles estão ou usaram, cujo propósito é dar aos desenvolvedores de estratégias de negociação Mais inspiração e ideias. Muitas pessoas questionaram os fatores divulgados pela WorldQuant, porque, afinal, o mercado de ações chinês é diferente dos mercados de ações estrangeiros. Mas acontece que a maioria desses fatores ainda é eficaz no mercado chinês.

Quais são os fatores em Alpha101

No relatório de pesquisa, o Alpha é dividido em três categorias: fator preço, fator volume e fator dicotomia.

  • Fator de preço: A fórmula de cálculo utiliza apenas o preço, incluindo: preço de abertura, preço mais alto, preço mais baixo, preço de encerramento, etc. O resultado é um valor específico.

  • Volume e fator de preço: a fórmula de cálculo usa volume e preço. A ideia de design é determinar a relação entre as mudanças de preço e as mudanças de volume de negociação, e a saída é um valor específico.

  • Fator de dicotomia: a fórmula de cálculo usa volume de negociação e preço. É o mesmo que o fator de volume e preço, exceto que a saída é 0 ou 1.

Fator de preço

Nome do factor Fórmula do fator Notas FMZ
Alfa # 1 (rank ((ts*argmax ((signedpower ((((retorna < 0)? stddev ((retorna, 20)): fechar), 2.), 5)) - 0,5) Tendência
Alfa # 4 (-1 * ts_rank(rank(baixo), 9)) Para trás.
Alfa # 5 (rank((open - (sum(vwap, 10) / 10))) * (-1 _ abs(rank((close - vwap))))) Para trás.
Alfa #8 (-1 _ rank ((((sum ((open, 5) _ sum ((retorna, 5)) - atraso (((sum ((open, 5) * sum ((retorna, 5)), 10)))))) Para trás.
Alfa #9 ((0 < ts*min(delta(close, 1), 5))? delta(close, 1) : ((ts_max(delta(close, 1), 5) < 0)? delta(close, 1) : (-1 * delta(close, 1)))) Reverso ou tendência
Alfa # 18 (-1 * rank (((((stddev ((abs ((((close - aberto)), 5) + (close - aberto)) + correlação ((close, aberto, 10)))))) Para trás.
Alfa # 19 ((-1 * sinal(((fechar - atraso ((fechar, 7)) + delta ((fechar, 7)))))) _ (1 + rank((1 + soma ((retorna, 250))))))) Divergência de tendência
Alfa # 20 (((-1 * rank((open - delay(high, 1)))) _ rank((open - delay(close, 1)))) * rank((open - delay(low, 1)))) Para trás.
Alfa # 23 (((sum ((high, 20) / 20) < high)? (-1 * delta ((high, 2))): 0) Regressão a curto prazo da média móvel de 20 períodos
Alfa # 24 ((((delta((sum(close, 100) / 100), 100) / delay ((close, 100)) < 0.05) ou ((delta((sum(close, 100) / 100), 100) / delay ((close, 100)) == 0.05))? (-1 _ (close - ts_min(close, 100))) : (-1 _ delta(close, 3))) Para trás.
Alfa #29 (min (produto (classe (classe)) escala (log (suma))min(rank(rank(((-1 * rank(delta((close - 1), 5))))), 2), 1))))), 1), 5) + tsrank ((delay((-1 * retorna 6), 5)) Para trás.
Alfa #32 (escala(((sum(close, 7) / 7) - fechado)) + (20 * escala(correlação(vwap, atraso ((close, 5), 230)))) Para trás.
Alfa #33 rank ((((-1 * ((1 - (aberto / fechado)) ^ 1))) Para trás.
Alfa # 34 rank (((((1 - rank (((stddev ((retorna, 2) / stddev ((retorna, 5)))))) + (1 - rank ((delta ((cerca, 1))))))) Para trás.
Alpha #37 (ranque (correlação) atraso (abertura - fechamento), 1), fechamento, 200) + rank (abertura - fechamento) Estatísticas
Alfa #38 ((-1 _ rank(ts_rank(fechado, 10))) _ rank((fechado / aberto))) Para trás.
Alfa #41 (((alto * baixo) ^ 0,5) - vwap) Para trás.
Alfa #42 (classificação) / classificação (classificação + classificação) Para trás.
Alfa #46 ((0.25 < (((delay(close, 20) - delay ((close, 10)) / 10) - ((delay(close, 10) - close) / 10)))? (-1 _ 1) : (((((delay(close, 20) - delay ((close, 10)) / 10) - ((delay(close, 10) - close) / 10)) < 0)? 1 : ((-1 _ 1) * (close - delay ((close, 1))))))) Para trás.
Alfa #48 Desfeito Desfeito
Alfa #49 ((((delay(close, 20) - delay ((close, 10)) / 10) - ((delay(close, 10) - close) / 10)) < (-1 _ 0.1))? 1 : ((-1 _ 1) * (close - delay ((close, 1)))) Para trás.
Alfa # 51 ((((delay(close, 20) - delay ((close, 10)) / 10) - ((delay(close, 10) - close) / 10)) < (-1 _ 0.05))? 1 : ((-1 _ 1) * (close - delay ((close, 1)))) Nenhum
Alfa #53 (-1 * delta((((quase - baixo) - (alto - perto)) / (quase - baixo)), 9)) Para trás.
Alfa #54 ((-1 _ ((baixo - fechado) _ (aberto^5))) / ((baixo - alto) * (fechado^5))) Para trás.
Alfa #56 Desfeito Desfeito
Alfa #57 (0 - (1 * ((close - vwap) / decay*linear(rank(ts_argmax(close, 30)), 2)))) Para trás.
Alfa #60 (0 - (1 * ((2 _ escala(rank(((((close - low) - (high - close)) / (high - low)) * volume)))) - escala(rank(ts*argmax(close, 10)))))) Nenhum
Alfa #66 ((rank ((decay_linear(delta ((vwap, 3.51013), 7.23052)) + ts_rank ((decay_linear(((((low * 0.96633) + (low _ (1 - 0.96633))) - vwap) / (open - ((high + low) / 2))), 11.4157), 6.72611)) * -1) Para trás.
Alfa # 73 (max(rank(decay*linear(delta(vwap, 4.72775), 2.91864)), ts_rank(decay_linear(((delta(((open * 0.147155) + (low _ (1 - 0.147155)), 2.03608) / ((open _ 0.147155) + (low _ (1 - 0.147155)))) _ -1), 3.33829), 16.7411)) _ -1) Para trás.
Alfa # 84 Signedpower ((ts_rank (((vwap - ts_max ((vwap, 15.3217)), 20.7127), delta ((close, 4.96796)) Nenhum
Alfa # 101 ((fechado - aberto) / ((alto - baixo) +.001)) Para trás.

Fator volume-preço

Nome do factor Fórmula do fator Notas FMZ
Alfa # 2 (-1 * correlação ((rank ((delta ((log ((volume), 2)), rank ((((close - aberto) / aberto)), 6)) Divergência de volume e de preços
Alfa # 3 (-1 * correlação (classe (aberta), classe (volume), 10)) Divergência de volume e de preços
Alfa #6 (-1 * correlação ((aberta, volume, 10)) Divergência de volume e de preços
Alfa #7 ((adv20 < volume)? ((-1 _ ts_rank ((abs(delta(quase, 7)), 60)) _ sinal ((delta(quase, 7))) : (-1 * 1)) Nenhum
Alfa # 11 ((rank ((ts*max((vwap - fechar), 3)) + rank ((ts_min((vwap - fechar), 3))) * rank ((delta(volume, 3))) Redução inversa
Alfa # 12 (sinal ((delta(volume, 1)) * (-1 _ delta ((preto, 1))) Divergência de volume e de preços
Alfa #13 (-1 * classificação (covariância), classificação (aproximada), classificação (volume), 5))) Divergência de volume e de preços
Alfa # 14 ((-1 _ rank(delta(retorna, 3))) _ correlação ((aberta, volume, 10)) Divergência de volume e de preços
Alfa # 15 (-1 * soma ((classe ((correlação ((classe ((alto), classe ((volume), 3)), 3)) Divergência de volume e de preços
Alfa #16 (-1 * classificação (covariância), classificação (alto), classificação (volume), 5))) Divergência de volume e de preços
Alfa #17 (((-1 _ rank(ts_rank(close, 10))) _ rank(delta(delta(close, 1), 1))) * rank(ts*rank((volume / adv20), 5))) Redução inversa
Alfa #22 (-1 * (delta ((correlação ((alto, volume, 5), 5) _ rank ((stddev ((quase, 20)))))) Divergência de volume e de preços
Alfa # 25 rank ((((((-1 _ retorna) _ adv20) _ vwap) _ (alto - próximo))) Nenhum
Alfa #26 (-1 * ts*max ((correlação ((ts_rank ((volume, 5), ts_rank ((alto, 5), 5), 3)) Divergência de volume e de preços
Alfa #28 escala ((((correlação ((adv20, baixo, 5) + ((alto + baixo) / 2)) - perto)) Sair do sentido inverso
Alpha # 30 (((1.0 - rank(((sign(((close - delay(close, 1))) + sign((delay(close, 1) - delay(close, 2)))) + sign((delay(close, 2) - delay(close, 3)))))) * soma(volume, 5)) / soma(volume, 20)) Para trás.
Alfa #31 ((rank(rank(rank(decay_linear((-1 * rank(rank(delta(perto, 10)))), 10)))))) + rank (((-1 _ delta(perto, 3)))) + sinal ((escala(correlação ((adv20, baixo, 12)))))))) Divergência de volume e de preços
Alfa # 35 (t)rank ((volume, 32) * (1 - tsrank ((((close + high) - baixo), 16))) * (1 - ts*rank ((retorna, 32))) Nenhum
Alfa #36 (((((2.21 * rank(correlação((close - aberto), delay ((volume, 1), 15))) + (0,7 _ rank((open - close)))) + (0,73 _ rank(ts*rank(delay(((-1 * retorna), 6), 5)))))))) + rank (((abscorrelação(vwap, adv20, 6)))))) + (0,6 _ rank (((((sum(close, 200) / 200) - open) _ (close - open))))) Tendência
Alfa #39 ((-1 _ rank((delta(close, 7) _ (1 - rank(decay*linear((volume / adv20), 9)))))))))) * (1 + rank(sum(retorna, 250)))) Divergência de volume e de preços
Alfa #40 ((-1 * rank ((stddev ((alto, 10))) _ correlação ((alto, volume, 10)) Divergência de volume e de preços
Alfa #43 (s)rank (((volume / adv20), 20) *rank (((-1 * delta ((close, 7)), 8)) Divergência inversa
Alfa #44 (-1 * correlação (altura, classificação (volume), 5)) Divergência de volume e de preços
Alfa #45 (-1 _ ((rank((sum(delay ((close, 5), 20) / 20)) _ correlação ((close, volume, 2)) * rank(correlação ((sum(close, 5), soma ((close, 20), 2)))) Divergência de volume e de preços
Alpha #47 ((((rank(((1 / close)) _ volume) / adv20) _ ((alto * rank((high - close))) / (sum(high, 5) / 5))) - rank((vwap - delay(vwap, 5)))))) Nenhum
Alfa # 50 (-1 * ts*max ((rank ((correlação ((rank ((volume), rank ((vwap), 5)), 5)) Divergência de volume e de preços
Alfa #52 ((((-1 * tsMin (menos, 5)) + atraso (menos, 5)) * rank (menos, 240) - soma (menos, 20)) / 220))) * tsrank ((volume, 5)) Divergência de volume e de preços
Alpha # 55 (-1 * correlação(ranque((quase - ts_min(baixo, 12)) / (ts_max(alto, 12) - ts_min(baixo, 12)))), rank ((volume), 6)) Divergência de volume e de preços
Alfa #58 Desfeito Desfeito
Alfa #59 Desfeito Desfeito
Alfa #63 Desfeito Desfeito
Alfa # 67 Desfeito Desfeito
Alfa # 69 Desfeito Desfeito
Alfa # 70 Desfeito Desfeito
Alfa # 71 max(ts_rank(decay_linear(correlação(ts_rank(quase, 3.43976), ts_rank ((adv180, 12.0647), 18.0175), 4.20501), 15.6948), ts_rank ((decay_linear((rank((baixo + aberto) - (vwap + vwap))) ^2), 16.4662), 4.4388)) Nenhum
Alfa # 72 (rank ((decay_linear(correlação((high + low) / 2), adv40, 8.93345), 10.1519)) / rank ((decay_linear(correlação(ts_rank(vwap, 3.72469), ts_rank ((volume, 18.5188), 6.86671), 2.95011))) Nenhum
Alfa # 76 Desfeito Desfeito
Alfa # 77 min(rank(decay_linear(((((high + low) / 2) + high) - (vwap + high)), 20.0451)), rank(decay_linear(correlação(((high + low) / 2), adv40, 3.1614), 5.64125))) Nenhum
Alfa #78 (rank ((correlação(sum ((((low * 0,352233)) + (vwap _ (1 - 0,352233)), 19,7428), sum ((adv40, 19,7428), 6,83313)) ^ rank ((correlação(rank ((vwap), rank ((volume), 5,77492))) Nenhum
Alfa # 80 Desfeito Desfeito
Alfa # 82 Desfeito Desfeito
Alfa #83 ((rank(delay(((high - low) / (sum ((close, 5) / 5)), 2)) * rank ((rank(volume))) / (((high - low) / (sum ((close, 5) / 5)) / (vwap - close))) Nenhum
Alfa # 85 (rank ((correlação(((high _ 0.876703) + (close _ (1 - 0.876703)), adv30, 9.61331)) ^rank ((ts_correlation((((high + low) / 2), 3.70596), ts_rank ((volume, 10.1595), 7.11408))) Nenhum
Alfa # 87 Desfeito Desfeito
Alfa # 88 min(rank(decay_linear(((rank(open) + rank(low)) - (rank(high) + rank ((close))), 8.06882)), ts_rank(decay_linear(correlação(ts_rank(close, 8.44728), ts_rank ((adv60, 20.6966), 8.01266), 6.65053), 2.61957)) Nenhum
Alfa # 89 Desfeito Desfeito
Alfa # 90 Desfeito Desfeito
Alfa # 91 Desfeito Desfeito
Alfa # 92 min(ts_rank(decay_linear(((((high + low) / 2) + close) < (low + open)), 14.7221), 18.8683), ts_rank(decay_linear(correlação(rank(low), rank(adv30), 7.58555), 6.94024), 6.80584)) Nenhum
Alfa #93 Desfeito Desfeito
Alfa # 94 ((rank((vwap - ts_min(vwap, 11.5783))) ^ts_rank ((correlação(ts_rank(vwap, 19.6462), ts_rank ((adv60, 4.02992), 18.0926), 2.70756)) * -1) Nenhum
Alfa #96 (max(ts_rank(decay_linear(correlação(rank(vwap), rank ((volume), 3.83878), 4.16783), 8.38151), ts_rank(decay_linear(ts_argmax(correlação(ts_rank(close, 7.45404), ts_rank ((adv60, 4.13242), 3.65459), 12.6556), 14.0365), 13.4143)) * -1) Nenhum
Alfa # 97 Desfeito Desfeito
Alfa #98 (rank ((decay_linear(correlação ((vwap, sum ((adv5, 26.4719), 4.58418), 7.18088)) - rank ((decay_linear(ts_rank(ts_argmin(correlação ((rank(open), rank ((adv15), 20.8187), 8.62571), 6.95668), 8.07206))) Nenhum
Alfa # 100 Desfeito Desfeito

Fator de dicotomia

Nome do factor Fórmula do fator Notas FMZ
Alfa #22 (-1 _ (delta ((correlação)) alta, volume, 5), 5) _ rank ((stddev)) próximo, 20)))) Para trás.
Alfa #27 ((0,5 < rank (((sum ((correlação ((rank ((volume), rank ((vwap), 6), 2) / 2,0)))? (-1 * 1) : 1) Divergência de volume e de preços
Alfa #61 (rank (((vwap - ts*min(vwap, 16.1219))) < rank ((correlação ((vwap, adv180, 17.9282))) Divergência de volume e de preços
Alfa # 62 ((rank ((correlação ((vwap, soma ((adv20, 22.4101), 9.91009)) < rank ((((rank ((aberto) + rank ((aberto)) < (rank ((((high + low) / 2)) + rank ((high))))) * -1) Nenhum
Alfa # 64 ((rank(correlação(sum(((open * 0.178404) + (low _ (1 - 0.178404))), 12.7054), sum ((adv120, 12.7054), 16.6208)) < rank(delta((((((high + low) / 2) _ 0.178404) + (vwap _ (1 - 0.178404))), 3.69741))) * -1) Nenhum
Alfa # 65 ((rank(correlação(((open _ 0.00817205) + (vwap _ (1 - 0.00817205))), soma ((adv60, 8.6911), 6.40374)) < rank((open - ts*min(open, 13.635)))) * -1) Nenhum
Alfa #68 ((ts_rank(correlação ((rank(alto), rank ((adv15), 8.91644), 13.9333) < rank ((delta(((close * 0.518371) + (low _ (1 - 0.518371)), 1.06157))) * -1) Nenhum
Alfa # 74 ((rank ((correlação ((close, sum ((adv30, 37.4843), 15.1365)) < rank ((correlação ((rank ((((high _ 0.0261661) + (vwap _ (1 - 0.0261661)))), rank ((volume), 11.4791))) * -1) Nenhum
Alfa #75 (rank ((correlação ((vwap, volume, 4.24304)) < rank ((correlação ((rank ((low), rank ((adv50), 12.4413))) Relação volume-preço
Alfa #79 Desfeito Desfeito
Alfa # 81 ((rank ((log ((product ((rank (((rank ((correlation ((vwap, sum ((adv10, 49.6054), 8.47743)) ^ 4)), 14.9655))) < rank ((correlation ((rank ((vwap), rank ((volume), 5.07914))) * -1) Nenhum
Alfa #86 ((ts_rank(correlação ((close, sum ((adv20, 14.7444), 6.00049), 20.4195) < rank (((((open + close) - (vwap + open)))) * -1) Nenhum
Alfa #95 (rank (((open - ts_min ((open, 12.4105))) < ts_rank (((rank ((correlação)) soma ((((alta + baixa) / 2), 19.1351), soma ((adv40, 19.1351), 12.8742)) ^5), 11.7584)) Nenhum
Alfa # 99 ((rank ((correlação(sum ((high + low) / 2), 19.8975), sum ((adv60, 19.8975), 8.8136)) < rank ((correlação(low, volume, 6.28259))) * -1) Nenhum

Implementado na plataforma FMZ

Open FMZ site oficial (FMZ.COM) para registar-se e iniciar sessão, clique em Dashboard no canto superior esquerdo e selecione Analysis Tool na lista à esquerda, como mostra a figura a seguir:

img

Na página da ferramenta de análise, o topo é a barra de configuração, que pode ser definida em ordem de esquerda para direita: variedade, horário de início e fim, período, tipo de imagem. Abaixo da barra de configuração está a área de edição de fórmulas. Se você não pode escrever fórmulas, você pode clicar no menu suspenso abaixo e selecionar a fórmula que você editou. Há muitos exemplos de fórmula suportados aqui. Além disso, as ferramentas de análise da plataforma FMZ já suportam a maioria das fórmulas Alpha101 oficiais, basta clicar e usar. Clique na fórmula de cálculo para exibir os resultados do cálculo na parte inferior, ele suporta vários métodos de exportação de dados: imagens, tabelas (CSV), JSON, etc.

img

Precisamos prestar atenção a

Os parâmetros na fórmula de fatores são padrão e não os parâmetros ideais. Os comerciantes podem escolher os parâmetros mais apropriados de acordo com o símbolo, período e sua própria experiência.

Os fatores são independentes uns dos outros, e a sobreposição de vários fatores uns sobre os outros pode não necessariamente resultar em melhores resultados.

Os fatores são ilimitados, o Alpha101 é apenas um truque, acredito que todos podem se inspirar nele e criar mais e melhores fatores e estratégias quantitativas de negociação.

Resumindo

Em muitas fórmulas de fatores de negociação, a superfície parece irracional, mas há certas idéias e razões por trás da fórmula. Mas a única constante no mercado é que ele está constantemente mudando, de modo que a eficácia desses fatores tem características não-lineares em aplicações práticas. Em outras palavras, não há fator eficaz e sempre eficaz, não há um método de negociação universal. Como um comerciante quantitativo, você deve ter uma mente aberta, ser bom em resumir e usá-lo para tentar inovar para obter lucros em um mercado em constante mudança.


Relacionados

Mais.