PDA

View Full Version : EA para coletar dados a cada milissegundo, não apenas quando ocorrem os Ticks



Muhoz
10-17-2010 15:57, 03:57 PM
É possível obter informações de um EA a cada segundo, em vez de apenas quando um tick ocorre? Eu quero que isso aconteça porque o EA que eu estou escrevendo tira dados de preço de algumas moedas e passos que eles aumentaram de preço ou de preço, e isso não é possível fazer no caso de levar apenas o preço informações de cada tick, uma vez que perde a mudança nos dados de todas as outras moedas. .

Muito obrigado
https://www.tradingintuitivo.com/attachments/1528143103.png

pericasmopwzz
12-22-2021 22:01, 10:01 PM
Sim, mas não é prático. Algumas opções: 1) Utilize um script. Cada milissegundo analisa os dados com o MarketInfo. Muito CPU intensivo 2) Utilize um EA de captura em todos os símbolos. Incêndios quando um tick é recebido para aquele emblema, envie essa informação para um script que aciona a cada milissegundo. 3) Use o Excel DDE. Incendeia quando um tick é recebido de qualquer símbolo enviado. Faça sua análise aqui, mande os pedidos de volta ao MT4. === Tudo estranho, mas factível. Ps: Eu estou assumindo aqui que você quer dizer usando MT4. Para obter análises em tempo real, obtenha um feed de dados ao vivo, como esignal.

Muhoz
12-22-2021 23:22, 11:22 PM
Eu estava esperando que houvesse uma maneira mais fácil de fazê-lo do que simplesmente exportá-lo primeiro, muito obrigado
https://www.tradingintuitivo.com/attachments/1528143104.pngMuita programação funciona à frente para mim haha ​​JOY
https://www.tradingintuitivo.com/attachments/1528143104.pngVou tentar o meu melhor para seguir suas instruções.

pericasmopwzz
12-23-2021 00:43, 12:43 AM
Como eu iria abordá-lo ======================= dois) Script - executado em praticamente qualquer gráfico. While (true) ... fazer sempre ... olhar para GlobalVariableget (symbol1, tempo) ... olhar para GlobalVariableget (symbol1, preço) ... olhar para GlobalVariableget (symbol1, quantidade) ...... olhada GlobalVariableget (symbol9, tempo) ... olhar para GlobalVariableget (symbol9, preço) ... olhar para GlobalVariableget (symbol9, quantidade) ... fazer o compara e fazer grandes escolhas aqui. Enviar e lidar com ordens Sleep (1 millleey minuto ou não)/Requer CPU, assim que comprar um rápido ======================= EA: Executar em cada Emblema desejado: Cada tick, (ou seja, iniciar) GlobalVariableSet (symbolx, tempo) GlobalVariableSet (symbolx, preço) GlobalVariableSet (symbolx, quantidade) ==================== não muito a ele.

muispeha26
12-23-2021 02:04, 02:04 AM
Hey xlr8er ... Você produziu uma variedade muito grande e interessante de tarefas nos últimos 8 meses ... A maioria das pessoas só precisa colorir um bar azul ou vermelho .../- você pode ter a habilidade para gravar os valores em variáveis ​​globais onde o tempo era uma variável .... Em seguida, anexe-o a cada símbolo, não apenas àqueles incluídos e atualize as variáveis ​​se o tempo passou desde a última atualização .... Neste caso, você estaria usando cada marca de cada símbolo para atualizar os valores .... Eles podem pisar uns nos outros .... Teria que dar mais reflexão .... Não tenho certeza se isso ajudaria embora .... O comércio produzia ea tome uma atitude até que um carrapato venha de qualquer maneira, então não tenho certeza se haveria algum benefício técnico .../-/- e isso passou pela minha cabeça antes ... eu acho que é possível para qualquer tick de qualquer par para forçar a atualização de qualquer ea anexada a qualquer outro par .... Minhas idéias foram forçar a atualização de alguns dos painéis gráficos intensos com mais freqüência, mas eu acho que s poderia ser difícil de realizar quaisquer ações .... Outras palavras, qualquer EAA conectada a qualquer par pode ter a habilidade de forçar a'dormant 'or'tickless' ea anexada a outro par para realizar quaisquer ações, por exemplo, o envio de ordens. ..h

pericasmopwzz
12-23-2021 03:25, 03:25 AM
Hayseed e xlr8, sim, isso é feito a partir dos programas range pub e renko usando PostMessage (o código correto aqui) (não lembre o código)

muispeha26
12-23-2021 04:45, 04:45 AM
e xlr8, sim que é obtido a partir da barra range e dos programas renko usando PostMessage (código correto) (não lembre o código)
Olá ken .... Sim, é a pós-mensagem que eu tinha na cabeça .... Postmessage é algo que eu uso com freqüência, mas não o incorporei em um programa para trazer à vida uma ação dormente diferente e força ... Foi meio tentado para mencionar você ou zznbrm como possíveis candidatos ... h

muisyjezzy
12-23-2021 06:06, 06:06 AM
Você pode usar um programa emissor de carrapatos, como este:
http://www.forexmt4.com/Windows progr/MSFX-MT4TickSender-Setup.exeBasicamente, ele permite que o mt4 eas aja como se houvesse um tick, a cada x milissegundos (nos apliivos que você escolhe, quantos milissegundos permitem que mt4 acredite que há um movimento de tick), para isso você pode compor um ea que compor estatísticas em um arquivo Ele será executado a cada milésimo de segundo se você quiser.

Muhoz
12-23-2021 07:27, 07:27 AM
Sim, acho que o Tunera tem a solução para todos os nossos problemas! Ele funciona perfeitamente ... Ele queima recursos ... I7 Extreme aqui eu venho
https://www.tradingintuitivo.com/attachments/1528143104.png

Muhoz
12-23-2021 08:48, 08:48 AM
Este é o código que eu estava trabalhando ... É um trabalho de dosagem, meu objetivo é obter a potência de uma moeda não um par de moedas ... Eu pensei que eu deveria usar dados de tick de todos os pares diferentes para construir algo para dar indicação sobre o quão poderoso é ... Eu escrevi o seguinte para o seu AUD.Im não tenho certeza o que está errado porque cada vez que um tick ocorre apenas continua a adicionar números. . Isso pode ser útil para todos vocês, se você tiver a necessidade de saber qual é a moeda mais poderosa. AUDNZD duplo; dual AUDUSD; AUDCAD duplo; AUDCHF duplo; dupla AUDJPY; dupla EURAUD; GBPAUD duplo; int StrengthAUDNZD = 0; int StrengthAUDUSD = 0; int StrengthAUDCAD = 0; int StrengthAUDCHF = 0; int ForçaAUDJPY = 0; int StrengthEURAUD = 0; int ForçaGBPAUD = 0; int ForçaTotal = 0; int init ()/-/- return (0);/ ----------------------------------------------- ------------------- /| função de desinicialização pro |/ ----------------------------------------------- ------------------- int deinit ()/-/- return (0);/p ----------------------------------------------- ------------------- /| trabalho de início de especialista |/ ----------------------------------------------- ------------------- int start ()/- AUDNZD = MarketInfo (AUDNZD, MODE_BID); AUDUSD = MarketInfo (AUDUSD, MODE_BID); AUDCAD = MarketInfo (AUDCAD, MODE_BID); AUDCHF = MarketInfo (AUDCHF, MODE_BID); AUDJPY = MarketInfo (AUDJPY, MODE_BID); EURAUD = MarketInfo (EURAUD, MODE_BID); GBPAUD = MarketInfo (GBPAUD, MODE_BID); if (MarketInfo (AUDNZD, MODE_BID)!) = AUDNZD) if (AUDNZD gt; MarketInfo (AUDNZD, MODE_BID)) StrengthAUDNZD = (StrengthAUDNZD 1); if (AUDNZD lt; MarketInfo (AUDNZD, MODE_BID)) StrengthAUDNZD = (StrengthAUDNZD - 1); if (MarketInfo (AUDUSD, MODE_BID)!) = AUDUSD) if (AUDUSD gt; MarketInfo (AUDUSD, MODE_BID)) StrengthAUDUSD = (StrengthAUDUSD 1); if (AUDUSD lt; MarketInfo (AUDUSD, MODE_BID)) StrengthAUDUSD = (StrengthAUDUSD (1); se (MarketInfo (AUDCAD, MODE_BID)!) = AUDCAD) if (AUDCAD gt; MarketInfo (AUDCAD, MODE_BID)) StrengthAUDCAD = (StrengthAUDCAD 1); if (AUDCAD lt; MarketInfo (AUDCAD, MODE_BID)) StrengthAUDCAD = (StrengthAUDCAD (1); se (MarketInfo (AUDCHF, MODE_BID)!) = AUDCHF) se (AUDCHF gt; MarketInfo (AUDCHF, MODE_BID)) ForçaAUDCHF = (StrengthAUDCHF 1); if (AUDCHF lt; MarketInfo (AUDCHF, MODE_BID)) StrengthAUDCHF = (StrengthAUDCHF (1); se (MarketInfo (AUDJPY, MODE_BID)!) = AUDJPY) if (AUDJPY gt; MarketInfo (AUDJPY, MODE_BID)) ForçaAUDJPY = (StrengthAUDJPY 1); if (AUDJPY lt; MarketInfo (AUDJPY, MODE_BID)) StrengthAUDJPY = (StrengthAUDJPY (1); se (MarketInfo (EURAUD, MODE_BID)!) = EURAUD) if (EURAUD lt; MarketInfo (EURAUD, MODE_BID)) StrengthEURAUD = (StrengthEURAUD 1); if (EURAUD gt; MarketInfo (UERAUD, MODE_BID)) StrengthEURAUD = (StrengthEURAUD (1); se (MarketInfo (GBPAUD, MODE_BID)!) = GBPAUD) if (GBPAUD lt; MarketInfo (GBPAUD, MODE_BID)) ForçaGBPAUD= (StrengthGBPAUD 1); if (GBPAUD gt; MarketInfo (GBPAUD, MODE_BID)) ForçaGBPAUD = (StrengthGBPAUD (1); StrengthTOTAL = StrengthAUDNZD StrengthAUDUSD StrengthAUDCAD StrengthAUDCHF StrengthAUDJPY StrengthEURAUD StrengthGBPAUD; Monitor (nama, Armand Strauss, 12, 3, 20, Prata 1) Monitor (web,
http://www.xlr8ed.biz12, 3, 40, Prata, 1); Monitor (web1, XLR8ED TRADING, 12, 3, 60, Silver, 1); Comentário (WindowExpertName () ,, nnn, AUDNZD Força:, StrengthAUDNZD, n, AUDUSD Força:, StrengthAUDUSD, n, AUDCAD Força:, StrengthAUDCAD, n, AUDCHF Força:, StrengthAUDCHF, n, AUDJPY Força:, StrengthAUDJPY, n, EURAUD Força:, Força EURAUD, n, GBPAUD Força:, ForçaGBPAUD, n, força total TOTAL:, força TOTAL);/- return (0);/ ----------------------------------------------- ------------------- emptiness Monitor (string a_name_0, string a_text_8, int a_fontsize_16, int a_x_20, int a_y_24, cor a_color_28, int a_corner_32) ObjectCreate (a_name_0, OBJ_LABEL, 0, 0, 0, 0, 0); ObjectSet (a_name_0, OBJPROP_CORNER, a_corner_32); ObjectSet (a_name_0, OBJPROP_XDISTANCE, a_x_20); ObjectSet (a_name_0, OBJPROP_YDISTANCE, a_y_24); ObjectSetText (a_name_0, a_text_8, a_fontsize_16, Tahoma, a_color_28);

Muhoz
12-23-2021 10:08, 10:08 AM
Eu tenho que trabalhar apenas adicionando alguns Sleep (1000);
https://www.tradingintuitivo.com/attachments/1528143104.pngO software do remetente está funcionando como uma bomba perfeita.

Adriayz15
12-23-2021 11:29, 11:29 AM
Por que você precisa desperdiçar recursos de cpu com dados de cada milissegundo? Você só precisa executar um script, ea, work, ect, sempre que houver uma alteração nos dados. . .Tick, ocasião ect ... a b = dois até que o valor de a ou b mude. Não é provável que você obtenha vários resultados. Isso é realmente contraproducente, porque se você estiver no meio de um loop quando um novo tick chegar, o MT4 terminará o loop antes de começar de novo usando o novo tick, o que levará a um atraso adicional em seus cálculos. Minha proposta seria escrever seu código na preparação para outro tick e executar suas transações no momento em que você entrar, usando uma instrução if simples. Se você estiver operando um EA multimoeda e precisar obter dados de um par de moedas que não seja de gráfico, precisará de uma alternativa diferente. A maneira mais rápida que eu encontrei para fazer isso é iniciar um gráfico para cada moeda que você está utilizando e executar um script que atualiza os dados de preços para um único arquivo que pode ser lido ou fator comum em uma biblioteca.

Isoxmeri16
12-23-2021 12:50, 12:50 PM
Código Inserido** * MT4expertsscriptsticks.mq4 * envie um tick falso a cada 200 ms no gráfico e * todos os seus indicadores e EA até que este script seja removido. *#property copyright © Bernd Kreuss #importar user32.dll int PostMessageA (int hWnd, intMag, int wParam, intlParam); int RegisterWindowMessageA (string lpString); #import int start () int hwnd = WindowHandle (símbolo (), ponto ()); int msg = RegisterWindowMessageA (MetaTrader4_Internal_Message); while (! IsStopped ()) PostMessageA (hwnd, msg, 2, 1); Sono (200); Não quer nenhum software externo para enviar tiques. Anexe o script acima em um gráfico e ele enviará ticks para este gráfico. Altere o modo de suspensão (200) para torná-lo mais rápido ou mais lento.

azdyyyr1265
12-23-2021 14:11, 02:11 PM
Você pode usar um programa emissor de carrapatos, como este:
http://www.forexmt4.com/Windows progr/MSFX-MT4TickSender-Setup.exeBasicamente, ele permite que o mt4 eas se comporte como se houvesse um tick, cada x milissegundos (do software que você optou por quantos milissegundos deixam mt4 acreditar que existe um movimento de tick), com isso você pode escrever um ea que escreva estatísticas em um arquivo e ele será implementado a cada milésimo de segundo se você quiser.
Existe uma leitura para este programa? Estou tentando ter carrapato por lance de carrapato e pedir informações de preço. . Eu baixei e instalei, mas não tenho idéia de como configurá-lo. .

Isoxmeri16
12-23-2021 15:31, 03:31 PM
Existe uma leitura me com este programa?
Este software de computador não é necessário. O script no post anterior faz exatamente a mesma coisa.

azdyyyr1265
12-23-2021 16:52, 04:52 PM
Felicidades, amanhã eu tenho um olhar mais profundo, é sem esforço para conseguir mover meu algo? Vai ficar sem linhas rapidamente no brilho. .

aztiaym5
12-23-2021 18:13, 06:13 PM
Código Inserido/* * MT4expertsscripts/ticks.mq4 * envie um tick falso a cada 200 ms para o gráfico e todos os seus indicadores e EA até que este script seja removido. *#property copyright © Bernd Kreuss #importar user32.dll int PostMessageA (int hWnd, intMag, int wParam, intlParam); int RegisterWindowMessageA (string lpString); #import int start () int hwnd = WindowHandle (símbolo (), ponto ()); int msg = RegisterWindowMessageA (MetaTrader4_Internal_Message); while (! IsStopped ()) PostMessageA (hwnd, msg, 2, 1); Sono (200); Quer...
Obrigado 7bit simples e simples - como muitos itens Fantásticos - melhor usar qualquer executável que basicamente faz exatamente o mesmo

jesusmizoyes
12-23-2021 19:34, 07:34 PM
Este script tem uma falha que só faz o ea acreditar que existe um novo tick se o ea não o parar não verá novos dados. Ele irá produzir a plataforma MT operar e olhar e sentir como seu funcionamento Prós e scripts operam com sua própria cópia dos dados do histórico. Os dados do emblema atual são duplicados no primeiro lançamento do roteiro ou profissional. Em cada lançamento subseqüente do especialista (lembre-se que o script é executado apenas uma vez e não depende de tiques recebidos), a cópia inicial será atualizada. Um ou mais novos ticks podem gerar receita enquanto o especialista ou script está funcionando e os dados podem ficar desatualizados.

Obrigado 7bit simples e simples - como muitos itens Fantásticos - melhor então utilizar qualquer executável que basicamente faça o mesmo

Obrigado 7bit simples e simples - como muitos itens Fantásticos - melhor então utilizar qualquer executável que basicamente faça o mesmo

aztiaym5
12-23-2021 20:55, 08:55 PM
Esse script tem uma falha que só faz oe pensar que há um novo sinal se o ea não parar, não verá novas informações. Ele fará com que a plataforma MT funcione e olhe e sinta como seu trabalho. Especialistas e scripts operam com sua própria cópia das informações do histórico. Os dados deste emblema atual são duplicados logo no início do script ou do profissional. Em cada início subseqüente do especialista (lembre-se de que o script é executado apenas uma vez e não depende de tiques recebidos), a cópia inicial será atualizada. Um ou mais novos ticks podem gerar receita enquanto o especialista ou ...
este script atende às minhas necessidades - nada para executar esse loop infinito no script envia os ticks um por segundo ou quantos eu quero definir e também o EA pode operar normalmente quando há necessidade de avaliar o novo Bid ou outra informação que é prontamente feita . Pensei nisso, mas não tentei a próxima coisa: assim que eu tiver alguma atividade - digamos, um loop no qual a smth foi acionada - que eu possa terminar esse loop com break; em seguida, enviar uma mensagem de carrapato para a plataforma, em seguida, loop para que ele possa iniciar um novo começo () o que você acha de homens?

jesusmizoyes
12-23-2021 22:15, 10:15 PM
Essa citação na base do post acima é do MT, usei exatamente o mesmo script também tive um pequeno problema com ele que você deve corrigir, mas você vai aprender. Keit [QUOTE=;] este script atende às minhas necessidades - nada mais para executar esse loop infinito no script envia os tiques um por minuto ou quantos eu quero especificar e também o EA pode operar normalmente se houver uma demanda para avaliar o novo Licitação ou informação alternativa pode ser prontamente feito. Pensei nisso, mas não tentei outra coisa: assim que eu tenho alguma ação - digamos, um loop no qual a smth foi acionada - eu poderia terminar esse loop com break; em seguida, enviar uma mensagem de carrapato na plataforma, em seguida, loop para que ele possa iniciar uma nova função start () o que você importa caras? [/CITAR]

aztiaym5
12-23-2021 23:36, 11:36 PM
Essa citação na base do artigo acima é da MT, eu usei esse mesmo script também teve um pequeno problema com ele que você deve corrigir, mas você vai aprender. Keit
obrigado Keit por eu quero saber, a propósito - qual foi o erro que você poderia compartilhar conosco? Saudações

zaira56
12-24-2021 00:57, 12:57 AM
É inútil comprar por milissegundo. Seria um desperdício de recursos e não forneceria algumas dicas para você. A maneira que eu armazeno dados é onQuoteUpdate. Eu também compro informações de nível 2 e faço isso em atualizações de profundidade de mercado. Em mt4, a solução ideal será executar tick por tick, caso contrário, você estaria fazendo um monte de trabalho adicional. No caso, a questão é porque você sente que cada milissegundo é uma sensação de tempo contínuo, depois de salvar as informações em csv, executar uma instância que preenche cada milissegundo na citação anterior até que você a cite na seguinte ... loop até o arquivo terminar. Cabe a você meus dois centavos

jesusmizoyes
12-24-2021 02:18, 02:18 AM
Eronyx Agora é como responder um post se você gostaria de saber. Se o seu uso para apenas criar seus indicadores é executado pelo tempo, em vez de carrapato sábio ele vai fazer o trabalho muito bem, ele não será como nunca salvar informações em milissegundos MT dosnot automaticlly fazer isso, mesmo se o sysyem é tirgged. Ele salvará as informações de acordo com a escala de tempo do gráfico, a menos que você planeje executar de outro modo. Além disso, com este gerador de ticks, apenas a janela MT à qual ele está anexado funcionará bem, se você deseja ter mais de uma janela, por exemplo, você precisa ter o código aplicado para abrir as janelas. Se você usar um script externo para passar pelos ticks, ele criará uma plataforma abrangente que funcionará bem. Agora, para o erro, ele entra quando você executa o gerador de ticks em um EA ou script que também negocia ou manipula negociações. Você precisará adicionar algum código a ele para atualizar o backup EA das informações. Como meu primeiro artigo declara um Script ou o EA utiliza outra cópia de informações, esse backup só é atualizado quando o EA ou mesmo o Scipt termina, o que não ocorrerá se você codificar em um loop. Você só precisa chamar a função RefreshRate () depois que o script disparar um tick. Se você quiser, eu colocarei a cópia do roteiro que uso depois desta noite. Keit edit ... Eu também tenho que acrescentar que, no caso de o EA ou script chamar qualquer indicador integrado ou personalizado, ele enviará os dados antigos como entrada para a chamada da função do indicador, que também pode retornar informações obsoletas. Assim, a cópia do indicador que você vê no gráfico será atualizada normalmente, mas o ea ou o script funcionará com informações obsoletas que só envelhecem se você não atualizar as informações de entrada.

obrigado Keit por me permitir saber do caminho - qual foi o erro que você teve você poderia compartilhar conosco? Saudações

obrigado Keit por me permitir saber do caminho - qual foi o erro que você teve você poderia compartilhar conosco? Saudações

Oxtxa
12-24-2021 03:38, 03:38 AM
... Se você esperar, eu vou postar a cópia deste script que eu uso mais tarde hoje à noite. Keit
Olá CockeyedCowboy, graças à sua informação
https://www.tradingintuitivo.com/attachments/1528143114.pngAnsiosos por um script próprio. Eu tenho uma consulta para Keit, 7bit ou qualquer um de vocês mais inteligente em comparação com a média de ursos lá fora - O que ea atividade ocorre quando chega um segundo tique; A. O ea é impedido de fazer qualquer coisa que seja (como calcular ou comparar funções if ()) e reiniciar na função begin (). B. ignora e derruba todos os carrapatos recebidos até terminar com o anterior. C. O CrapT4 faz qualquer coisa sobre a lista arbitrária. D. Nenhum ou nenhum dos acima mencionados. Felicidades
https://www.tradingintuitivo.com/attachments/1528143114.png

Oxtxa
12-24-2021 04:59, 04:59 AM
... Que atividade de e acontece quando outro carrapato acontece; A. O ea é impedido de fazer tudo o que é necessário (como calcular ou comparar funções if ()) e reiniciar na função begin (). B. derruba e acalma todos os carrapatos recebidos até que termine com o último. C. O CrapT4 faz qualquer coisa na lista arbitrária. D. Nenhum ou alguns dos acima. Felicidades
https://www.tradingintuitivo.com/attachments/1528143114.pngE a resposta é para ser B.
http://book.mql4.com/programm/specialObrigado ao garyfritz por rastrear um recurso de referência.
https://www.tradingintuitivo.com/attachments/1528143114.pngFelicidades
https://www.tradingintuitivo.com/attachments/1528143114.png

aztiaym5
12-24-2021 06:20, 06:20 AM
Eu também tenho que acrescentar que, se o EA ou script exigir qualquer indicador, seja interno ou de hábito, ele enviará os dados antigos como entrada para a chamada de função do indicador, que também pode retornar informações obsoletas. Assim, a cópia desse indicador que você vê no gráfico será atualizada normalmente, mas o ea ou o script funcionará com informações obsoletas que só ficam mais antigas se você não atualizar as informações de entrada.
Esse é um ponto fantástico - eu vou ter que checar isso também, agradeço a vocês pelo caminho do seu roteiro - você conseguirá colocá-lo aqui? PS: as idéias principais que eu ia utilizar é enviar para o MT4 os ticks da dll, portanto, uma reação mais rápida - e eu concordo com você sobre o uso das taxas de refrash e todas as outras coisas no caso de estarmos usando o loop infinito
https://www.tradingintuitivo.com/attachments/1528143114.pngSaudações

marri11
12-24-2021 07:41, 07:41 AM
/* ** * MT4expertsscripts/ticks.mq4 * envia um tick falso a cada 200 ms no gráfico e todos os seus indicadores e EA antes de este script ser removido. *#property copyright Bernd Kreuss #importar user32.dll int PostMessageA (int hWnd, intMag, int wParam, intlParam); int RegisterWindowMessageA (string lpString); #import int begin () int hwnd = WindowHandle (Symbol (), Período ()); int msg = RegisterWindowMessageA (MetaTrader4_Internal_Message); while (! IsStopped ()) PostMessageA (hwnd, msg, 2, 1); Sono (200); Não precisa de nenhum software externo para enviar tiques. Anexar...
Eu presumo que tenho que juntar isso a um gráfico OFFLINE, certo? Saudações,