WonderTrader
é uma estrutura de desenvolvimento de negociação quantitativa de alta eficiência e disponibilidade baseada no módulo principal C++
que é adequada para todos os tipos de transações em todo o mercado.
WonderTrader
depende da estrutura central C++
de alta velocidade e da estrutura de camada de aplicativo eficiente e fácil de usar (wtpy) e está comprometida em criar um cenário de negociação de P&D quantitativo totalmente automatizado e completo de P&D, negociação, operações e agendamento .
WonderTrader
lançou um novo mecanismo UFT em 0.9
para atender às necessidades de negociação com latência ultrabaixa. Após uma série de otimizações, a latência do sistema está dentro de 175 nanossegundos .
A verdadeira arquitetura de negociação do WonderTrader
WonderTrader
Motor de negociação rico
- O mecanismo CTA , também chamado de mecanismo de estratégia de sincronização , geralmente é adequado para estratégias com menos alvos, lógica de cálculo mais rápida e é orientado por evento + tempo. Cenários de aplicação típicos incluem tempo de lance único, arbitragem abaixo da frequência média, etc. Para a estratégia DualThrust fornecida na demonstração, o tempo médio necessário para um único recálculo é de cerca de 70 microssegundos para a versão de implementação Python e cerca de 4,5 microssegundos para a versão de implementação C++.
- O mecanismo SEL , também chamado de mecanismo de estratégia assíncrona , é geralmente adequado para estratégias orientadas por tempo que têm muitos alvos e levam muito tempo para calcular a lógica. Cenários de aplicação típicos incluem estratégias de seleção de ações multifatoriais, estratégias transversais de longo e curto prazo, etc.
- O mecanismo HFT , também chamado de mecanismo de estratégia de alta frequência , destina-se principalmente a estratégias de alta frequência ou baixa latência. É orientado por eventos e o atraso do sistema está entre 1-2 microssegundos.
- O mecanismo UFT , também chamado de mecanismo de estratégia ultrarrápido , visa principalmente estratégias de frequência ultra-alta ou latência ultrabaixa, orientadas por eventos, e o atraso do sistema é de 200 nanossegundos.
Interface de desenvolvimento completa
- Interface de dados eficiente e fácil de usar : Cada estratégia terá um módulo de contexto independente. O contexto armazenará automaticamente em cache os dados exigidos pela estratégia e a estratégia poderá ser chamada diretamente.
- Interface de sinal simples : A estratégia só precisa definir a posição alvo e será executada automaticamente em segundo plano.
- Lógica de política livre de contexto : a política não precisa registrar nenhum dado, ela só precisa consultar a interface todas as vezes. Todos os dados são armazenados em cache na memória e a eficiência do acesso é garantida.
Gestão estratégica profissional
- Gestão unificada de combinações estratégicas : A abordagem de combinação estratégica é usada principalmente para coordenar com a gestão de produtos de organizações profissionais. Uma placa combinada corresponde a vários alvos de várias estratégias e, em seguida, define um montante básico de fundos unitários. Esta é a placa combinada básica de gestão de produtos, que é conveniente para a expansão.
- Execução da fusão da posição alvo : Após a fusão da posição alvo, o risco de autotransação é evitado, enquanto a ocupação da margem e as despesas com comissões são reduzidas.
- Armazenamento independente de posições teóricas : As posições teóricas da estratégia são armazenadas de forma independente, e o desempenho geral do disco combinado também é calculado de forma independente, facilitando o gerenciamento interno.
- Execução simultânea de múltiplas contas : Depois de determinada a posição alvo da combinação, esta é executada simultaneamente através de múltiplos canais de negociação, o que pode garantir eficazmente a consistência do desempenho de diferentes contas.
Tipo completo de suporte de backtest
- Suporte completo à linguagem : seja uma estratégia desenvolvida em
C++
, uma estratégiapython
desenvolvida emwtpy
ou uma estratégia desenvolvida em outras subestruturas de linguagem, todas são testadas em um mecanismo de backtesting unificado .- Alta eficiência de backtesting : O mecanismo de backtesting é desenvolvido em
C++
, e a eficiência do backtesting é alta e a velocidade é rápida. Quer seja uma estratégiaC++
ou uma estratégiaPython
, ela pode ser verificada rapidamente.- Suporte completo à estratégia : Além da estratégia CTA e da estratégia SEL , a estratégia HFT , a estratégia UFT e a unidade de execução também podem ser testadas em backtest.
Servo de dados eficiente
- Servidor de dados local : o mecanismo de armazenamento integrado do
WonderTrader
usa armazenamento local, estabelece servidor de dados localmente e transmite dados de mercado em tempo real através da portaudp
para obter uma estrutura de serviço1+N
, que pode fornecer serviços de dados indiferenciados para múltiplas combinações discos ao mesmo tempo. A arquitetura profissional em nível de provedor de dados suporta o estabelecimento de um sistema de distribuição multinível para lidar facilmente com vários cenários de demanda.- Armazenamento em cache de dados históricos : Durante o processo de transação, todos os dados históricos são armazenados em cache na memória. Ao mesmo tempo, o mecanismo de referência direta às fatias de dados da memória é adotado para evitar fundamentalmente a cópia de dados e melhorar a eficiência do acesso.
- Mecanismo de armazenamento eficiente : os dados em tempo real usam arquivos
mmap
, que podem ler e gravar em alta velocidade sem perder dados. Ao mesmo tempo, suporta o banco de dados mysql para armazenar dados históricos, tornando mais conveniente construir seu próprio banco de dados de pesquisa de investimento nesta base.
Controle de risco flexível
- Controle de risco de fundo de disco combinado : O disco combinado possui uma escala de fundos predefinida, e o controle de risco de fundo de disco combinado pode ser realizado com base nos fundos virtuais do disco combinado. A maior vantagem é que se a combinação estiver na fase descendente, após o controlo do risco ser desencadeado, mesmo que a conta de capital não atinja a linha de controlo do risco, não continuará a diminuir.
- Controle de risco de tráfego do canal : Visa principalmente os riscos de compliance , controlando indicadores como o número total de pedidos cancelados, o número de pedidos realizados em um curto período de tempo e o número de pedidos cancelados.
- Controlo de risco de fundos de conta : É consistente com o controlo de risco de fundos no sentido geral, controlando principalmente a retirada de fundos de conta, etc.
- Intervenção manual de emergência : fornece uma entrada para intervenção manual de emergência e atinge objetivos de controle carregando um arquivo de configuração. É principalmente adequado para riscos num único produto. Se houver risco em todo o mercado, o sistema pode ser interrompido manualmente.
- Mecanismo de embreagem : O mecanismo de embreagem depende do mecanismo de separação de sinais e execução. É utilizado principalmente para desconectar diretamente a execução do sinal através do mecanismo de embreagem caso haja risco na estratégia ou combinação. A vantagem é que isso não afeta a lógica da estratégia e apenas desconecta a execução do sinal. Você pode continuar observando o desempenho da estratégia em um estágio específico do mercado e confirmá-lo com pesquisas teóricas.
Console poderoso (serviço de monitoramento wtpy)
- Monitoramento combinado de operação de disco : você pode visualizar logs de operação em tempo real, dados teóricos de estratégia, dados de canal de negociação, etc., e fornecer uma entrada para início e parada manuais.
- Serviço de agendamento automático : agenda tarefas agendadas de forma totalmente automática (iniciar, parar, reiniciar), suporta a configuração de repetições de tarefas semanalmente e suporta a tutela do processo.
- Notificação de eventos em tempo real : o serviço de monitoramento recebe eventos enviados pelo disco combinado e os encaminha ao terminal de monitoramento para avisar o usuário.
- Visualizador de backtest : usando o módulo WtBtSnooper, você pode visualizar e analisar dados de backtest.
- Implantação remota totalmente automática (em construção) : Implantação remota on-line totalmente automática, fornecendo serviços de implantação automatizada para vários cenários de aplicativos, como ambiente de backtest e ambiente de disco real.
Controle interno da equipe O método de gestão estratégica de portfólio oferece uma solução perfeita para a gestão de equipes internas.
C++
pode proporcionar a máxima confidencialidade da estratégia, e os investigadores de investimento não têm de se preocupar com a fuga de estratégias; Negociação multicontas ( configuração multiprodutos ) Para combinações de estratégias em diferentes ciclos de mercado, a equipe geral terá uma combinação de estratégias mais adequada para o momento. Porém, durante o mesmo período, a equipe pode gerenciar muitas contas ao mesmo tempo, mas na verdade, as combinações de estratégias utilizadas por essas contas são as mesmas. Neste momento, a arquitetura de execução M+1+N fornecida pela plataforma WonderTrader
pode atender perfeitamente a essa demanda.
Suponha que o tamanho básico do capital de uma determinada combinação P seja 5 milhões, o retorno esperado seja 30%, o rebaixamento máximo seja 10% e a relação retorno-risco seja 3:1. A conta A utiliza esta combinação P para negociar, e o montante de fundos na conta A é de 10 milhões, e o montante máximo aceitável é A retração também é de 10% A conta B também utiliza esta combinação para negociar P, e o montante de fundos também é de 10 milhões, mas pode; A retração máxima aceita é de 20% neste momento, porque os parâmetros de risco da conta A são consistentes com o mercado básico, a ampliação do tamanho do lote da conta A é o tamanho do capital/tamanho do fundo do mercado básico = 1000w/500w = 2; vezes;a conta B pode tolerar. O rebaixamento máximo é de 20%, portanto a proporção do tamanho do lote precisa ser duplicada, ou seja, a conta B pode ser alocada 4 vezes.
Rastreamento multialvo Algumas plataformas de negociação quantitativa que usam linguagens interpretadas (como Python
) para desenvolver módulos principais são capazes de vários cenários de aplicação quando há apenas alguns alvos. Mas quando o número de alvos que precisam de ser monitorizados atinge mais de 100, ou mesmo mais de 50, não consegue satisfazer a procura. Por um lado, consome muitos recursos. Usando mecanismos como multiprocess
, embora cada destino seja executado de forma independente, centenas de novos processos serão criados para centenas de alvos, o que consome muita memória e CPU. , a estratégia é ineficiente e existe uma forte concorrência pelos recursos. Em determinadas circunstâncias, a resposta estratégica também será mais lenta. O núcleo do WonderTrader
é desenvolvido em C++
e o servo de dados é projetado desde o início para fornecer serviços para múltiplas combinações ao mesmo tempo. A estratégia e a execução são separadas, e a execução do sinal e o cálculo da estratégia são executados de forma totalmente independente. dois tópicos diferentes. Sob tal arquitetura, as necessidades de rastreamento multipadrão podem ser bem atendidas.
Estratégia computacionalmente intensiva A quantidade de cálculos necessários para algumas estratégias é impressionante.Uma estratégia típica é a estratégia de seleção de ações. Quer utilize múltiplos fatores ou fundamentos, ela examinará gradualmente milhares de ações para obter o pool de ações final. Além disso, algumas estruturas multifatoriais multipadrão também possuem uma grande quantidade de cálculos. Essa estratégia requer muitos cálculos e leva muito tempo. O mecanismo SEL
do WonderTrader
é personalizado para atender a essa necessidade. O mecanismo SEL
adota um modelo assíncrono baseado no tempo. Ao registrar o cronograma de recálculo com o mecanismo (suportando ciclos intradiários, diários, semanais, mensais e outros), ele aciona o recálculo regularmente e, em seguida, ajusta as posições alvo de vários alvos. sinal de saída.
Negociação rápida WonderTrader
usa C++
como linguagem de desenvolvimento central subjacente. Um dos objetivos mais importantes é buscar o desempenho final , portanto, a negociação de alta frequência ou a negociação rápida representam uma proporção muito grande nos cenários de uso do WonderTrader
. WonderTrader
abriu um novo UFTEngine na versão v0.9
, que foi especialmente projetado para cenários de negociação extremamente rápidos. Diferente do HFTEngine
original, HFTEngine
tem como alvo altas frequências gerais e se concentra em fornecer componentes subjacentes de alto desempenho para a camada de aplicativo . Ele considerará mais problemas de compatibilidade e problemas de acoplamento da camada de aplicativo. UFTEngine
é completamente separado do projeto WtCore
e não fornece interfaces para a camada de aplicação. É todo desenvolvido e implementado em C++
, e o atraso do sistema está dentro de 200ns .
Negociação algorítmica WonderTrader
possui um módulo de entrada de executor independente WtExecMon
, no qual os usuários podem implementar negociação algorítmica. Na arquitetura de execução M+1+N do WonderTrader
, a parte de execução 1+N é removida e pode ser usada como um executor de negociação algorítmico independente . Quando os usuários o utilizam, ao definir a posição alvo do alvo especificado, a unidade de execução do algoritmo pode colocar ordens de negociação de acordo com o algoritmo predefinido. Os usuários podem adicionar mais unidades de execução de algoritmo implementando seu próprio módulo WtExecFact
. A eficiente camada inferior C++
pode fornecer uma forte garantia para o efeito de execução da unidade de execução do algoritmo.
wtpy
WonderTrader
e é uma subestrutura Python3
do WonderTrader
desenvolvida usando Python3
Python
possui muitas bibliotecas de terceiros muito populares e poderosas para processamento de dados de séries temporais.Python
é muito conveniente para escrita e depuração de código. Ele pode ser executado diretamente, sem compilação.Python
também permitem que Python
seja aplicado a mais cenárioswtpy
é como uma extensão do WonderTrader
na linguagem Python
wtpy
também possui um poderoso componente de serviço de monitoramento integrado WtMonSvr
. Este componente fornece uma interface de monitoramento remoto webui
, que pode monitorar o funcionamento da combinação de estratégias em tempo real. Também fornece um serviço de agendamento automático 24×7
para proteger suas transações. WonderTrader
WonderTrader
github
: https://github.com/wondertrader/wondertradergitee
: https://gitee.com/wondertrader/wondertraderwtpy
github
: https://github.com/wondertrader/wtpygitee
: https://gitee.com/wondertrader/wtpywtpy
: https://pypi.org/project/wtpy/ wtpy
pode ser instalado diretamente em python3.8
ou superior. pip install wtpy --upgrade
WonderTrader
Wt4ElegantRL
usando wtpy
como mecanismo de backtest subjacente https://github.com/drlgistics/Wt4ElegantRL wondertrader
para receber informações em tempo real do WonderTrader
610730738
(completo) Grupo 2 367916500
(marque com star
antes de entrar e forneça seu nome de usuário github
)WonderTrader
, consulte https://docs.wondertrader.com/WonderTrader
https://dumengru.github.io/docs_wondertrader/WonderTrader
de @ZzzzHeJ https://zzzzhej.github.io/WonderTrader-Learning-Notes/