Perguntas sobre MQL5 Wizard e biblioteca padrão de classes comerciais - página 14

 
Por exemplo, vejamos os sinais MACD. No total são descritos 5 sinais de compra e 5 sinais de venda (inversão, cruzamento com a linha do sinal, etc.). Existe alguma forma de obter o valor destes sinais num determinado momento? Ou seja, formar um vector de 10 elementos para cada barra, onde cada elemento corresponde ao sinal, 1 indica a sua presença, e 0 - ausência? Que método de classe CSignalMACD pode ser utilizado para obter os valores correspondentes?
 
IvanSD:

Por exemplo, vejamos os sinais MACD. No total são descritos 5 sinais de compra e 5 sinais de venda (inversão, cruzamento com a linha do sinal, etc.). Existe alguma forma de obter o valor destes sinais num determinado momento? Ou seja, formar um vector de 10 elementos para cada barra, onde cada elemento corresponde ao sinal, 1 indica a sua presença, e 0 - ausência? Que método de classe CSignalMACD pode ser utilizado para obter os valores correspondentes?
Infelizmente, não existe tal funcionalidade na entrega padrão.
 
uncleVic:
Infelizmente, esta funcionalidade não está disponível como uma característica padrão.
Obrigado pela sua resposta!
 

Olá, ajudem-me aqui. Eu criei um robô (o meu primeiro robô). Imediatamente após o seu arranque, a mensagem Expert initializing of roboot (EURUSD,H1) falhou. Não consigo encontrar mais informação sobre o assunto.

Aqui está o seu código:

--------------------------------------

//+------------------------------------------------------------------+

//| robot.mq5 |

//| Copyright 2012, MetaQuotes Software Corp. |

//| http://www.mql5.com |

//+------------------------------------------------------------------+

#property copyright "Copyright 2012, MetaQuotes Software Corp.

#ligação de propriedade "http://www.mql5.com"

#propriedade versão "1.00"

//+------------------------------------------------------------------+

//| Incluir |

//+------------------------------------------------------------------+

#Incluir <Expert\Expert\Expert.mqh>

//--- sinais disponíveis

#Incluir <Expert}robot{robot.mqh>

//---- trailing disponível

#Incluir <Expert\\TrailingNone.mqh>

//--- gestão de dinheiro disponível

#Incluir <Expertar\\Money\MoneyFixedLot.mqh>

//+------------------------------------------------------------------+

//| Entradas |

//+------------------------------------------------------------------+

//--- entradas para peritos

string de entrada Expert_Title ="robot"; // Nome do documento

ulong Expert_MagicNumber =24553; //

bool Expert_EveryTick =false; //--- entradas para sinal principal

//--- entradas para o sinal principal

input int Signal_ThresholdOpen =10; // Valor limiar de sinal a abrir [0...100]

input int Sinal_ThresholdClose =10; // Valor limiar de sinal para fechar [0...100]

input Double Signal_PriceLevel =0.0; // Nível de preço para executar um negócio

input Double Signal_StopLevel =50.0; // Nível de Stop Loss (em pontos)

input Double Signal_TakeLevel =50.0; // Nível de lucro (em pontos)

input int Signal_Expiration =4; // Expiração de ordens pendentes (em barras)

input int Signal_MaCross_FastPeriod=13; // My_MA_Cross(13,MODE_SMA,21,...) Period of fast MA

input ENUM_MA_METHOD Signal_MaCross_FastMethod=MODE_SMA; // My_MA_Cross(13,MODE_SMA,21,...) Método de MA rápido

input int Signal_MaCross_SlowPeriod=21; // My_MA_Cross(13,MODE_SMA,21,...) Período de MA lento

entrada ENUM_MA_METHOD Signal_MaCross_SlowMethod=MODE_SMA; // My_MA_Cross(13,MODE_SMA,21,...) Método de MA lento

input double Signal_MaCross_Weight =1.0; // My_MA_Cross(13,MODE_SMA,21,...) Weight [0...1.0]

//--- entradas por dinheiro

entrada duplo dinheiro_FixLot_Percentagem =10,0; // Percentagem

entrada duplo Money_FixLot_Lots =0,1; // Volume fixo

//+------------------------------------------------------------------+

//| Objecto de especialista global |

//+------------------------------------------------------------------+

CExpert ExtExpert;

//+------------------------------------------------------------------+

//| Função de inicialização do perito |||

//+------------------------------------------------------------------+

int OnInit()

{

//--- Perito iniciador

if(!ExtExpert.Init(Símbolo(),Período(),Expert_EveryTick,Expert_MagicNumber))

{

//--- falhou

printf(__FUNÇÃO__+": perito iniciador de erros");

ExtExpert.Deinit();

retorno(-1);

}

//--- Criando sinal

CExpertSignal *signal=novo CExpertSignal;

if(signal===NULL)

{

//--- falhou

printf(__FUNÇÃO__+": sinal de criação de erro");

ExtExpert.Deinit();

devolução(-2);

}

//---

ExtExpert.InitSignal(sinal);

signal.ThresholdOpen(Signal_ThresholdOpen);

signal.ThresholdClose(Signal_ThresholdClose);

signal.PriceLevel(Signal_PriceLevel);

signal.StopLevel(Signal_StopLevel);

signal.TakeLevel(Signal_TakeLevel);

signal.Expiration(Sinal_Expiração);

//--- Criando filtro MA_Cross

MA_Cross *filtro0=novo MA_Cross;

if(filter0==NULL)

{

//--- falhou

printf(__FUNÇÃO__+": filtro criador de erros0");

ExtExpert.Deinit();

devolução(-3);

}

signal.AddFilter(filter0);

//--- Definir parâmetros de filtragem

filter0.FastPeriod(Signal_MaCross_FastPeriod);

filter0.FastMethod(Signal_MaCross_FastMethod);

filter0.SlowPeriod(Signal_MaCross_SlowPeriod);

filter0.SlowMethod(Signal_MaCross_SlowMethod);

filter0.Weight(Signal_MaCross_Weight);

//--- Criação de objecto de reboque

CTrailingNone *trailing=novo CTrailingNone;

if(trailing===NULL)

{

//--- falhou

printf(__FUNÇÃO__+": erro a criar rasto");

ExtExpert.Deinit();

retorno(-4);

}

//--- Acrescentar o rastreio ao perito (será apagado automaticamente))

if(!ExtExpert.InitTrailing(trailing))

{

//--- falhou

printf(__FUNÇÃO__+": erro de inicialização do trailing");

ExtExpert.Deinit();

retorno(-5);

}

//--- Estabelecer parâmetros de rastreio

//--- Criação de objecto de dinheiro

CMoneyFixedLot *money=novo CMoneyFixedLot;

if(money===NULL)

{

//--- falhou

printf(__FUNÇÃO__+": erro a criar dinheiro");

ExtExpert.Deinit();

retorno(-6);

}

//--- Acrescentar dinheiro ao perito (será apagado automaticamente))

if(!ExtExpert.InitMoney(dinheiro))

{

//--- falhou

printf(__FUNÇÃO__+": erro de inicialização do dinheiro");

ExtExpert.Deinit();

retorno(-7);

}

//--- Estabelecer parâmetros de dinheiro

money.Percent(Dinheiro_FixLot_Percentagem);

money.Lots(Money_FixLot_Lots);

//--- Verificar todos os parâmetros dos objectos de comércio

if(!ExtExpert.ValidationSettings())

{

//--- falhou

ExtExpert.Deinit();

retorno(-8);

}

//--- Afinação de todos os indicadores necessários

if(!ExtExpert.InitIndicators())

{

//--- falhou

printf(__FUNÇÃO__+": indicadores inicializadores de erro");

ExtExpert.Deinit();

retorno(-9);

}

//--- ok

return(0);

}

//+------------------------------------------------------------------+

//| Função de desinicialização do perito |

//+------------------------------------------------------------------+

nulo OnDeinit(const int razão)

{

ExtExpert.Deinit();

}

//+------------------------------------------------------------------+

//| Função "Tick" event handler |

//+------------------------------------------------------------------+

nulo OnTick()

{

ExtExpert.OnTick();

}

//+------------------------------------------------------------------+

//| Função "Trade" event handler |

//+------------------------------------------------------------------+

nulo OnTrade()

{

ExtExpert.OnTrade();

}

//+------------------------------------------------------------------+

//| Função "Temporizador" do manipulador de eventos |

//+------------------------------------------------------------------+

nulo OnTimer()

{

ExtExpert.OnTimer();

}

//+------------------------------------------------------------------+

Qual poderá ser o problema. Eu nem sequer sei onde procurar primeiro.

Obrigado de antemão.

Automated Trading and Strategy Testing
Automated Trading and Strategy Testing
  • www.mql5.com
MQL5: language of trade strategies built-in the MetaTrader 5 Trading Platform, allows writing your own trading robots, technical indicators, scripts and libraries of functions
 
pasha191:

Olá, ajudem-me aqui. Eu criei um robô (o meu primeiro robô). Imediatamente após o seu arranque, a mensagem Expert initializing of roboot (EURUSD,H1) falhou. Não consigo encontrar mais informação sobre o assunto.


Não tenho informação suficiente.

Necessidade

#include <Expert\robot\robot.mqh>

Preciso de parâmetros de arranque (testador/terminal, servidor, par, intervalo de tempo, etc.)

PS O código fonte é melhor para anexar como um ficheiro

 

Perguntas sobre o MQL5 Wizard:

1) //--- entradas por dinheiro
input duplo dinheiro_FixLot_Percente =10.0; // Porcentagem
input duplo Money_FixLot_Lots =0.1; // Volume fixo
O que significam estes parâmetros? E como estão relacionados?

2) Posso gerar uma EA que irá colocar encomendas pendentes? Em caso afirmativo, como?

3) O que significa a variável Signal_Expiration? Como é que o utilizo?

Мастер MQL5: Создание эксперта без программирования
Мастер MQL5: Создание эксперта без программирования
  • 2010.12.15
  • MetaQuotes Software Corp.
  • www.mql5.com
Вы хотите быстро проверить торговую идею, не тратя времени на программирование? Выберите в "Мастере MQL5" нужный тип торговых сигналов, подключите модули сопровождения позиций и управления капиталом - на этом вся работа закончена. Создайте свои реализации модулей или закажите их через сервис "Работа" - и комбинируйте новые модули с уже существующими.
 
evrika:

Perguntas sobre o MQL5 Wizard:

1) //--- entradas por dinheiro
input duplo dinheiro_FixLot_Percente =10.0; // Porcentagem
input duplo Money_FixLot_Lots =0.1; // Volume fixo
O que significam estes parâmetros? E como estão relacionados?

2) Posso gerar uma EA que irá colocar encomendas pendentes? Em caso afirmativo, como?

3) O que significa a variável Signal_Expiration? Como utilizá-lo?

1) O parâmetro Money_FixLot_Percent é utilizado para definir o nível de "paragem forçada". Não lhe tocar.

O parâmetro Money_FixLot_Lots define um volume fixo (lote), com o qual o seu Expert Advisor entrará no mercado.

Estes parâmetros não estão de forma alguma inter-relacionados.

2) Qualquer Consultor Especialista gerado pelo Feiticeiro pode negociar ordens pendentes. Para este fim é utilizado o parâmetro ..._PriceLevel. Dependendo do valor deste parâmetro, o Conselheiro Especialista comportar-se-á da seguinte forma:

0 - a entrada no mercado será ao preço actual;

>0 - a entrada no mercado será feita utilizando ordens de limite pendentes (melhor do que o preço actual pelo valor deste parâmetro);

<0 - a entrada no mercado será feita usando ordens Stop pendentes (pior do que o preço actual pelo valor do parâmetro);

3) O parâmetro Signal_Expiration define a duração de uma ordem pendente (em barras de tempo actual).

 

Se eu gerar um EA no MQL5 Wizard, quantas encomendas posso abrir um EA em simultâneo? Como é isto regulado?

Собери свой торговый советник в Мастере MQL5
Собери свой торговый советник в Мастере MQL5
  • 2011.01.14
  • MetaQuotes Software Corp.
  • www.mql5.com
Знание языков программирования теперь не является обязательным условием для создания торговых роботов. Если раньше это действительно служило непроходимым препятствием для реализации своих торговых стратегий, то появление Мастера MQL5 в корне изменило ситуацию. Начинающие трейдеры могут перестать тревожиться из-за отсутствия опыта программирования - с новым визардом, позволяющим быстро генерировать код советника, он не понадобится.
 
evrika:

Se eu gerar um EA no MQL5 Wizard, quantas encomendas posso abrir um EA em simultâneo? Como é isto controlado?

1 encomenda. Não está regulamentado.

O Wizard foi concebido para testes de estratégia. Se quiser mais, precisa de "arquivar" (escrever à mão).

 
uncleVic:

2) Qualquer EA gerada pelo Wizard pode negociar ordens pendentes. Para este fim é utilizado o parâmetro ..._PriceLevel. Dependendo do valor deste parâmetro, o Conselheiro Especialista comportar-se-á da seguinte forma:

0 - a entrada no mercado será ao preço actual;

>0 - a entrada no mercado será feita utilizando ordens de limite pendentes (melhor do que o preço actual pelo valor deste parâmetro);

<0 - a entrada no mercado será feita utilizando ordens de paragem pendentes (pior do que o preço actual pelo valor do parâmetro);

Em que unidades é medido o parâmetro PriceLevel? Em pontos? Isto é, se eu quiser estabelecer uma ordem de paragem pendente 20 pips mais alta do que o preço actual,

devo definir este parâmetro PriceLevel =-0.0020 ?

Razão: