Participe de nossa página de fãs
Coloque um link para ele, e permita que outras pessoas também o avaliem
Avalie seu funcionamento no terminal MetaTrader 5
ThirdPartyTicks - script para MetaTrader 5
- Visualizações:
- 1541
- Avaliação:
- Publicado:
- 2018.06.08 15:31
- Atualizado:
- 2018.08.30 13:15
- Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance
Historicamente, para o MetaTrader 4, são muito populares os aplicativos de terceiros que permitem obter históricos de ticks de várias fontes. Como regra geral, eles são usados no Testador de Estratégias como um campo de testes de EAs, bem como para pesquisa (aprendizado de máquina, etc.). Algumas fontes de cotações nas discussões se tornaram quase padronizadas quando se procura um graal, isto é, a tal estratégia de negociação sem perdas.
Critérios
Na biblioteca MQL5 apresentada, não há critério para comparar ticks. Não são descritas as razões para escolher a fonte do arquivo de ticks. Mas este arquivo é absolutamente novo e, portanto, alias, não está estudado. Portanto, para desenvolver seu próprio critério de valor/utilidade, todos são encorajados a fazer o seguinte: iniciar em modo "Cada tick é baseado em um tick real" seu próprio EA no símbolo embutido no MetaTrader 5 e no símbolo personalizado criado pelo script (com histórico de ticks real de terceiros), comparando os resultados obtidos. Para fazer isso, não é necessário ir além do Terminal e ter conhecimento profundo sobre ele.
Script
O script extrai o histórico de ticks da fonte interna e cria os respectivos símbolos personalizados com base nele.
Comentários no código fonte revelam parcialmente o princípio de ação.
// https://www.mql5.com/pt/code/20225 #property script_show_inputs #include <fxsaber\ThirdPartyTicks\ThirdPartyTicks.mqh> sinput bool Sync = true; // Synchronization sinput string symbol = ""; // Symbol (NULL - current, "AllSymbols" - All) THIRDPARTYTICKS ThirdPartyTicks; // Conexão ao arquivo local de cotações // Um símbolo void CreateSymbol() { // Definição do símbolo para o trabalho const string Symb = (symbol == "") ? StringSubstr(_Symbol, 0, 6) : symbol; if (Sync) ThirdPartyTicks.Refresh(); // Leitura dos dados disponíveis na fonte do arquivo de ticks ThirdPartyTicks[Symb].Update(); // Sincronização do arquivo local com a fonte do símbolo selecionado ThirdPartyTicks[Symb].ToCustomSymbol(true); // Criação do símbolo personalizado com base no arquivo local } // Todos os símbolos void CreateAllSymbols() { if (Sync) ThirdPartyTicks.Refresh(); // Leitura dos dados disponíveis na fonte do arquivo de ticks const uint Amount = ThirdPartyTicks.GetAmount(); for (uint i = 0; _CS(i < Amount); i++) { ThirdPartyTicks[i].Update(); // Sincronização do arquivo local com a fonte do símbolo selecionado ThirdPartyTicks[i].ToCustomSymbol(); // Criação do símbolo personalizado com base no arquivo local } } void OnStart() { if (symbol != "AllSymbols") CreateSymbol(); else if (MessageBox("Creating all the symbols can take a long time. Do you agree?", __FILE__, MB_YESNO | MB_ICONQUESTION) == IDYES) CreateAllSymbols(); }
Para o uma experiência completa, é necessário, nas configurações do Terminal, registrar o endereço da fonte de cotações, por exemplo:
O funcionamento do script é acompanhado por registros detalhados de suas ações:
UnZip <nome_da_fonte>\EURUSD.<sufixo>\EURUSD.<sufixo>_20180313.csv.zip 724002 bytes - unpack size 5466504 bytes. Total Ticks (EURUSD.<sufixo>) = 1645897 Corrected 3 ticks. EURUSD.<sufixo>_<nome_da_fonte> saved ticks = 1645897
Depois disso, você pode executar os Expert Advisors no Testador nos novos símbolos personalizados:
Características
- Usam-se apenas os recursos padrão da MQL5: nenhuma DLL é adequada para o Mercado;
- O arquivo de cotações salvo na máquina local como arquivos ZIP com arquivos CSV;
- O arquivo de cotações é sincronizado com a fonte: somente são baixados os dados faltando ;
- No código fonte, existem bibliotecas ZIP e Symbol;
- O script pode funcionar com um arquivo local sem se conectar à Internet;
- É permitida a modificação/adição manual de dados do arquivo local;
- O repositório de arquivos não depende da presença de diretórios, pois você pode criar pastas e distribuir dados a seu critério;
- O histórico de barras é criado levando em conta as perdas mínimas de qualidade ao mudar do modo de teste "Cada tick baseado em ticks reais" para "Apenas preços de abertura" - sisema de negociação em ordens limitadas;
- O núcleo do script é a biblioteca com o mesmo nome. Com sua ajuda, é possível escrever cenários mais interessantes;
- Análise otimizada;
- A fonte é fornecida para fins educacionais;
- Para que a biblioteca usada como núcleo se torne completamente universal, ela precisa ser modificada para funcionar com fontes arbitrárias e com qualquer formato de cotações.
Traduzido do russo pela MetaQuotes Ltd.
Publicação original: https://www.mql5.com/ru/code/20225
Nesta versão, para cálculo do MACD, em vez da EMA (como na versão original), é usada a média móvel Hull (Hull Moving Average). Isso faz com que seja mais rápida que a versão com a EMA. Ela convém para scalping e para abordagens de tendência (se forem usados os períodos de cálculo mais longos).
ImproveExpert Advisor com base em dois iMA (Moving Average,MA) e um iRSI (Relative Strength Index, RSI). Acompanhando do lucro virtual. Trabalho em dois símbolos.
Essa versão do oscilador estocástico reduz o número de alertas falsos ao suavizar o preço antes de usá-lo para calcular o estocástico. Como resultado, obtemos um estocástico suavizado que pode ser facilmente usado em sistemas de negociação de tendência.
RSI of averageConhecido indicador RSI com base em MA que consiste em quatro linhas de código de ciclo principal (a cor da inclinação do RSI é atribuída a uma dessas 4 linhas). Pode ser usado como modelo de outros indicadores. Ele fornece simplicidade de soluções para aqueles que acreditam que no MetaTrader 5 tudo é muito difícil.