Qual é melhor, backtrader ou vnpy?

Depois de estudar o backtrader por tanto tempo, sinto que, em comparação com o vnpy, a maior vantagem do backtrader é que ele lida com vários padrões e vários períodos com muita elegância, o que é mais forte que o vnpy. Ao lidar com vários alvos e vários ciclos em tempo real, é mais complicado devido ao atraso de rede incerto. Considere um cenário simples de vários alvos em um único período, receba ticks da extremidade remota e sintetize gráficos de barras de 1 minuto.

O tempo da linha composta de minutos do vnpy não é acionado pelo minuto completo do tempo físico, mas pelo próximo tick. Quando o próximo tick for recebido, verifique se o seu tempo é mais do que um minuto completo em comparação com o tempo do tick anterior. Em caso afirmativo, sintetize uma barra de 1 minuto. Se o próximo tick estiver longe do tempo do tick anterior, então há um grande problema. Sob alvos múltiplos, este mecanismo de síntese de k-linhas não pode sincronizar cada alvo.

No backtrader, o tempo de síntese da linha do minuto é acionado por todo o minuto do tempo físico (você pode definir o tempo de síntese para ser adiado, como um segundo, para considerar o atraso da rede). A cada minuto completo, como 10: 00, seu cliente começará a agregar os dados coletados. Marque, uma linha K de 1 minuto é sintetizada para cada alvo. Esse mecanismo faz um bom trabalho sincronizando as várias linhas de minuto subjacentes. Se multiciclo for considerado, a situação é mais complicada, bt pode lidar bem com isso, mas vnpy é difícil de lidar.

Claro, o backtrader também tem limitações, ou seja, muitas pessoas não conseguem entender.Na verdade, se você quiser quantificar a negociação, ainda existem muitas outras opções, como interface de negociação, versão crackeada, etc., você pode fazer alta frequência, e é uma oferta firme, e a tarifa é relativamente razoável e pode atender a maioria das necessidades.

sinal

void SendOrders(int ClientId, int Category[], int EntrustType[], const char* Gddm[], const char* Zqdm[], float Price[], int Quantity[], int Count,

char* Result[], char* ErrorInfo[]);

Função

Pedidos de lote de conta única, diferencie cada pedido por subscrito

parâmetro

ID do Cliente

ID do Cliente

Categoria[]

Uma variedade de categorias confiadas, consulte [Categorias delegadas] para significados específicos

EntrustType[]

Uma variedade de métodos de cotação, consulte [métodos de cotação] para significados específicos

Gddm[]

matriz de código do acionista

zqdm[]

Matriz de código de segurança

Preço[]

Matriz de preço do pedido

Quantidade[]

Matriz de quantidade do pedido

Contar

O número de itens confiados, ou seja, o comprimento da matriz

Resultado[]

Matriz de resultados confiados, cada resultado precisa alocar 1024*1024 bytes de espaço

Por favor, consulte [Formato do resultado] para o formato

Informação de erro[]

Matriz de mensagem de erro, cada mensagem de erro precisa alocar 256 bytes de espaço

valor de retorno

Nenhum, se a i-ésima comissão foi bem-sucedida ou não, é julgado se ErrorInfo[i] é uma string vazia

Além disso, a interface de negociação quantitativa pode ser desenvolvida para desenvolvimento secundário, por isso é mais operável, e pequenos parceiros que têm necessidades a esse respeito podem aprender mais sobre isso.

Acho que você gosta

Origin blog.csdn.net/qq1841085904/article/details/127689144
Recomendado
Clasificación