Perguntas sobre MQL5 Wizard e biblioteca padrão de classes comerciais - página 14
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
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, esta funcionalidade não está disponível como uma característica padrão.
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.
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?
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?
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).
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 ?