Errori, bug, domande - pagina 6

 
Prival:

dice nell'aiuto.

intday_of_year;// numero in un anno (1 febbraio è il 32° giorno dell'anno)

Per qualche ragione esce sempre come 31 ((

lo script allegato

nel file

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

Questo è un errore nella documentazione. La numerazione dei giorni in un anno parte da 0. Grazie.
 
stringo:
Questo è un errore nella documentazione. La numerazione dei giorni di un anno parte da 0. Grazie.
Capisco che è più complicato, ma mi sembra più familiare (per i profani. Va bene per il programmatore). Il 1° gennaio è 1 giorno dell'anno. Penso che il riferimento sia corretto.
 
Prival:
Capisco che è più complicato, ma sembra essere più familiare (per i profani. Per il programmatore, va bene). Il 1° gennaio è il 1° giorno dell'anno. Mi sembra giusto nell'aiuto.
Traduciamo la struttura standard del tempo di sistema nella nostra struttura MqlTime
 
Per qualche motivo non riesco a scaricare il terminale dal server, dice "failed to download data from server", qual è il problema?
 

Salve, potete aiutarmi a tradurre la funzione da mt4 a mt5. L'ho tradotto, ma non è giusto, se non sei duro, per favore mandami il codice giusto, non sono molto bravo in MQL. Ho appena iniziato a impararlo.

//+------------------------------------------------------------------+
#property copyright "2010, MetaQuotes Software Corp."
#proprietà link"http://www.mql5.com"
#proprietà versione "1.00"
//--- parametri di ingresso

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


//+------------------------------------------------------------------+
//| Funzione di inizializzazione dell'esperto|
//+------------------------------------------------------------------+
int OnInit()
{
ritorno(0);
}
//+------------------------------------------------------------------+
//| Funzione di deinizializzazione degli esperti|
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{

}

//+------------------------------------------------------------------+
//| funzione tick esperto|
//+------------------------------------------------------------------+
void OnTick()
{
if( MM )double Lots = LotSon(); //call LotSon function
}
//+------------------------------------------------------------------+
doppio LotSon()
{
double LotMin = SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MIN);
double LotMax = SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MAX);
double Lots = AccountInfoDouble(ACCOUNT_FREEMARGIN)/100000.0 * Risk;
doppio Lotti = MathMin(Lotmax,MathMax(Lotmin,Lots));

if (LotMin < 0,1)Lots = NormalizeDouble(Lots,2);
else
{
if (LotMin < 1.0)Lots = NormalizeDouble(Lots,1);
else Lots = NormalizeDouble(Lots,0);
}
se (Lotti < LotMin) Lotti = LotMin;
se (Lotti > LotMax) Lotti = 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
 

Come si ottiene il codice a colori?

 
FEDOR_MQL:

Come si fa a colorare il codice?

Articolo della Comunità MQL5 - Memo utente:

Il pulsante ha lo scopo di inserire il codice sorgente MQL nel testo del messaggio. Appena lo premete, appare una finestra vuota in cui dovete inserire il codice e poi premere il pulsante Insert. Per annullare l'inserimento del codice, premete il pulsante Cancel.

Non è raccomandato mettere in grassetto il codice per far risaltare in qualche modo certi pezzi di codice. Il punto è che i font monospace sono visualizzati in modo diverso nei diversi sistemi operativi e browser. Per esempio, Windows Vista usa il font Consolas monospace, che ha un carattere in grassetto per la dimensione 10 che è quasi indistinguibile da un font normale.

 
FEDOR_MQL:

Salve, potete aiutarmi a tradurre la funzione da mt4 a mt5. L'ho tradotto, ma non è giusto, se non sei duro, per favore mandami il codice giusto, non sono molto bravo in MQL. Ho appena iniziato a impararlo.


 //+------------------------------------------------------------------+
#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));
  
}
 

Va bene, facciamo una prova. Grazie a tutti! Mi sto facendo queste domande? O devo andare da qualche altra parte? Grazie in anticipo per la risposta.

 

E in questa fase di sviluppo: i parametri, la chiamata di funzione e la funzione stessa dovrebbero mostrare errori di compilazione o meno. Se sì, perché? Ho degli errori che mostrano

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