Especialistas: ManualTradeOnStrategyTester

 

ManualTradeOnStrategyTester:

Uma maneira simples de como o EA pode vincular um comando manual de fora para usá-lo no Strategy Tester do MetaTrader 5.

Autor: SearchSurf

 

Aqui está um exemplo de um código de painel simples feito no VisualBasic2010: (O caminho do arquivo deve ser semelhante à pasta de localização dos arquivos comuns do seu terminal)

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim filepathOut1 As String = "C:\Users\Rmd user\AppData\Roaming\MetaQuotes\Terminal\Common\Files\sell.txt"
        Dim filepathOut2 As String = "C:\Users\Rmd user\AppData\Roaming\MetaQuotes\Terminal\Common\Files\close.txt"
        Dim filepathIn As String = "C:\Users\Rmd user\AppData\Roaming\MetaQuotes\Terminal\Common\Files\buy.txt"

        If (My.Computer.FileSystem.FileExists(filepathOut1)) Then
            My.Computer.FileSystem.DeleteFile(filepathOut1)
        End If

        If (My.Computer.FileSystem.FileExists(filepathOut2)) Then
            My.Computer.FileSystem.DeleteFile(filepathOut2)
        End If

        System.IO.File.Create(filepathIn).Dispose()

    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

        Dim filepathOut As String = "C:\Users\Rmd user\AppData\Roaming\MetaQuotes\Terminal\Common\Files\buy.txt"
        Dim filepathOut2 As String = "C:\Users\Rmd user\AppData\Roaming\MetaQuotes\Terminal\Common\Files\close.txt"
        Dim filepathIn As String = "C:\Users\Rmd user\AppData\Roaming\MetaQuotes\Terminal\Common\Files\sell.txt"

        If (My.Computer.FileSystem.FileExists(filepathOut)) Then
            My.Computer.FileSystem.DeleteFile(filepathOut)
        End If

        If (My.Computer.FileSystem.FileExists(filepathOut2)) Then
            My.Computer.FileSystem.DeleteFile(filepathOut2)
        End If

        System.IO.File.Create(filepathIn).Dispose()

    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

        Dim filepathOut1 As String = "C:\Users\Rmd user\AppData\Roaming\MetaQuotes\Terminal\Common\Files\buy.txt"
        Dim filepathOut2 As String = "C:\Users\Rmd user\AppData\Roaming\MetaQuotes\Terminal\Common\Files\sell.txt"
        Dim filepathIn As String = "C:\Users\Rmd user\AppData\Roaming\MetaQuotes\Terminal\Common\Files\close.txt"

        If (My.Computer.FileSystem.FileExists(filepathOut1)) Then
            My.Computer.FileSystem.DeleteFile(filepathOut1)
        End If

        If (My.Computer.FileSystem.FileExists(filepathOut2)) Then
            My.Computer.FileSystem.DeleteFile(filepathOut2)
        End If

        System.IO.File.Create(filepathIn).Dispose()

    End Sub
 
SearchSurf:

Aqui está um exemplo de um código de painel simples feito no VisualBasic2010: (O caminho do arquivo deve ser semelhante à pasta de localização dos arquivos comuns do seu terminal)

Olá, obrigado por seus esforços e por compartilhá-los!

Fazia muito tempo que eu estava procurando um testador manual para o Mt5; eu estava usando o antigo FX Blue Trading Simulator v2 (http://www.fxblue.com/appstore/39/mt4-trading-simulator)

Mas, infelizmente, ele está disponível apenas no Mt4, não permitindo que eu teste estratégias em cfd's de ações na minha conta atual do Mt5.

Instalei seu testador e criei o modelo com sucesso, mas o problema é que não consigo fazer nenhuma operação, pois não consigo acessar o painel.

Então percebi que ele foi criado em Vb10, então baixei o Visualbasic e tentei copiar e colar seu código para criar (sem sucesso) meu painel.

Eu nunca usei o Vb10 e nem codifiquei; apenas copiei seu código em um novo projeto em branco, alterando o caminho do arquivo para localizar os arquivos comuns do meu terminal.

Não consegui depurar nem publicar o painel, pois o Vb10 me retornou com este erro:

Por gentileza, poderia me ajudar de alguma forma a construir o painel para que eu possa testar o testador de estratégia completo e funcional?

Muito obrigado desde já e, mais uma vez, todo o meu apreço por sua contribuição à comunidade!

Matteo

FX Blue Trading Simulator v2
FX Blue Trading Simulator v2
  • FX Blue Labs - www.fxbluelabs.com
  • www.fxblue.com
The FX Blue Trading Simulator converts the MetaTrader 4 strategy tester into a tool for practising manual trading using historic data. You can use the Simulator to test how well you would have fared under particular historic market conditions - and/or to check how well your favourite indicators would have guided you in the past. The Simulator...
 
<br/ translate="no">
mbertox:

Olá, obrigado por seus esforços e por compartilhá-los!

Fazia muito tempo que eu estava procurando um testador manual no Mt5; eu estava usando o antigo FX Blue Trading Simulator v2(http://www.fxblue.com/appstore/39/mt4-trading-simulator)

Mas, infelizmente, ele está disponível apenas no Mt4, não permitindo que eu teste estratégias em cfd's de ações na minha conta atual do Mt5.

Instalei seu testador e criei o modelo com sucesso, mas o problema é que não consigo fazer nenhuma operação, pois não consigo acessar o painel.

Então percebi que ele foi criado em Vb10, então baixei o Visualbasic e tentei copiar e colar seu código para criar (sem sucesso) meu painel.

Eu nunca usei o Vb10 e nem codifiquei; apenas copiei seu código em um novo projeto em branco, alterando o caminho do arquivo para localizar os arquivos comuns do meu terminal.

Não consegui depurar nem publicar o painel, pois o Vb10 me retornou com este erro:

Por gentileza, poderia me ajudar de alguma forma a construir o painel para que eu possa testar o testador de estratégia completo e funcional?

Muito obrigado desde já e, mais uma vez, todo o meu apreço por sua contribuição à comunidade!

Matteo

Espero que isso ajude...

VB10:

1. Abra o Visual Studio 2010

2. Clique na seção "File" (Arquivo), escolha NEW project (Novo projeto) e, em seguida, clique em Windows Forms Application (Aplicativo de formulários do Windows).

3. Um novo formulário será exibido:


4. Adicione três BOTÕES no formulário:


Você pode alterar o texto do botão para "Buy" (Comprar), "Sell" (Vender), "Close" (Fechar), clique com o botão direito do mouse no botão e depois em properties (propriedades): (você poderá fazer isso mais tarde)

5. Clique duas vezes em cada um dos três botões e você verá algo parecido com isto depois:


Todos os subbotões privados devem estar dentro da classe pública Form1...

6. Copie os códigos de cada botão e seu formulário agora terá a seguinte aparência:


7. Não se esqueça de localizar a pasta comum do Mt5. Os caminhos dos arquivos devem se assemelhar à sua pasta no código.

A minha tem a seguinte aparência: "C:\Users\Rmd user\AppData\Roaming\MetaQuotes\Terminal\Common\Files\xxx.txt"

A maneira mais rápida de encontrar a pasta comum de seus terminais é acessar o MT5 MetaEditor, ir para File (Arquivo) e clicar em "Common Data Folder" (Pasta de dados comuns):

Copie o caminho da pasta para os caminhos de arquivo do código VB10.

8. Em seguida, no VB10, vá para File (Arquivo) e clique em Save all (Salvar tudo), lembre-se da pasta em que você salvará o programa VB10.

Você precisará dela mais tarde.


Neste exemplo, nomeei o meu como "MyTradingPanel"...

9. Execute o teste, inicie a depuração e, se feito corretamente, nenhum erro deverá aparecer na lista de erros.


10. Ainda durante a depuração, localize a pasta comum do MT5 e veja se os arquivos aparecem quando você clica no botão do painel do VB10.

A maneira mais rápida de localizar a pasta comum de seus terminais é acessar o MetaEditor, ir para Arquivo e clicar em arquivos comuns.

11. Teste o botão e você verá que um arquivo de texto aparece na pasta.


12. Depois de testar os botões, exclua manualmente os arquivos criados na pasta nesse momento, antes de sair da pasta.

deverá excluir os arquivos se forem usados posteriormente.

13. Interrompa a depuração agora.

14. Agora, vá para a seção "Build" e clique no projeto com o qual estava trabalhando. (Salvei o meu com o nome MyTradingPanel

antes). Você deverá ver as observações abaixo em seu VB10 "build successful".



14. Vá para a pasta onde você salvou o VB10 (essa é a pasta onde você salvou o projeto anteriormente),

recupere o aplicativo na pasta "\Bin\Debug".



15. Você pode copiar e colar o arquivo do aplicativo em qualquer pasta que desejar ou colocá-lo na área de trabalho para facilitar o acesso.

16. Execute o EA no testador de estratégia MT5 e agora você poderá usar o painel.

17. Pronto, você acabou de concluir um curso intensivo básico sobre VB10 :)

Boa sorte, espero que você consiga colocá-lo em funcionamento.

 
mbertox:

Olá, obrigado pelo seu esforço e por compartilhá-lo!


Nunca usei o Vb10 e nem codifiquei; apenas copiei seu código em um novo projeto em branco, alterando o caminho do arquivo para localizar os arquivos comuns do meu terminal.

Não consegui depurar nem publicar o painel, pois o Vb10 me retornou com este erro:

Por gentileza, poderia me ajudar de alguma forma a construir o painel para que eu possa testar o testador de estratégia completo e funcional?

Muito obrigado desde já e, mais uma vez, todo o meu apreço por sua contribuição à comunidade!

Matteo


Depois de salvar o projeto... Talvez você queira verificar as configurações do VB também antes de criar:

1. No lado direito do "Solution Explorer", clique com o botão direito do mouse no projeto e vá para Properties (Propriedades).


2) Em Properties, verifique em "Compile" (Compilar) e em "Build output path" (Caminho de saída da compilação): (por padrão >>> "bin\Debug\") isso deve salvar a saída no local em que você salvou os arquivos do projeto, mas você pode navegar por ele e alterar o local para onde o arquivo de saída deve ir.


3. verifique a seção Depuração, vá para "Options and Settings"... ou Tools, Options... e verifique (clique duas vezes) "Projects and Solution" também, clique em "Buid and Run" e em "On Run, when projects are out of date: ", escolha "Always build".

Espero que isso tenha resolvido seu problema de compilação.

 
SearchSurf:


Depois de salvar o projeto... Talvez você também queira verificar as configurações do VB antes de criar:

1. No lado direito do "Solution Explorer", clique com o botão direito do mouse no projeto e vá para Propriedades.


2) Em Properties, verifique em "Compile" (Compilar) e em "Build output path" (Caminho de saída da compilação): (por padrão >>> "bin\Debug\") isso deve salvar a saída no local em que você salvou os arquivos do projeto, mas você pode navegar por ele e alterar o local para onde o arquivo de saída deve ir.


3. verifique a seção Depuração, vá para "Options and Settings"... ou Tools, Options... e verifique (clique duas vezes) "Projects and Solution" também, clique em "Buid and Run" e em "On Run, when projects are out of date: ", escolha "Always build".

Espero que isso tenha resolvido seu problema de compilação.

Obrigado pela resposta rápida!

Brinquei o dia todo com o Vb10 e descobri como colocar graficamente os botões no formulário, mas não consegui depurar nem publicar o painel.

Então, casualmente, cliquei duas vezes no primeiro erro no registro e descobri que o programa sugeria uma correção... e foi isso que fiz. em todos os 5 erros!

Você não pode imaginar como fiquei feliz apenas um piscar de olhos depois de pressionar o botão de depuração! :D

Acabei de fazer um teste completo no Metatrader e abri o fórum para informá-lo. E aqui está sua resposta!

Talvez a sua maneira de corrigir o problema seja mais confiável e acho que devo criar uma nova versão seguindo suas instruções :)

Como eu disse, nunca programei, mas essa experiência foi muito intrigante.

Estou pensando em como seria legal implementar uma caixa para escolher o tamanho do lote e um recurso SL / TP (talvez arrastável no gráfico)

Esses recursos devem ser codificados no mql5 ea e depois vinculados ao painel? Ou é "apenas" uma coisa do Vb10?

Acho que não conseguiria fazer isso... mas gostaria de saber quanto trabalho envolve e o nível de capacidade de codificação necessário para ter sucesso! :)

De qualquer forma, estou muito feliz agora com meu novo brinquedo de negociação em minhas mãos! (Uma longa noite está chegando... Já posso me ver simulando e pesquisando durante todo o fim de semana!!!) ;D

Mais uma vez, muito obrigado!

Até mais...

Mat

 
mbertox:

Obrigado por sua resposta rápida!

Brinquei o dia todo com o Vb10 e descobri como colocar graficamente os botões no formulário, mas não consegui depurar nem publicar o painel.

Então, casualmente, cliquei duas vezes no primeiro erro no registro e descobri que o programa sugeria uma correção... e foi isso que fiz. em todos os 5 erros!

Você não pode imaginar como fiquei feliz apenas um piscar de olhos depois de pressionar o botão de depuração! :D

Acabei de fazer um teste completo no Metatrader e abri o fórum para informá-lo. E aqui está sua resposta!

Talvez a sua maneira de corrigir o problema seja mais confiável e acho que devo criar uma nova versão seguindo suas instruções :)

Como eu disse, nunca programei, mas essa experiência foi muito intrigante.

Estou pensando em como seria legal implementar uma caixa para escolher o tamanho do lote e um recurso SL / TP (talvez arrastável no gráfico)

Esses recursos devem ser codificados no mql5 ea e depois vinculados ao painel? Ou é "apenas" uma coisa do Vb10?

Acho que não conseguiria fazer isso... mas gostaria de saber quanto trabalho envolve e o nível de capacidade de codificação necessário para ter sucesso! :)

De qualquer forma, estou muito feliz agora com meu novo brinquedo de negociação em minhas mãos! (Uma longa noite está chegando... Já posso me ver simulando e pesquisando durante todo o fim de semana!!!) ;D

Mais uma vez, muito obrigado!

Até mais...

Mat

Há uma maneira de incorporar o botão no próprio EA para usá-lo no testador de estratégia do MT5, mas isso exigiria uma programação avançada com algumas codificações complexas. Pensei que, dessa forma, eu poderia usar essas codificações básicas simples no mql5 e usá-lo no testador de estratégia. Eu sou apenas um hoobyista, não um programador profissional e ainda estou aprendendo aqui na MQL5. Fique de olho na base de código, talvez alguns encontrem uma maneira de usar uma codificação simples feita inteiramente na mql5... se eu tiver uma chance e conseguir criar uma, postarei a mesma :) ... Divirta-se e espero que a prática o torne melhor em negociações lucrativas :)
 

Um amigo meu perguntou se um botão de macro do Excel pode ser usado nesse EA, uma vez que já existe um VB interno no Excel..... Achei que poderia compartilhar isso, um pouco longo e complicado se você não tiver criado uma macro do Excel, mas se já tiver criado, é realmente um material básico e simples como parece.

Usando o Excel2007:

1. Personalize primeiro a barra de ferramentas de acesso rápido do Excel para facilitar o acesso ao botão.

- Clique com o botão direito do mouse em "Página inicial" e escolha "Mostrar barra de ferramentas de acesso rápido abaixo da faixa de opções"

- Clique em Acesso rápido e, em seguida, role para baixo para escolher mais comandos, selecione Personalizar, Escolher comando de

Comando não da faixa de opções, role e selecione Botão, clique em Adicionar e, em seguida, clique em OK.





2. Clique na ferramenta de botão e, em seguida, crie um botão no Excel. Deve aparecer uma janela solicitando a macro; se ela não aparecer, clique com o botão direito do mouse no botão e escolha atribuir macro.

Na janela de atribuição de macro, digite um nome (neste exemplo, eu o chamei de EApanel), clique em Novo e, em seguida, em "OK"...

4. depois de clicar em "OK", uma janela do Excel Visual Basic deverá aparecer.


- Substitua o código atual que apareceu pelos códigos escritos abaixo. (Basta excluir tudo o que estiver dentro da janela de edição e, em seguida, digitar ou copiar e colar todos os novos códigos),

Observação: Depois de digitar os códigos, não os salve ainda ou você ficará confuso se não tiver feito essa macro antes.

!!!! OBSERVAÇÃO: o local da pasta comum do MT5 deve ser semelhante ao caminho de sua própria pasta!!! (O caminho do arquivo no nome do arquivo no código é a minha pasta de localização.

Você pode verificar facilmente o caminho da pasta abrindo o Mt5 MetaEditor e, em "File" (Arquivo), escolha "Open Common Data Folder" (Abrir pasta de dados comuns).


Dim FileNameIn As String

Sub Buy_Click()

FileNameIn = "C:\Users\Rmd user\AppData\Roaming\MetaQuotes\Terminal\Common\Files\buy.txt"
If DoesFileExist(FileNameIn) = 0 Then
 Open FileNameIn For Output As #1 ' create a new file if does not exist
Else
End If
Close #1

End Sub


Sub Sell_Click()

FileNameIn = "C:\Users\Rmd user\AppData\Roaming\MetaQuotes\Terminal\Common\Files\sell.txt"
If DoesFileExist(FileNameIn) = 0 Then
Open FileNameIn For Output As #1 ' create a new file if does not exist
Else
End If
Close #1

End Sub



Sub Close_Click()

FileNameIn = "C:\Users\Rmd user\AppData\Roaming\MetaQuotes\Terminal\Common\Files\close.txt"
If DoesFileExist(FileNameIn) = 0 Then
Open FileNameIn For Output As #1 ' create a new file if does not exist
Else
End If
Close #1
End Sub


Function DoesFileExist(FileName As String) As Byte
' returns 1 if FileName exists, otherwise 0
If Dir(FileName, vbNormal) <> "" Then
 DoesFileExist = 1
Else
 DoesFileExist = 0
End If

End Function


5. Agora volte para o Excel (não feche a janela vb). No Excel... Salve o Excel primeiro como MACRO ENABLED EXCEL FILE... escolha "Save as" e, em seguida, escolha "Excel Macro Enabled workbook". Ela deverá estar habilitada para macro...

Você pode salvá-lo em qualquer pasta que desejar. Salvei o meu como EApanel também, como nomeado na macro vb, apenas para facilitar a referência, mas não precisa necessariamente ter o mesmo nome.



6. Agora volte para a janela do Visual Basic... Salve a macro vb, em File, clique em Save (sua macro VB).

(Se quiser salvar também o module1.bas, escolha a exportação e coloque-o em uma pasta. Observe que os arquivos de macro vb são salvos em um arquivo especial exclusivo para uso no Excel,

salvar o module.bas ajuda a ter uma cópia de segurança dos códigos de macro que você criou).

7. Agora volte ao Excel, crie mais dois botões ou copie o Button1 e cole-o para criar mais dois botões (você pode criar outro ou apenas copiar e colar o primeiro botão).

8. Renomeie os botões, clique com o botão direito do mouse e escolha "Edit Text" (Editar texto), nomeie os três botões como Buy, Sell e Close.

9. Agora vamos atribuir a macro a cada um deles... no botão Buy, clique com o botão direito do mouse e escolha atribuir macro, atribua-o a Buy_click...



10. Faça o mesmo nos dois botões, mas atribua cada um deles a sua própria atribuição de clique... Sell (Vender) para Sell_click (Vender_clique), Close (Fechar) para Close_click (Fechar_clique).

11. Salve o Excel... novamente Observe: ele deve ser salvo como MACRO ENABLED WORKBOOK (já que você o salvou como antes, agora basta clicar em "Save" daqui para frente).

12. Volte para a janela do Visual Basic, clique em "Debug" e, em seguida, clique em Compile VBAproject (Compilar projeto VBA).



13. Vamos testá-lo. Minimize o Excel, abra a pasta de localização do EA, teste o botão e, a cada clique, um arquivo deverá aparecer na pasta comum de localização do EA...

Isso leva de um a dois segundos, mas é um pouco mais rápido quando usado sozinho no Strategy Tester.

Nesse ponto, exclua manualmente os arquivos de texto quando sair da pasta de localização, caso contrário, o EA acionará um comando na primeira abertura quando vir o primeiro arquivo de texto na pasta, se você o tiver deixado lá.


14. Salve o arquivo do Excel novamente e feche o Excel. Feche também o Excel Visual Basic.

15. OBSERVE!!! Dependendo das configurações padrão de segurança de macro do Excel, você poderá encontrar um aviso toda vez que abrir um arquivo do Excel acionado por macro.

(Se isso acontecer e se for solicitado que você habilite, escolha "Habilitar" para que a macro funcione; caso contrário, o botão não funcionará, pois a macro está desabilitada).



É isso, você está pronto, basta abrir o Excel junto com o EA em execução no Strategy Tester e começar a praticar :)

Boa prática de negociação... :)

(Comentário atualizado em: 12 de dezembro de 2016)

 
Automated-Trading:

ManualTradeOnStrategyTester:

Autor: SearchSurf

Bem, finalmente, eu esperei, não faz nem 7 anos, provavelmente ainda é relevante agora.
 
Não, ainda não esperei, ..... com muletas, os programadores não estão nem aí para os testes manuais, e quem precisa de testes manuais são os comerciantes, não os programadores.
 
Onde está o painel??? Como você negocia com alguém que está longe da programação???