Discussão do artigo "MQL5 Wizard para Leigos"

 

Novo artigo MQL5 Wizard para Leigos foi publicado:

No início de 2011, lançamos a primeira versão do MQL5 Wizard. Este novo aplicativo fornece uma ferramenta simples e conveniente para gerar robôs de negociação automaticamente. Qualquer usuário do MetaTrader 5 pode criar um Expert Advisor personalizado sem precisar saber como programar em MQL5.

Criar Expert Advisor

Autor: MetaQuotes Software Corp.

 

Perguntas para os desenvolvedores:

1. Por que não posso usar outros sinais?

Por exemplo,"Sinais baseados no cruzamento de duas EMAs"

https://www.mql5.com/ru/forum/2935/page1

2 A biblioteca de sinais será reabastecida?

3) Será possível criar suas próprias classes de sinais usando o "Wizard" (Assistente)?

4. será possível criar indicadores baseados em matrizes de indicadores usando o "Wizard"?

5. Será possível salvar as configurações do assistente para ajuste posterior da estratégia/indicador criado diretamente no assistente?

Em minha opinião, os itens. 3-5 facilitariam muito a vida dos traders que não são programadores.

E uma "fantasia" completa seria a capacidade de criar seus próprios cassetes de sinais para quaisquer indicadores com a ajuda do assistente, como se estivesse escrevendo equações no Excel :)

Como está implementado no Metaquots e no CQG.

Советники: Мастер MQL5 - Торговые сигналы по пересечению двух экспоненциальных скользящих средних
Советники: Мастер MQL5 - Торговые сигналы по пересечению двух экспоненциальных скользящих средних
  • www.mql5.com
В статье Создание эксперта без программирования с помощью Мастера MQL5 описаны шаги по автоматическому созданию кода советника при помощи Мастера MQL5.
 
Estou escrevendo meu próprio módulo de sinais, no qual a função de teste é a seguinte:
//+------------------------------------------------------------------+
//| Verificar se a condição para uma venda foi atendida
//| INPUT:none|
//| OUTPUT: Peso da voz de 0 a 100|
//| OBSERVAÇÃO: Não.|
//+------------------------------------------------------------------+
int CInnerBarSignal::ShortCondition(){
//--- a condição é verificada pela barra anterior fechada

  
   Print("call short condition");
   if(  Low(1) < Low(2) && High(2)<High(3) && Low(2)>Low(3) && Close(3)<Open(3) ){
     return(100);
   }
//--- condição não atendida
   return(0);
  }

Ao executar o EA gerado no modo "all ticks", você pode ver que a função é executada duas vezes na abertura da barra

2011.06.07 11:42:15 Core 1 conexão fechada

2011.06.07 11:42:15 Core 1 arquivo de registro "D:\metatrader5\Tester\Agent-127.0.0.0.1-3000\logs\20110607.log" escrito

2011.06.07 11:42:15 Core 1 EURUSD,H1: 72504 ticks (24 barras) gerados em 62 ms (total de barras no histórico 8814, tempo total 312 ms)

2011.06.07 11:42:15 Core 1 OnTester result 0

2011.06.07 11:42:15 Core 1 2011.06.02 23:00:00 call short condition

2011.06.07 11:42:15 Core 1 2011.06.02 23:00:00 call short condition

2011.06.07 11:42:15 Core 1 2011.06.02 22:00:00 call short condition

2011.06.07 11:42:15 Core 1 2011.06.02 22:00:00:00 call short condition

2011.06.07 11:42:15 Core 1 2011.06.02 21:00:00:00 call short condition

2011.06.07 11:42:15 Core 1 2011.06.02 21:00:00 call short condition

2011.06.07 11:42:15 Core 1 2011.06.02 20:00:00 call short condition

2011.06.07 11:42:15 Core 1 2011.06.02 20:00:00 call short condition

2011.06.07 11:42:15 Core 1 2011.06.02 19:00:00 call short condition

É assim que foi projetado e o processamento posicional não está disponível no módulo de sinal?

Мастер MQL5: Создание эксперта без программирования
Мастер MQL5: Создание эксперта без программирования
  • 2010.12.15
  • MetaQuotes Software Corp.
  • www.mql5.com
Вы хотите быстро проверить торговую идею, не тратя времени на программирование? Выберите в "Мастере MQL5" нужный тип торговых сигналов, подключите модули сопровождения позиций и управления капиталом - на этом вся работа закончена. Создайте свои реализации модулей или закажите их через сервис "Работа" - и комбинируйте новые модули с уже существующими.
 
gdtt:
Estou escrevendo meu próprio módulo de sinais, no qual a função de teste é a seguinte:

Ao executar o EA gerado no modo "all ticks", você pode ver que a função é executada duas vezes na abertura da barra

2011.06.07 11:42:15 Core 1 conexão fechada

2011.06.07 11:42:15 Core 1 arquivo de registro "D:\metatrader5\Tester\Agent-127.0.0.0.1-3000\logs\20110607.log" escrito

2011.06.07 11:42:15 Core 1 EURUSD,H1: 72504 ticks (24 barras) gerados em 62 ms (total de barras no histórico 8814, tempo total 312 ms)

2011.06.07 11:42:15 Core 1 OnTester result 0

2011.06.07 11:42:15 Core 1 2011.06.02 23:00:00 call short condition

2011.06.07 11:42:15 Core 1 2011.06.02 23:00:00 call short condition

2011.06.07 11:42:15 Core 1 2011.06.02 22:00:00 call short condition

2011.06.07 11:42:15 Core 1 2011.06.02 22:00:00:00 call short condition

2011.06.07 11:42:15 Core 1 2011.06.02 21:00:00:00 call short condition

2011.06.07 11:42:15 Core 1 2011.06.02 21:00:00 call short condition

2011.06.07 11:42:15 Core 1 2011.06.02 20:00:00 call short condition

2011.06.07 11:42:15 Core 1 2011.06.02 20:00:00 call short condition

2011.06.07 11:42:15 Core 1 2011.06.02 19:00:00 call short condition

É assim que ele foi projetado e o processamento posicional não está disponível no módulo de sinal?

Por padrão, o Expert Advisor é gerado pelo Assistente para trabalhar com preços de abertura.

No código-fonte do Expert Advisor, substitua:

//--- Especialista em inicialização
   if(!Ext_Expert.Init(...,...,false,...))

para:

//--- Especialista em inicialização
   if(!Ext_Expert.Init(...,...,true,...))
 

No início de 2011, lançamos a primeira versão do Wizard MQL5. Essa etapa forneceu aos traders uma ferramenta simples e clara para a criação automática de robôs de negociação. Qualquer usuário do MetaTrader 5 foi capaz de escrever seu próprio Expert Advisor sem saber como programar em MQL5.


Isso é bom, mas não é suficiente para os iniciantes escreverem seus próprios robôs, ou seja, você pode escrevê-los, mas apenas usando sua biblioteca. E se um iniciante precisar escrever um Expert Advisor com seus próprios sinais? Aqui estamos...

Se quiser que qualquer iniciante possa escrever seu próprio Expert Advisor, você precisará adicionar um visualizador. Isso é implementado, por exemplo, no Trade Navigator. Lá, é possível adicionar sinais à biblioteca selecionando alguma seção do gráfico. E o visualizador transfere tudo sozinho para a linguagem de programação. E ele leva em conta tudo: candlesticks, indicadores e linhas gráficas no gráfico. Ou seja, você pode criar qualquer biblioteca. E então você pode criar qualquer Expert Advisor a partir desses sinais. É isso que devemos buscar.

Abraços!

 
NGN:


Isso é bom, mas não é suficiente para que os iniciantes escrevam seus próprios robôs, ou seja, é claro que você pode escrever, mas somente usando sua biblioteca. E se um iniciante precisar escrever um especialista com seus próprios sinais? Aqui estamos...

Se quiser que qualquer iniciante possa escrever seu próprio Expert Advisor, você precisará adicionar um visualizador. Isso é implementado, por exemplo, no Trade Navigator. Lá, é possível adicionar sinais à biblioteca selecionando alguma seção do gráfico. E o visualizador transfere tudo sozinho para a linguagem de programação. E ele leva em conta tudo: candlesticks, indicadores e linhas gráficas no gráfico. Ou seja, você pode criar qualquer biblioteca. E então você pode criar qualquer Expert Advisor a partir desses sinais. É isso que devemos buscar.

Abraços!

Você ainda não está familiarizado com esses artigos?

1. MQL5 Wizard: Como escrever seu próprio módulo para manutenção de posições abertas

2. MQL5 Wizard: Como escrever seu próprio módulo de gerenciamento de capital e risco

3. MQL5 Wizard: Como escrever seu módulo de sinais de negociação

4. Assistente MQL5: Como criar um Expert Advisor sem programação

5. MQL5 Wizard: Nova versão

 

Você pode me dizer como colocar ordens pendentes no assistente?

Outra pergunta: esse código está correto?

//+------------------------------------------------------------------+
//|| Objeto especialista global|
//+------------------------------------------------------------------+
CExpert ExtExpert;
CExpert ExtExpert1;

//+------------------------------------------------------------------+
//| Função de inicialização do especialista
//+------------------------------------------------------------------+
int OnInit()
  {
//--- Especialista em inicialização
   if(!ExtExpert.Init("GBPCHF",Period(),Expert_EveryTick,Expert_MagicNumber) || 
      !ExtExpert1.Init("GBPJPY",Period(),Expert_EveryTick,Expert_MagicNumber))
     {
      //--- falhou
      printf(__FUNCTION__+": error initializing expert");
      ExtExpert.Deinit();
      ExtExpert1.Deinit(); 
      return(-1);
     }

E qual símbolo/período deve ser definido no testador nesse caso?

2011.06.16 10:15:25     Core 1  2011.06.01 00:00:00   CExpert::Init: wrong symbol or timeframe (must be GBPCHF:PERIOD_H1)
 
beginner:

Você pode me dizer como colocar ordens pendentes no assistente?

No Expert Advisor gerado, há um parâmetro Inp_Signal_PricrLivel. Ele é definido em 2/4 pontos significativos.

Valor 0 - entrada no mercado.

Valor maior que 0 - a entrada é melhor que o mercado (de acordo com a ordem de limite).

Valor menor que 0 - a entrada é pior que o mercado (por ordem de parada).

Não estou pronto para responder à segunda pergunta de imediato.
 

Aqui estão os parâmetros

//+------------------------------------------------------------------+
//| Entradas|
//+------------------------------------------------------------------+
//--- entradas para especialista
input string Expert_Title         ="2";   // Nome do documento
int          Expert_MagicNumber   =13179; // 
bool         Expert_EveryTick     =false; // 
//--- entradas para o sinal principal
input int    Signal_ThresholdOpen =10;    // Valor do limiar do sinal a ser aberto [0...100]
input int    Signal_ThresholdClose=10;    // Valor do limite do sinal para fechar [0...100]
input double Signal_PriceLevel    =0.0;   // Nível de preço para executar uma transação
input double Signal_StopLevel     =50.0;  // Nível de stop loss (em pontos)
input double Signal_TakeLevel     =50.0;  // Nível de Take Profit (em pontos)
input int    Signal_Expiration    =4;     // Expiração de ordens pendentes (em barras)
input double Signal__Weight       =1.0;   // InnerBar Weight [0...1.0]
//--- insumos para dinheiro
input double Money_FixLot_Percent =10.0;  // Porcentagem.
input double Money_FixLot_Lots    =0.1;   // Volume fixo
Como devo executar para poder entrar no mercado em qualquer uma das opções.
 
beginner:

Aqui estão os parâmetros

Como devo formatar para poder entrar no mercado em qualquer uma das opções.

Para entrar melhor do que o mercado (na recuperação):

input double Signal_PriceLevel    =50.0;   // Nível de preço para executar uma transação

Para entrar pior do que o mercado (no rompimento):

input double Signal_PriceLevel    =-50.0;   // Nível de preço para executar uma transação

Mas você pode pegá-lo no testador executando a otimização no parâmetro de -50,0 a 50,0 em incrementos de 1,0 (5,0).

 
uncleVic:
Não estou pronto para responder à segunda pergunta de imediato.

Ou me diga como negociar com dois instrumentos.