Fala, galera! Hoje vou compartilhar uma maneira simples de conectar uma ordem manual para uso no Strategy Tester. A maioria de nós já sabe que o ChartEvent não funciona com o Strategy Tester, e os únicos objetos que podemos usar (no momento, utilizando códigos básicos de MQL5) são os "label" e os "button". Para o label, não tem problema em anexá-lo, mas para o botão... mesmo que você consiga colocá-lo no tester, não vai conseguir detectar seu estado se foi clicado ou não, a menos que utilize programação avançada e o conecte a outros sistemas.
O truque que eu usei para conseguir isso foi um processo simples de detecção de arquivos. Pense neste EA como um receptor autônomo; a cada movimento de tick, o EA verifica uma pasta em busca de um arquivo que acionaria uma ordem. Se o arquivo de texto necessário for detectado em um local específico, o EA executa um comando para processar a ordem e, em seguida, apaga o arquivo. Assim, a existência de um determinado arquivo em um local da pasta é o comando principal para executar uma operação.
Agora você pode usar qualquer método que imaginar para comandar o EA a executar a ordem, simplesmente colocando um determinado arquivo em uma pasta.
Neste EA, um simples arquivo chamado "buy.txt", "sell.txt" ou "close.txt" na pasta "...\Common\Files\" do MetaTrader 5 acionaria um comando para executar uma determinada ordem com base no nome do arquivo. Os arquivos de texto estão vazios, o que importa é o nome do arquivo e sua presença na pasta. Os arquivos devem aparecer um por vez no <common_data_folder>\Files (minha pasta é assim: C:\Users\Rmd user\AppData\Roaming\MetaQuotes\Terminal\Common\Files\). Apenas um dos três arquivos deve aparecer na pasta ao mesmo tempo; caso contrário, o primeiro que o EA ler será executado, após o qual o EA excluirá qualquer um ou todos os arquivos nomeados entre os três.
A outra aplicação que você vai precisar agora é aquela que criará ou fornecerá o arquivo de texto necessário na pasta mencionada, ou você pode simplesmente encontrar uma maneira de transferir o nome do arquivo para o local da pasta alvo. Eu fiz a minha em Visual Basic, adoraria compartilhar, mas duvido que o site me permita fazer upload de um arquivo executável aqui, então o melhor é criar ou procurar algo assim por conta própria; é de qualquer maneira que você possa imaginar, apenas coloque o arquivo de comando na pasta correta. Dê uma olhada na área de discussão no final, eu postarei como fiz meu painel.

Recomendações:
- Se você quiser usar seu próprio indicador no tester, salve ou renomeie um template de indicador para "StrategyTesterPracticeTrade.tpl", o mesmo nome do EA que você usará no Strategy Tester.
- Preste atenção no local correto da pasta para que os arquivos de comando apareçam (...\MetaQuotes\Terminal\Common\Files\).
- Você pode trabalhar com essa ideia não apenas para uso no Strategy Tester, mas também como uma forma de conectar influências externas a outras codificações de EA. Ex: Em vez de apenas a presença de um nome de arquivo, você pode usar FileOpen e ler o conteúdo do arquivo onde possíveis dados podem ser colocados e recuperados para Take Profit, Stop Loss e tamanhos de lote... etc... assim, sua aplicação externa pode cobrir outras possibilidades que você deseja que seu EA reaja.
Publicações relacionadas
- MACD Sample: Um Guia Prático para o Expert Advisor no MetaTrader 5
- Baixe Todo o Histórico de Ticks de um Símbolo no MetaTrader 5
- MasterMind 2: O Robô de Trading para MetaTrader 4 que Você Precisa Conhecer
- Como Usar o Take Profit Baseado no Lucro Atual no MetaTrader 4
- Trader Automático: RSI e MFI com Otimização Automática para MetaTrader 4