//+------------------------------------------------------------------+ //| runs-01.mq5 | //| Copyright 2020, OS Corp. | //| http://www.os.org | //+------------------------------------------------------------------+ #property copyright "Copyright 2020, OS Corp." #property link "http://www.os.org" #property version "1.001" #include //+------------------------------------------------------------------+ //| Script para testar estatisticas de mudanca de precos | //+------------------------------------------------------------------+ input int QTD_MINUTOS = 21; input int LEN_CHUNK_INI = 1; input int LEN_CHUNK_FIM = 10; void OnStart(){ //datetime from = D'2020.02.10 13:58:00'; //datetime to = D'2020.02.10 14:14:00'; //TimeCurrent(); //datetime from = D'2020.02.13 09:45:00'; //datetime to = D'2020.02.13 09:54:00'; //TimeCurrent(); datetime from = D'2020.02.18 13:28:00'; datetime to = D'2020.02.18 14:28:00'; //TimeCurrent(); int run []; //vetor de mudancas de precos int run1 []; //vetor de quantidade de mudancas de preco positivas int run2 []; //vetor de quantidade de mudancas de preco negativas MqlTick ticks[]; //vetor de ticks que serao processados; double tickSize = SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_SIZE); int ir = 0; //indice do vetor ir int ir1 = 0; //indice do vetor ir1 int ir2 = 0; //indice do vetor ir2 int qtdTicks = 0; int lenChunk = LEN_CHUNK_INI; // chunk eh o tamanho da run medido em ticks... int chunk = 0; //int chunkN = 0; // chunk de baixa //int chunkP = 0; // chunk de alta //int chunkN = 0; // chunk de baixa int vp = 0; int p, pAnt, dp = 0; string strRun =""; int varLenChunk = 0; pAnt = 0; double qtdRuns1 = 0; double qtdRuns2 = 0; ArrayResize(run1,10,10); ArrayResize(run2,10,10); ArrayInitialize(run1,0); ArrayInitialize(run2,0); for(int j=0; j<1; j++){ //while(true){ //Obtendo o ultimo minuto de ticks... //Print(__FUNCTION__,": Obtendo ticks a processar..."); qtdTicks = CopyTicksRange(_Symbol,ticks,COPY_TICKS_INFO,TimeCurrent()*1000 - (60000*QTD_MINUTOS), TimeCurrent()*1000 ); //qtdTicks = CopyTicksRange(_Symbol,ticks,COPY_TICKS_INFO,from*1000 , to*1000 ); strRun = ""; //for( varLenChunk=lenChunk-lenChunk/2; varLenChunk< lenChunk+lenChunk/2+1; varLenChunk++ ){ //for( varLenChunk=1 ; varLenChunk<=lenChunk+lenChunk ; varLenChunk++ ){ for( varLenChunk=LEN_CHUNK_INI ; varLenChunk<=LEN_CHUNK_FIM ; varLenChunk++ ){ p=0; pAnt=0; vp=0; ir=0; chunk=0; //chunkN=0; chunkP=0; ArrayResize(run,10,10); ArrayInitialize(run,0); // varrendo o array de ticks... for( int i=1; i