Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1205

 

perché il compilatore dà un avvertimento su questa linea?

datetime time_setup=OrderGetInteger(ORDER_TIME_SETUP);
possible loss of data due to type conversion    
 
Puoi darmi un suggerimento? Quando sottraggo un numero, ottengo 3e-5. Come faccio a farlo sembrare 0,00003? Grazie.
 
awsomdino:

Perché il compilatore dà un avvertimento su questa linea?

Perché XxxxGetInteger restituisce long (intero con segno), mentre datetime è un intero senza segno e un tipo separato. Dovremmo specificare

datetime timeProperty = (datetime)XxxGetInteger(...)

 
prom18:
Ditemi. Quando sottraggo, ottengo un numero 3e-5. Come faccio a farlo sembrare 0,00003? Grazie.

Dove lo prendi?

 

Ciao!

La funzione OnCalculate restituisce periodicamente 0

prev_calculated = 0

Penso che sia perché il grafico è stato popolato con citazioni da una risorsa di terze parti, ma non sembra che il grafico sia stato sovrascritto.

Come posso aggiungere nuovi dati senza riscrivere quelli vecchi?

Ho solo creato un indicatore con alcuni calcoli, non sto cercando di caricare le quotazioni.

void filter(const int rates_total,const int prev_calculated)
  {
 
   int start=prev_calculated;
//--- если значения индикатора уже были рассчитаны на предыдущем тике, то работаем на последнем баре
   if(prev_calculated>0)
      start--;
//---
   for(int p=2; p<Pmax; p++) // отбор по периодам
      for(int b=start>rates_total-Pmax?start:rates_total-Pmax; b<rates_total; b++)
        {
 
Buon tempo a tutti voi. Domanda: in MT4, quando si lavora nel tester con i cross (coppie senza quid), come fa il tester a calcolare i risultati delle posizioni chiuse, se il conto, su cui viene condotto il test, è un conto in dollari? Per il ricalcolo dei totali di posizione in dollari, il tester prende il tasso di cambio della valuta base del cross verso il dollaro al momento attuale o al momento dell'intervallo testato? Ho il forte sospetto che lo sia al momento attuale. Se è così, non è possibile farlo contare al momento dell'intervallo?
Совершение сделок - Торговые операции - Справка по MetaTrader 5
Совершение сделок - Торговые операции - Справка по MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
 
Mihail Matkovskij:

In MQL4 solo in questo modo:

Risultato:


Grazie mille per il vostro aiuto.

 
Mihail Matkovskij:

Dove lo prendi?

Proprio qui.

double price1=1.23450;
double price2=1.23447;
double delta=price1-price2;
Alert("Разбег ",delta);
 
prom18:

Proprio qui.

Alert("Разбег "+DoubleToString(delta,_Digits));

o Alert(StringFormat("Spread %.5f",delta));

In generale, abituatevi, sono solo rappresentazioni diverse dello stesso numero. Ripensate ai vostri meravigliosi giorni di scuola - ecco da dove viene

 
Top2n:

Ciao!

La funzione OnCalculate restituisce periodicamente 0

Penso che sia perché il grafico viene riempito con citazioni da una risorsa di terze parti, ma non sembra che il grafico venga sovrascritto.

Come posso sovrascrivere i nuovi dati in queste condizioni senza riscrivere i vecchi dati?

Ho solo creato un indicatore con alcuni calcoli, non sto cercando di caricare le quotazioni.

Dichiarare una variabile globale (non confondere con le variabili globali del terminale)

 bool firstRun = false;

e fare il ricalcolo completo solo al primo tick

// простейшее условие пересчёта
if(!firstRun) {
  // пересчёт ...
  firstRun = true;
}

Se firstRun si resetta insieme ai parametri OnCalculate, l'indicatore si riavvia.