Erros, bugs, perguntas - página 6

 
Prival:

diz na ajuda.

intdia_do_ano;// número num ano (1 de Fevereiro é o 32º dia do ano)

Por alguma razão, aparece sempre como 31 ((

o guião em anexo

no ficheiro

2010.02.01 00:00:00 143.832 143.839 143.758 143.771 186 2010 2 1 0 0 1 31

Isto é um erro na documentação. A numeração dos dias de um ano começa a partir de 0. Obrigado.
 
stringo:
Isto é um erro na documentação. A numeração dos dias de um ano começa em 0. Obrigado.
Compreendo que é mais complicado, mas parece mais familiar (para o leigo. Não há problema para o programador). O dia 1 de Janeiro é 1 dia do ano. Parece-me que a referência está correcta.
 
Prival:
Compreendo que é mais complicado, mas parece ser mais familiar (para o leigo. Para o programador, está bem). O dia 1 de Janeiro é o 1º dia do ano. Parece-me correcto na ajuda.
Traduzimos a estrutura temporal padrão do sistema para a nossa estrutura MqlTime
 
Por alguma razão não posso descarregar o terminal a partir do servidor, diz "não consegui descarregar dados do servidor", qual é o problema?
 

Olá, pode ajudar-me a traduzir da função mt4 para mt5. Traduzi-o, mas não está certo, se não for difícil, por favor enviem-me o código certo, não sou muito bom em MQL. Estou apenas a começar a aprender.

//+------------------------------------------------------------------+
#property copyright "2010, MetaQuotes Software Corp."
#ligação de propriedade"http://www.mql5.com"
#propriedade versão "1.00"
//--- parâmetros de entrada

entrada duplo Lotes=0,1;
entrada bool MM = verdadeiro;
risco duplo de entrada = 10;


//+------------------------------------------------------------------+
//| Função de iniciação de peritos|
//+------------------------------------------------------------------+
int OnInit()
{
return(0);
}
//+------------------------------------------------------------------+
//| Função de desinicialização de peritos|
//+------------------------------------------------------------------+
nulo OnDeinit(const int razão)
{

}

//+------------------------------------------------------------------+
//| função tick expert|
//+------------------------------------------------------------------+
nulo OnTick()
{
if( MM )double Lots = LotSon(); //chamada função LotSon
}
//+------------------------------------------------------------------+
duplo LotSon()
{
double LotMin = SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MIN);
double LotMax = SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MAX);
double Lots = AccountInfoDouble(ACCOUNT_FREEMARGIN)/100000.0 * Risco;
double Lots = MathMin(Lotmax,MathMax(Lotmin,Lots));

if (LotMin < 0,1)Lots = NormalizeDouble(Lots,2);
senão
{
se (LotMin < 1,0)Lotes = NormalizarDuplo(Lots,1);
else Lots = NormalizeDouble(Lots,0);
}
se (Lotes < LotMin) Lotes = LotMin;
se (Lotes > LotMax) Lotes = LotMax;
}

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
 

Como é que se obtém o código a cores?

 
FEDOR_MQL:

Como é que se consegue colorir o código?

Artigo comunitário MQL5 - Memo do utilizador:

O botão destina-se a inserir o código fonte MQL no texto da mensagem. Uma janela vazia aparecerá assim que premir, na qual deverá inserir o código e depois premir o botão Inserir. Para cancelar a inserção do código, premir o botão Cancelar.

Não é recomendável codificar a negrito para que certos pedaços de código se destaquem de alguma forma. A questão é que as fontes monoespaciais são apresentadas de forma diferente em diferentes sistemas operativos e navegadores. Por exemplo, o Windows Vista utiliza a fonte Consolas monoespacial, que tem uma fonte em negrito para o tamanho 10 que é quase indistinguível de uma fonte normal.

 
FEDOR_MQL:

Olá, pode ajudar-me a traduzir da função mt4 para mt5. Traduzi-o, mas não está certo, se não for difícil, por favor enviem-me o código certo, não sou muito bom em MQL. Estou apenas a começar a aprender.


 //+------------------------------------------------------------------+
#property copyright "2010, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"
#property version   "1.00"
//--- input parameters

input double   Lots=0.1;
input bool     MM = true;
input double   Risk = 10;

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
  return(0);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {

  }

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   if( MM ) Lots = LotSon();      //вызов функции LotSon 
  }
//+------------------------------------------------------------------+
double LotSon()
{
  double LotMin     = SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MIN);
  double LotMax     = SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MAX);
  double LotStep    = SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_STEP);
  double Lot        = AccountInfoDouble(ACCOUNT_FREEMARGIN)/100000.0 * Risk;
  Lot               = MathMin(Lotmax,MathMax(Lotmin,Lot));
  
  if (Lot < LotMin) Lot = LotMin;
  if (Lot > LotMax) Lot = LotMax;
  // Вариант первый
  switch(LotStep)
  {
   case 0.01: return(NormalizeDouble(Lot,2));
   case 0.1 : return(NormalizeDouble(Lot,1));
   case 1.0 : return(NormalizeDouble(Lot,0));
  }
  // Вариант второй
  // if (LotStep == 0.01)return(NormalizeDouble(Lot,2));
  // if (LotStep == 0.1) return(NormalizeDouble(Lot,1));
  // if (LotStep == 1.0) return(NormalizeDouble(Lot,0));
  // Вариант третий
  // if (LotStep == 0.01)return(NormalizeDouble(Lot,2));
  // else if (LotStep == 0.1) return(NormalizeDouble(Lot,1));
  // else if (LotStep == 1.0) return(NormalizeDouble(Lot,0));
  
}
 

Muito bem, vamos tentar. Obrigado a todos! Estou sequer a fazer estas perguntas? Ou preciso de ir a outro lugar? Obrigado antecipadamente pela resposta.

 

E nesta fase de desenvolvimento: parâmetros, chamada de função e a própria função devem ou não mostrar erros de tempo de compilação. Em caso afirmativo, porquê? Tenho erros a mostrar

Документация по MQL5: Основы языка / Функции / Вызов функции
Документация по MQL5: Основы языка / Функции / Вызов функции
  • www.mql5.com
Основы языка / Функции / Вызов функции - Документация по MQL5