MT5 e velocidade em ação - página 6

 
A100:

Sugere-se que você retorne repetidamente até ler toda a fila atual ou para um determinado número de eventos. Quando os eventos comerciais terminarem, haverá um retorno de tempo e você terá acesso a todos os eventos de uma só vez

Bem, vou dizer algo... É claro, é claro, IMHO, mas está pedindo para executar o manipulador em uma linha separada. Então, só de pensar alto...

E se você estiver fazendo isso por si mesmo, você coloca tudo de fora e cada manipulador será algo semelhante:

void OnXXX{
 gOnXXXMutex.Lock();
 COnXXXOverlapped overlapped=new COnXXXOverlapped(<param_list>);
 gOnXXXOverlappedList.PushBack(overlapped);
 gOnXXXMutex.Unlock();
 DLLOnXXX(<param_list>,overlapped,&gOnXXXMutex);
}
 
A100:
há uma solução mais elegante, sem o OnTimer... pense sobre isso

Pense por si mesmo porque não funcionaria.

 
fxsaber:

Pense por si mesmo porque não funcionaria.

E não há necessidade de pensar - o mercado acabou de abrir, eu verifiquei - tudo funciona, até o cálculo da linha

if (наблюдаемая позиция закрылась по тейку)

eventos comerciais foram acrescentados à fila e podem ser lidos

 
A100:

E aqui você não precisa pensar - o mercado acabou de abrir, eu verifiquei - tudo funciona, até a linha

eventos comerciais foram acrescentados à fila e podem ser lidos

Desculpe, mas eu nem vou explicar nada em seu entendimento de operação adequada. Cansado de ter que soletrar coisas simples.

 
fxsaber:

Desculpe, mas eu nem vou explicar nada em seu entendimento de operação adequada. Estou cansado de ter que explicar coisas simples.

Se você não quer explicar, não explique. Eu acabei de lhe mostrar que adicionando

bool HandleNextEvent (ENUM_EVENT_TYPE);

não muda nada fundamentalmente

 
A100:

não muda fundamentalmente

Isso faz uma grande diferença. Parece que leva muito tempo (com um resultado desconhecido) para tornar a idéia óbvia em muitas cabeças.

 
fxsaber:

Isso faz uma grande diferença. Parece levar muito tempo(com resultado desconhecido) para tornar esta idéia óbvia em muitas cabeças.

Não muito, porque de acordo com a Teoria da Simplicidade de Einstein: "Se você não consegue explicar simplesmente, você mesmo não entende".

 
A100:

Não é preciso, porque de acordo com a Teoria da Simplicidade de Einstein: "Se você não consegue explicar de forma simples, então você mesmo não entendeu até o fim".

Sim, você não entendeu.

 
fxsaber:

Sim, não funcionou para você.

E eu não tentei explicar nada - dei um exemplo e obtive resultados:

Fórum sobre comércio, sistemas automatizados de comércio e testes estratégicos

MT5 e Velocidade em Ação

A100, 2020.05.31 23:23

...mercado recém aberto, eu verifiquei - tudo está funcionando, antes do cálculo da linha

if (наблюдаемая позиция закрылась по тейку)

eventos comerciais foram acrescentados à fila e podem ser lidos

Acontece que você pode ler eventos comerciais da OnMain(). Você alegou o contrário
 
A100:

Eu não tentei explicar nada - dei um exemplo e consegui o resultado:

Acontece que você pode ler eventos comerciais da OnMain(). O senhor alegou o contrário.

Você não entendeu nada. Quando voltamos, estamos entrando na fila formada em função da fila. Pode causar uma pausa que impeça o envio do segundo imediatamente após o primeiro OrderSend.

Você se propõe a acumular a fila salvando todas as funções On-funções após o retorno, aguardando o On-funcionamento, no qual haverá uma mensagem sobre o fim do primeiro OrderSend. E depois envie apenas o segundo OrderSend.

Ao mesmo tempo, você não entende que a tomada de posição pode ser executada durante a primeira OrderSend, mas sua OnTradeTransaction estará na fila mais tarde (no mesmo microssegundo, mas mais tarde) do que a OnTradeTransaction final da primeira OrderSend.

Razão: