Os meus princípios fundamentais para o desenvolvimento de alphas são:
1) Velocidade de iteração 2) Acessibilidade
O que é que isto significa?
O primeiro é bastante claro. Se testares 10 alphas por dia e toda a gente só testa 2 por dia, então vais ter resultados muito melhores do que os outros.
Como é que podes garantir isso?
Primeiro, esquece a recolha e o pré-processamento de dados manual. Se não tens scripts para fazer isto automaticamente, já estás destinado a não conseguir. Isto é o básico.
A seguir, arranja uma biblioteca de carregamento de dados. Não devias ter de reescrever aquele código de glob.glob(folder_path) etc etc. Deves usar:
De seguida, tens os dados de investigação. O que são dados de investigação?
Bem, podes começar por ter um universo. Não devias perder tempo a definir manualmente um universo (e idealmente devia ser sempre padronizado). Por isso, deves carregar um ficheiro com os top X símbolos por volume dos últimos 30 dias, capitalização de mercado, liquidez dos últimos 30 dias, ou o critério que escolheres. Podes explorar bastante aqui.
A partir daqui podemos olhar para os retornos, devíamos ter retornos de fatores, retornos idiossincráticos, retornos limitados, e claro, retornos brutos. TUDO PRÉ-GERADO!
Por fim, temos de garantir que conseguimos testar todos os nossos alphas e o código para o fazer deve ser extremamente rápido. Podes pensar que são só X minutos, mas mais do que uns poucos minutos já é uma grande interrupção de contexto e afeta diretamente a produtividade.
Já cobrimos velocidade de iteração, agora vamos a acessibilidade.
Acessibilidade é o quão fácil é fazer uma determinada análise. É o componente de qualidade no problema de otimização qualidade vs quantidade. Digamos que quero fazer uma análise de sazonalidade mas decido saltá-la para poder fazer outro alpha, isso é falta de acessibilidade. Se decido não fazer uma análise de correlação + residualização porque quero testar outro alpha, isso é falta de acessibilidade.
As tuas ferramentas devem permitir-te fazer rapidamente estes tipos comuns de análise. Isto aplica-se à otimização, markouts, TCA, TWAP ótimo, etc. Tudo isto deve ser, idealmente, trabalho mínimo para executares porque quanto mais trabalho for, MENOS VEZES O VAIS FAZER e a qualidade da tua investigação vai diminuir.
Resumindo, deves focar-te em tornar a análise principal mais rápida e as análises extra, que melhoram significativamente a qualidade da tua investigação, também muito mais rápidas de fazer. Ao otimizar estes dois pontos, garantes que produzes investigação de altíssima qualidade muito mais depressa do que os outros.
Esta é a tua vantagem. Se fizeres 5x mais do que os outros no mesmo tempo, podes gerar muito mais PnL.
Ver original
Esta página pode conter conteúdo de terceiros, que é fornecido apenas para fins informativos (não para representações/garantias) e não deve ser considerada como um endosso de suas opiniões pela Gate nem como aconselhamento financeiro ou profissional. Consulte a Isenção de responsabilidade para obter detalhes.
Os meus princípios fundamentais para o desenvolvimento de alphas são:
1) Velocidade de iteração
2) Acessibilidade
O que é que isto significa?
O primeiro é bastante claro. Se testares 10 alphas por dia e toda a gente só testa 2 por dia, então vais ter resultados muito melhores do que os outros.
Como é que podes garantir isso?
Primeiro, esquece a recolha e o pré-processamento de dados manual. Se não tens scripts para fazer isto automaticamente, já estás destinado a não conseguir. Isto é o básico.
A seguir, arranja uma biblioteca de carregamento de dados. Não devias ter de reescrever aquele código de glob.glob(folder_path) etc etc. Deves usar:
load_data(
start_date=start_date,
end_date=end_date,
symbol=symbol,
etc
)
De seguida, tens os dados de investigação. O que são dados de investigação?
Bem, podes começar por ter um universo. Não devias perder tempo a definir manualmente um universo (e idealmente devia ser sempre padronizado). Por isso, deves carregar um ficheiro com os top X símbolos por volume dos últimos 30 dias, capitalização de mercado, liquidez dos últimos 30 dias, ou o critério que escolheres. Podes explorar bastante aqui.
A partir daqui podemos olhar para os retornos, devíamos ter retornos de fatores, retornos idiossincráticos, retornos limitados, e claro, retornos brutos. TUDO PRÉ-GERADO!
Por fim, temos de garantir que conseguimos testar todos os nossos alphas e o código para o fazer deve ser extremamente rápido. Podes pensar que são só X minutos, mas mais do que uns poucos minutos já é uma grande interrupção de contexto e afeta diretamente a produtividade.
Já cobrimos velocidade de iteração, agora vamos a acessibilidade.
Acessibilidade é o quão fácil é fazer uma determinada análise. É o componente de qualidade no problema de otimização qualidade vs quantidade. Digamos que quero fazer uma análise de sazonalidade mas decido saltá-la para poder fazer outro alpha, isso é falta de acessibilidade. Se decido não fazer uma análise de correlação + residualização porque quero testar outro alpha, isso é falta de acessibilidade.
As tuas ferramentas devem permitir-te fazer rapidamente estes tipos comuns de análise. Isto aplica-se à otimização, markouts, TCA, TWAP ótimo, etc. Tudo isto deve ser, idealmente, trabalho mínimo para executares porque quanto mais trabalho for, MENOS VEZES O VAIS FAZER e a qualidade da tua investigação vai diminuir.
Resumindo, deves focar-te em tornar a análise principal mais rápida e as análises extra, que melhoram significativamente a qualidade da tua investigação, também muito mais rápidas de fazer. Ao otimizar estes dois pontos, garantes que produzes investigação de altíssima qualidade muito mais depressa do que os outros.
Esta é a tua vantagem. Se fizeres 5x mais do que os outros no mesmo tempo, podes gerar muito mais PnL.