voidOnStart()
{
MqlTick ExTicks[];
datetime tm=StringToTime("1971.01.01 00:00:00");
//--- вывод результатаulong m=tm*1000;
int copied=CopyTicks(_Symbol,ExTicks,COPY_TICKS_ALL,m);
Print("Получено тиков: ",copied," код ошибки: ",GetLastError());
}
o tempo todo recebe 2.000 carrapatos. A ajuda diz que se não houver tempo especificado, não são transmitidos mais de 2000 tiquetaques. O tempo é especificado em milissegundos e os segundos são multiplicados por 1000.
Além disso, a ajuda especifica que estes são carrapatos para a sessão atual. Então, acontece que os dados históricos não podem ser acessados?
o tempo todo recebe 2.000 carrapatos. A ajuda diz que se não houver tempo especificado, não são transmitidos mais de 2000 tiquetaques. O tempo é especificado em milissegundos e os segundos são multiplicados por 1000.
Além disso, a ajuda especifica que estes são carrapatos para a sessão atual. Então, acontece que você não pode acessar dados históricos?
Você quer receber todos os carrapatos? :)
Primeiro, verifique se seu computador pode lidar com tantos carrapatos (se seu computador queimar, não é minha culpa):
//+------------------------------------------------------------------+//| CopyTicks_1_02.mq5|//| Copyright 2015, MetaQuotes Software Corp. |//| https://www.mql5.com |//+------------------------------------------------------------------+#property copyright"Copyright 2015, MetaQuotes Software Corp."#property link"https://www.mql5.com"#property version"1.031"//--- покажем окно входных параметров при запуске скрипта#property script_show_inputsinputint ticks=200000000000; // количество запрашиваемых тиковinputdatetime start=D'1971.01.01 23:59'; // с какой даты запрашивать тики//---MqlTick ExTicks[];
//+------------------------------------------------------------------+//| Script program start function |//+------------------------------------------------------------------+voidOnStart()
{
//--- запросим тикиint copied=CopyTicks(_Symbol,ExTicks,COPY_TICKS_ALL,(ulong)start*1000,ticks);
//--- если тики получены, то выведем на график значения Bid и Ask Print("Получено тиков: ",copied," код ошибки: ",GetLastError());
if(copied>1)
{
Print("Тик: ",ExTicks[0].time," bid: ",ExTicks[0].bid," ask: ",ExTicks[0].ask," last: ",ExTicks[0].last," [0]");
Print("Тик: ",ExTicks[copied-1].time," bid: ",ExTicks[copied-1].bid," ask: ",ExTicks[copied-1].ask," last: ",ExTicks[copied-1].last," [",copied-1,"]");
//datetime Start =D'2015.10.16 23:59'; // время наступления 2015 года//datetime End =D'2015.10.19 00:02'; // время наступления 2015 года//for(int i=0;i<copied-1;i++)// if(ExTicks[i].time>Start && ExTicks[i].time<End)// Print("Тик: ",ExTicks[i].time," bid: ",ExTicks[i].bid," ask: ",ExTicks[i].ask," last: ",ExTicks[i].last," [i]");
}
Print("Size ",((long)copied*sizeof(MqlTick))>>20," Mb");
}
//+------------------------------------------------------------------+
Sim, preciso saber a partir de que data há dados (ou seja, a partir de que data o teste pode ser executado com carrapatos reais).
E quanto não é um problema para o computador consultar? Você deve estar exagerando, é mais provável que congele?
Em vez de "200000000000" coloque "20000" e uma data, qualquer data em 1971. Dito isto, é muito provável que você precise executar o roteiro mais de uma vez. A questão é que a primeira solicitação iniciará todo o histórico baixado (porque você encomendou o histórico desde 1971), e se o roteiro não responder por muito tempo, ele dará os dados que estão disponíveis, mas o download irá além. Portanto, a segunda solicitação pode mostrar uma história mais profunda.
o tempo todo recebe 2.000 carrapatos. A ajuda diz que se não houver tempo especificado, não são transmitidos mais de 2000 tiquetaques. O tempo é especificado em milissegundos e os segundos são multiplicados por 1000.
Além disso, a ajuda especifica que estes são carrapatos para a sessão atual. Então, acontece que você não pode acessar dados históricos?
Você não pode obter todos os carrapatos para o símbolo, se eles forem mais do que INT_MAX, porque o valor de retorno
da função CopyTicks é inteiro. Portanto, você precisa colocá-los em peças.
Você não pode obter todos os carrapatos por personagem se eles forem maiores que INT_MAX, porque o valor de retorno
da função CopyTicks é inteiro. Portanto, você tem que colocá-los em peças.
No entanto, a data inicial dos carrapatos pode ser descoberta solicitando apenas 20000 (vinte mil) carrapatos - o principal é especificar a data inicial, o que garante que nesta data ainda não havia carrapatos e que 1971 é o melhor ajuste para ela.
Karputov Vladimir: Entretanto, é possível descobrir a data de início dos carrapatos solicitando apenas 20 mil carrapatos - o principal é especificar a data de início, o que garante que nesta data ainda não havia carrapatos, e 1971 é a melhor maneira de fazê-lo.
Foram solicitados muitos dados, uma frenagem realmente forte já começou:
Existe uma forma de software para determinar a profundidade do histórico do ticking?
Tentei isto:
o tempo todo recebe 2.000 carrapatos. A ajuda diz que se não houver tempo especificado, não são transmitidos mais de 2000 tiquetaques. O tempo é especificado em milissegundos e os segundos são multiplicados por 1000.
Além disso, a ajuda especifica que estes são carrapatos para a sessão atual. Então, acontece que os dados históricos não podem ser acessados?
Existe uma forma de software para determinar a profundidade do histórico do ticking?
Tentei isto:
o tempo todo recebe 2.000 carrapatos. A ajuda diz que se não houver tempo especificado, não são transmitidos mais de 2000 tiquetaques. O tempo é especificado em milissegundos e os segundos são multiplicados por 1000.
Além disso, a ajuda especifica que estes são carrapatos para a sessão atual. Então, acontece que você não pode acessar dados históricos?
Você quer receber todos os carrapatos? :)
Primeiro, verifique se seu computador pode lidar com tantos carrapatos (se seu computador queimar, não é minha culpa):
Você quer obter todos os tiques? :)
Primeiro, verifique se seu computador pode lidar com tantos carrapatos (se seu computador queimar, não é minha culpa):
Sim, preciso saber a partir de que data há dados (ou seja, a partir de que data você pode fazer um teste com carrapatos reais).
E quanto não é um problema para o computador consultar? Queimar é um exagero, mais provável que congele?
Sim, preciso saber a partir de que data há dados (ou seja, a partir de que data o teste pode ser executado com carrapatos reais).
E quanto não é um problema para o computador consultar? Você deve estar exagerando, é mais provável que congele?
Existe uma forma de software para determinar a profundidade do histórico do ticking?
Tentei isto:
o tempo todo recebe 2.000 carrapatos. A ajuda diz que se não houver tempo especificado, não são transmitidos mais de 2000 tiquetaques. O tempo é especificado em milissegundos e os segundos são multiplicados por 1000.
Além disso, a ajuda especifica que estes são carrapatos para a sessão atual. Então, acontece que você não pode acessar dados históricos?
Você não pode obter todos os carrapatos para o símbolo, se eles forem mais do que INT_MAX, porque o valor de retorno
da função CopyTicks é inteiro. Portanto, você precisa colocá-los em peças.
Você não pode obter todos os carrapatos por personagem se eles forem maiores que INT_MAX, porque o valor de retorno
da função CopyTicks é inteiro. Portanto, você tem que colocá-los em peças.
Entretanto, é possível descobrir a data de início dos carrapatos solicitando apenas 20 mil carrapatos - o principal é especificar a data de início, o que garante que nesta data ainda não havia carrapatos, e 1971 é a melhor maneira de fazê-lo.
Foram solicitados muitos dados, uma frenagem realmente forte já começou:
Para minha tarefa, 100 carrapatos é suficiente. Obrigado de qualquer forma!
Sim, em breve estarão disponíveis gráficos personalizados e datafeeds próprios.
Olá Renat, alguma atualização sobre estas características ? (desculpe se é em outro lugar que não o encontrei).
Olá Renat, alguma atualização sobre estas características ? (desculpe se não o encontrei em outro lugar).