14 outubro 2016
14 outubro 2016
Na biblioteca padrão, foi incluía a versão MQL5 da biblioteca de análise numérica ALGLIB.
Possibilidades da biblioteca
Como usar
Os arquivos da biblioteca ALGLIB estão localizados no diretório \MQL5\Include\Math\Alglib. Para usar as funções, adicione o arquivo principal da biblioteca ao seu programa:
A biblioteca padrão foram adicionadas funções de trabalho com estatística matemática. Agora, em MQL5, estão disponíveis as possibilidades da linguagem R, ela é um dos melhores instrumentos de processamento estatístico e análise de dados.<br1>
Possibilidades da biblioteca
A biblioteca estatística contém funções para cálculo de características estatísticas de dados, bem como funções para trabalhar com distribuições estatísticas:
Como usar
Os arquivos da biblioteca ALGLIB estão localizados no diretório \MQL5\Include\Math\Stat. Para usar as funções, adicione o arquivo com as funções desejadas ao seu programa, por exemplo:
#include <Math\Stat\Binomal.mqh> #include <Math\Stat\Cauchy.mqh>
Leia descrições detalhadas das funções da biblioteca no artigo Distribuições estatísticas em MQL5: pegamos as melhores a partir de R.
Na biblioteca padrão, foi incluía a versão MQL5 da biblioteca Fuzzy, ela implementa sistemas de inferência de lógica difusa Mastop e Sugeno.
Possibilidades da biblioteca
Como usar
Os arquivos da biblioteca Fuzzy estão localizados no diretório \MQL5\Include\Math\Fuzzy. Para usar as funções, adicione o arquivo com as funções desejadas ao seu programa, por exemplo:
#include <Math\Fuzzy\mamdanifuzzysystem.mqh> #include <Math\Fuzzy\sugenofuzzysystem.mqh>
Uma descrição detalhada da biblioteca pode ser encontrada ni Code Base: Fuzzy, biblioteca para trabalhar com lógica difusa
long FileLoad( const string filename, // [in] nome do arquivo void &buffer[], // [out] matriz na qual é tomado em consideração o arquivo uint common_flag=0 // [in] 0 - busca do arquivo na pasta Files do terminal, FILE_COMMON - na pasta comum dos terminais ); bool FileSave( const string filename, // [in] nome do arquivo const void &buffer[], // [in] matriz armazenada no arquivo uint common_flag=0 // [in] 0 - criação do arquivo na pasta Files do terminal, FILE_COMMON - na pasta comum dos terminais );Exemplo de como armazenar, numa pasta, uma matriz de ticks e, em seguida, lê-la.
//--- parâmetros de entrada input int ticks_to_save=1000; // número de ticks //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { string filename=_Symbol+"_ticks.bin"; MqlTick ticks[]; //--- int copied=CopyTicks(_Symbol,ticks,COPY_TICKS_ALL,0,ticks_to_save); if(copied!=-1) { PrintFormat(" CopyTicks(%s) copied %d ticks",_Symbol,copied); //--- se o histórico de ticks estiver sincronizado, o código de erro será igual a zero if(!GetLastError()==0) PrintFormat("%s: Ticks are not synchronized. Error=",_Symbol,copied,_LastError); //--- armazenamos os ticks no arquivo if(!FileSave(filename,ticks,FILE_COMMON)) PrintFormat("FileSave() failed, error=%d",GetLastError()); } else PrintFormat("Failed CopyTicks(%s), Error=",_Symbol,GetLastError()); //--- agora lemos de volta estes ticks a partir do arquivo ArrayFree(ticks); long count=FileLoad(filename,ticks,FILE_COMMON); if(count!=-1) { Print("Time\tBid\tAsk\tLast\tVolume\tms\tflags"); for(int i=0;i<count;i++) { PrintFormat("%s.%03I64u:\t%G\t%G\t%G\t%I64u\t0x%04x", TimeToString(ticks[i].time,TIME_DATE|TIME_SECONDS),ticks[i].time_msc%1000, ticks[i].bid,ticks[i].ask,ticks[i].last,ticks[i].volume,ticks[i].flags); } } }
//--- velas pintadas na mesma cor #property indicator_label1 "One color candles" #property indicator_type1 DRAW_CANDLES //--- foi indicado apenas uma cor, por isso todas as velas terão apenas uma cor #property indicator_color1 clrGreenSe forem indicadas duas cores, os contornos das velas serão desenhadas usando a primeira cor, enquanto o corpo usando a segunda.
//--- a cor das velas difere da cor das sombras #property indicator_label1 "Two color candles" #property indicator_type1 DRAW_CANDLES //--- sombras e contorno de velas de cor verde, corpo de cor branca #property indicator_color1 clrGreen,clrWhiteSe forem indicadas duas cores, os contornos das velas serão desenhadas usando a primeira cor, enquanto o as velas de alta e baixa serão definidas usando uma segunda e terceira.
//--- o cor das velas é diferente da cor das sombras #property indicator_label1 "One color candles" #property indicator_type1 DRAW_CANDLES //--- as sombras e contornos de cor verde; o corpo da vela de alta de cor branca; corpo da vela de baixa de cor vermelha #property indicator_color1 clrGreen,clrWhite,clrRedAssim, usando o estilo DRAW_CANDLES, é possível criar suas próprias opções personalizadas para colorir velas. Também é possível alterar dinamicamente todas as cores -no processo de trabalho do indicador- mediante a função PlotIndexSetInteger(índice_de_construção_DRAW_CANDLES, PLOT_LINE_COLOR, número_de_modificador, cor), aqui o número_de_modificador pode ter os seguintes valores:
//--- definimos a cor do contorno e das sombras PlotIndexSetInteger(0,PLOT_LINE_COLOR,0,clrBlue); //--- definimos a cor do corpo para a vela de alta PlotIndexSetInteger(0,PLOT_LINE_COLOR,1,clrGreen); //--- definimos a cor do corpo para a vela de baixa PlotIndexSetInteger(0,PLOT_LINE_COLOR,2,clrRed);
Documentação atualizada.