Vi em algum lugar que você pode colocar no ONNX tudo o que está disponível na bíblia do Scikit, e há todos os tipos de modelos e uma grande quantidade deles.
Bem, não vou discutir, não sou muito forte em ONNX .
Rorschach #: Pergunta aos desenvolvedores: os modelos ONNX no MT são executados no processador ou na placa de vídeo?
Na CPU, usando instruções AVX/AVX2/AVX512 em qualquer terminal ou compilação de testador. Esse é um sistema executivo que funciona de forma pequena e rápida.
E o ONNX também funciona sem problemas no Linux e em Macs. Não são necessários sistemas de suporte adicionais.
As GPUs são essenciais apenas no estágio de treinamento.
Outra questão importante é se o modelo receberá informações sobre o ambiente de negociação - quais posições estão abertas, o que há no histórico.....
O sistema de teste consistirá em três componentes:
1) nosso modelo de robô único
2) seu wrapper model.mq5 no código-fonte para fornecer entrada/saída de dados para o modelo ONNX, interpretação dos resultados e geração de negociações
// Торговый сигнал.double SignalONNX( constMqlTick &Tick ) { return(0); }
#define MT4ORDERS_AUTO_VALIDATION // Торговые приказы отправляются только в случае успешной проверки на корректность#include <MT4Orders.mqh> // https://www.mql5.com/ru/code/16006voidOnTick()
{
MqlTick Tick;
if (SymbolInfoTick(_Symbol, Tick))
{
constdouble Signal = SignalONNX(Tick);
constint Type = (MathAbs(Signal) < 1) ? -1 : (Signal < 0);
if (Type != -1)
{
int Count = 0;
for (uint i = OrdersTotal(); (bool)i--;)
if (OrderSelect(i, SELECT_BY_POS))
{
if (OrderType() == Type)
Count++;
else
OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 0);
}
if (!Count)
OrderSend(_Symbol, Type, 1, Type ? Tick.bid : Tick.ask, 0, 0, 0);
}
}
}
O código é conciso, por isso é imediatamente legível. Ele tem três estados: comprar, vender, não fazer nada.
Não vejo sentido em complicá-lo, adicionando MM, etc. Então, com o MO, você tem que se esforçar mais.
O elemento de aleatoriedade é eliminado se você exigir que a frequência das transações (uma por dia, por exemplo) corresponda aos valores anteriores. Em geral, podemos discutir algo no nível do código.
Renat Fatkhullin #: O sistema de teste consistirá em três componentes:
1) nosso modelo de robô único
2) seu wrapper model.mq5 no código-fonte para fornecer entrada/saída de dados para o modelo ONNX, interpretação dos resultados e geração de negociações
3) model.onnx - seu modelo neural
Obrigado, isso já está melhor!
A classe de negociação será padrão ou posso usar a minha própria, com um wrapper mais conveniente?
Modelos em madeira também são possíveis
Vi em algum lugar que você pode colocar no ONNX tudo o que está disponível na bíblia do Scikit, e há todos os tipos de modelos e uma grande quantidade deles.
Bem, não vou discutir, não sou muito forte em ONNX .
Outra questão importante é se o modelo obterá informações sobre o ambiente de negociação - quais posições estão abertas, o que há no histórico....
Pergunta aos desenvolvedores: os modelos ONNX no MT são executados no processador ou na placa de vídeo?
Outra questão importante é se o modelo receberá informações sobre o ambiente de negociação - quais posições estão abertas, o que há no histórico.....
Renat Fatkhullin #:
As GPUs são essenciais justamente no estágio de aprendizado.
O ONNX poderia ser uma alternativa para o OpenCL. Mas isso é apenas uma ideia por enquanto.
O modelo de robô para o Tester está em discussão.
O código é conciso, por isso é imediatamente legível. Ele tem três estados: comprar, vender, não fazer nada.
Não vejo sentido em complicá-lo, adicionando MM, etc. Então, com o MO, você tem que se esforçar mais.
O elemento de aleatoriedade é eliminado se você exigir que a frequência das transações (uma por dia, por exemplo) corresponda aos valores anteriores. Em geral, podemos discutir algo no nível do código.
Há uma grande quantidade de informações sobre a ONNX em nosso site.
O suporte a zipmap será adicionado? Nem todos os modelos têm esse recurso desativado durante a conversão.
conveniência para
ONNX: parâmetro de saída tem tipo não suportado 'ONNX_TYPE_SEQUENCE'
Agora, se eles forem até lá, quase todo mundo vai conseguir, mas não terá o desejo e a capacidade de editar arquivos ONNX.O sistema de teste consistirá em três componentes:
Obrigado, isso já está melhor!
A classe de negociação será padrão ou posso usar a minha própria, com um wrapper mais conveniente?