![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Alguém utiliza a OnTradeTransaction, para determinar se foi feita uma encomenda?
No testador de estratégias, quando uma transacção e 2 encomendas são enviadas no espaço de 3 ticks, TRADE_TRANSACTION_REQUEST vem apenas 1, na última encomenda enviada.
Está a olhar para os registos do testador ou do agente? Pode escrever para o Service Desk e fornecer detalhes?
Olhei para os troncos no agente, e lá um pedaço de tronco demasiado grande deveria ser impresso. Acabei de esboçar um código aproximado, sou demasiado preguiçoso para lidar com o Service Desk. Fi-lo no RoboForex desde 2011.10.10 onde aparece um dos três TRADE_TRANSACTION_REQUEST, e no Metakvot dois de três. Aparentemente, depende da frequência com que as carraças aparecem.
2012.08.22 09:43:15 Terminal SIGTrader 5 x64 construir 687 iniciado
Olhei para os troncos no agente, e lá um pedaço de tronco demasiado grande deveria ser impresso. Acabei de esboçar um código aproximado, sou demasiado preguiçoso para lidar com o Service Desk. Fi-lo no RoboForex desde 2011.10.10 onde aparece um dos três TRADE_TRANSACTION_REQUEST, e no Metakvot dois de três. Aparentemente, depende da frequência das carraças.
2012.08.22 09:43:15 Terminal SIGTrader 5 x64 construção 687 iniciado
Em princípio, aOnTradeTransaction não depende nada de carraças - é o manipulador de eventos comerciais.
E maneja a sua própria vez, a fila de eventos comerciais.
A OnTradeTransaction não é supostamente de modo algum dependente de tick-dependent, é um manipulador de eventos comerciais.
E processa a sua vez, uma fila de eventos comerciais.
Neste exemplo, depende das carraças para estabelecer ordens, em cada carraça é estabelecida uma nova ordem.
Pergunto-me se a falta de TRADE_TRANSACTION_REQUEST foi repetida pelos criadores, ou não o podemos fazer sem o Service Desk?
Neste exemplo, a velocidade de colocação da encomenda depende das carraças, uma nova encomenda é colocada em cada carraça.
Pergunto-me se a falta de TRADE_TRANSACTION_REQUEST foi repetida pelos desenvolvedores, ou não pode ser feita sem o Service Desk?
Provavelmente não pode passar sem SD, a função é nova e os bugs são possíveis. Necessidade de analisar a questão em pormenor.
SZY Estou a preparar um artigo sobre como usar esta função, mas ainda não encontrei tal situação.
ZZZY I apenas o testou em servidores Alpari e MQ,
Se me derem o nome correcto do servidor, tentarei verificá-lo.
Provavelmente não sem um CD, a função é nova e pode haver bugs. Preciso de analisar a questão em pormenor.
Estou a fazer um artigo sobre a utilização desta função, mas esta situação nunca me ocorreu.
ZZZY I verificou apenas nos servidores Alpari e MQ,
Não consigo ver qualquer diferença entre o nome do servidor e o nome do servidor.
RoboForex-MetaTrader 5
MetaQuotes-Demo
EURUSD é a moeda, mas é mencionada nos registos acima.
Anexei um ficheiro com a data 10.10.10. Verifiquei-o novamente e ele mostra apenas 1 último TRADE_TRANSACTION_REQUES no RoboForex.
RoboForex-MetaTrader 5
MetaQuotes-Demo
EURUSD é a moeda, mas é mencionada nos registos acima.
O ficheiro anexo acima mostra um início no dia 10 do mês, por isso o início do teste foi 2011.10.10. Verifiquei-o mais uma vez, apenas 1 último TRADE_TRANSACTION_REQUES é recebido de forma consistente pela RoboForex.
O insecto não está a reproduzir-se.
Tanto no MQ como no RoboForex, em tempo real e no testador todos os TRADE_TRANSACTION_REQUEST estão a chegar normalmente.
O sistema é x86, neste momento não posso verificar x64.
Comparando os 2 registos, podemos ver que se a OnTradeTransaction não tiver sido processada antes de uma nova encomenda ser colocada, o TRADE_TRANSACTION_REQUEST é abandonado.
Aqui está 1 de 3
GM 0 Trade 03:35:28 2011.10.10 02:00:00 instant sell 1.00 EURUSD at 1.3385 (1.3385 / 1.3387 / 1.3385)
OL 0 Trades 03:35:28 2011.10.10 02:00:00 deal #2 sell 1.00 EURUSD at 1.3385 done (based on order #2)
JQ 0 Trade 03:35:28 2011.10.10 02:00:00 deal performed [#2 sell 1.00 EURUSD at 1.3385]
RJ 0 Trade 03:35:28 2011.10.10 02:00:00 order performed sell 1.00 at 1.3385 [#2 sell 1.00 EURUSD at 1.3385] <== 1
MH 0 test5 (EURUSD,M30) 03:35:28 2011.10.10 02:00:00 TRADE_ACTION_DEAL Установлен 1 ордер
HE 0 Trade 03:35:28 2011.10.10 02:00:00 buy limit 1.50 EURUSD at 1.3234 (1.3384 / 1.3386 / 1.3384) <== 2
MP 0 test5 (EURUSD,M30) 03:35:28 2011.10.10 02:00:00 TRADE_ACTION_PENDING Установлен 2 ордер
QN 0 Trade 03:35:28 2011.10.10 02:00:00 buy limit 1.50 EURUSD at 1.3285 (1.3385 / 1.3387 / 1.3385) <== 3
MM 0 test5 (EURUSD,M30) 03:35:28 2011.10.10 02:00:00 TRADE_ACTION_PENDING Установлен 2 ордер
HI 0 test5 (EURUSD,M30) 03:35:28 2011.10.10 02:00:00 ///////////////////// trans.type==6----- n=0
GE 0 test5 (EURUSD,M30) 03:35:28 2011.10.10 02:00:00 ****************************************************************************
GD 0 test5 (EURUSD,M30) 03:35:28 2011.10.10 02:00:00 ///////////////////// trans.type==2----- n=1
CF 0 test5 (EURUSD,M30) 03:35:28 2011.10.10 02:00:00 ****************************************************************************
MF 0 test5 (EURUSD,M30) 03:35:28 2011.10.10 02:00:00 ///////////////////// trans.type==3----- n=2
OS 0 test5 (EURUSD,M30) 03:35:28 2011.10.10 02:00:00 ****************************************************************************
OQ 0 test5 (EURUSD,M30) 03:35:28 2011.10.10 02:00:00 ///////////////////// trans.type==0----- n=3
KL 0 test5 (EURUSD,M30) 03:35:28 2011.10.10 02:00:00 ****************************************************************************
JL 0 test5 (EURUSD,M30) 03:35:28 2011.10.10 02:00:00 ///////////////////// trans.type==0----- n=4
GN 0 test5 (EURUSD,M30) 03:35:28 2011.10.10 02:00:00 ****************************************************************************
EO 0 test5 (EURUSD,M30) 03:35:28 2011.10.10 02:00:00 ///////////////////// trans.type==0----- n=5
CK 0 test5 (EURUSD,M30) 03:35:28 2011.10.10 02:00:00 ****************************************************************************
PI 0 test5 (EURUSD,M30) 03:35:28 2011.10.10 02:00:00 ///////////////////// trans.type==0----- n=6
OD 0 test5 (EURUSD,M30) 03:35:28 2011.10.10 02:00:00 ****************************************************************************
LG 0 test5 (EURUSD,M30) 03:35:28 2011.10.10 02:00:00 ///////////////////// trans.type==10----- n=7
OJ 0 test5 (EURUSD,M30) 03:35:28 2011.10.10 02:00:00 EnumToString(type)=TRADE_TRANSACTION_REQUEST
QN 0 test5 (EURUSD,M30) 03:35:28 2011.10.10 02:00:00 ------------trans===
TRADE_TRANSACTION_REQUEST
aqui 2 de 3
CL 0 Comércio 03:36:07 2011.10.10 02:00:00 venda imediata 1,00 EURUSD a 1,33989 (1,33989 / 1,34003 / 1,33989)
NP 0 Comércios 03:36:07 2011.10.10 02:00:00 negócio #2 vender 1.00 EURUSD a 1.33989 feito (com base no pedido #2)
QR 0 Comércio 03:36:07 2011.10.10 02:00:00 negócio realizado [#2 vender 1,00 EURUSD a 1,33989]
DJ 0 Comércio 03:36:07 2011.10.10 02:00:00 encomenda executada vender 1.00 a 1.33989 [#2 vender 1.00 EURUSD a 1.33989] <=== 1
RK 0 test5 (EURUSD,H1) 03:36:07 2011.10.10 02:00:00 TRADE_ACTION_DEAL 1 ordem executada
QE 0 Comércio 03:36:07 2011.10.10 02:00:00 limite de compra 1,50 EURUSD a 1,32490 (1,33990 / 1,34004 / 1,33990) <== 2
LS 0 test5 (EURUSD,H1) 03:36:07 2011.10.10 02:00:00 TRADE_ACTION_PENDING 2º conjunto de encomenda
GP 0 test5 (EURUSD,H1) 03:36:07 2011.10.10 02:00:00 ///////////////////// trans.type===6----- n=0
JM 0 test5 (EURUSD,H1) 03:36:07 2011.10.10 02:00:00 ****************************************************************************
DM 0 test5 (EURUSD,H1) 03:36:07 2011.10.10 02:00:00 ///////////////////// trans.type===2----- n=1
JH 0 test5 (EURUSD,H1) 03:36:07 2011.10.10 02:00:00 ****************************************************************************
FJ 0 test5 (EURUSD,H1) 03:36:07 2011.10.10 02:00:00 ///////////////////// trans.type===3----- n=2
JG 0 test5 (EURUSD,H1) 03:36:07 2011.10.10 02:00:00 ****************************************************************************
DG 0 test5 (EURUSD,H1) 03:36:07 2011.10.10 02:00:00 ///////////////////// trans.type==0----- n=3
JR 0 test5 (EURUSD,H1) 03:36:07 2011.10.10 02:00:00 ****************************************************************************
ID 0 test5 (EURUSD,H1) 03:36:07 2011.10.10 02:00:00 ///////////////////// trans.type==0----- n=4
JQ 0 test5 (EURUSD,H1) 03:36:07 2011.10.10 02:00:00 ****************************************************************************
IR 0 test5 (EURUSD,H1) 03:36:07 2011.10.10 02:00:00 ///////////////////// trans.type===10----- n=5
RP 0 test5 (EURUSD,H1) 03:36:07 2011.10.10 02:00:00 EnumToString(type)=TRADE_TRANSACTION_REQUEST
RG 0 test5 (EURUSD,H1) 03:36:07 2011.10.10 02:00:00 ------------trans=========
TRADE_TRANSACTION_REQUEST
...
FD 0 test5 (EURUSD,H1) 03:36:07 2011.10.10 02:00:00 ****************************************************************************
OG 0 comércio 03:36:07 2011.10.10 02:00:01 limite de compra 1,50 EURUSD a 1,32992 (1,33992 / 1,34006 / 1,33992) <== 3
QQ 0 test5 (EURUSD,H1) 03:36:07 2011.10.10 02:00:01 TRADE_ACTION_PENDING 2º conjunto de encomenda
RQ 0 test5 (EURUSD,H1) 03:36:07 2011.10.10 02:00:01 ///////////////////// trans.type==0----- n=6
OO 0 test5 (EURUSD,H1) 03:36:07 2011.10.10 02:00:01 ****************************************************************************
RM 0 test5 (EURUSD,H1) 03:36:07 2011.10.10 02:00:01 ///////////////////// trans.type===10----- n=7
CF 0 test5 (EURUSD,H1) 03:36:07 2011.10.10 02:00:01 EnumToString(type)=TRADE_TRANSACTION_REQUEST
CJ 0 test5 (EURUSD,H1) 03:36:07 2011.10.10 02:00:01 ------------trans=======
TRADE_TRANSACTION_REQUEST
...
O insecto não está a funcionar.
Tanto no MQ como no RoboForex, em tempo real e no testador, todos os TRADE_TRANSACTION_REQUEST vêm normalmente.
O sistema é x86, não o posso verificar em x64 neste momento.
Experimentei-o num computador portátil antigo, funcionou sequencialmente: definição de ordens - resposta - definição de ordens - resposta - definição de ordens - resposta
Penso que deve funcionar se enviarmos 2 encomendas durante 1 tick.A OnTradeTransaction não funcionará então a tempo.
Afinei um pouco o ficheiro.
Boa tarde.
Criei uma unidade para contar batidas em linhas de envelopes, parece contar tudo correctamente, mas faltam algumas entradas no registo - por exemplo, o registo tem contagem[Número] =3 e a próxima contagem[Número] =5. Posso ver que a contagem está correcta mas falta o registo por alguma razãocontar [Número] =4. Por vezes o registo tem todas as entradas. Não compreendo porque é que isto acontece. Se vir erros no código, pode corrigir o código?
Além disso, por vezes, o testador em execução atira o erro "OnTick erro crítico", mas no próximo início começa a testar. Qual poderá ser o problema?