Errori, bug, domande - pagina 94

 
vdv2001:

Ho incontrato un problema simile, un conoscente mi ha chiesto di scrivere un esperto per controllare la funzionalità del TS. Ho pensato di scriverlo in 5 (è più comodo scriverlo + debugger). Ho scritto, ho ottenuto il risultato:

Penso che sia buono, posso riscriverlo per 4.

L'ho riscritto 1:1. Questo TS non ha indicatori, solo tempo e range di prezzo. Il risultato mi ha sorpreso molto:

Il periodo di prova è dal 1.01.2000 ad oggi.

Mi chiedo quale tester mostra il risultato giusto?

Ilnumero di scambi è molto grande, quindi sorge la domanda sugli spread - sono gli stessi per entrambi i test?

 

Come si assegna un valore a un array bidimensionale? Sto scrivendo così:

positions[j, 0]=PositionGetInteger(POSITION_MAGIC);

Il risultato è un errore: ',' - unexpected token''.


 
EvgeTrofi:

Come si assegna un valore a un array bidimensionale? Sto scrivendo così:

Il risultato è un errore: ',' - unexpected token'.


Fate così:

   double array[2][4];
   array[1][0]=5;
PS. Ci sono esempi di dichiarazioni di array nell'aiuto.
 

Come posso tradurre correttamente un tipo di dati in un altro?

Per esempio, arrotondare un valore in virgola mobile e trasferirlo in una variabile con un tipo di dati intero.

Quando si cerca di fare questo:

   double Close = iCloseMQL4(Symbol(),Period(), 1);
   double Open =  iOpenMQL4(Symbol(),Period(), 1);
   int Midle=MathRound(MathAbs(Close-Open)/_Point);

Nell'ultima riga della compilazione, appare un avvertimento:"possibile perdita di dati a causa della conversione dei tipi".

C'è un modo per evitarlo?

 
Rosh:

Fate in modo che sia così:

PS. Ci sono esempi di dichiarazioni di array nell'aiuto.
Grazie, ha funzionato. Ma è esattamente la stessa linea nella guida
array[1][0]=5;
Non ho trovato!
 
EvgeTrofi:
Grazie, funziona. Ma non ho trovato questa stringa nella guida!

Forse non è scritto di getto, ma c'è un esempio di dichiarazione di un array multidimensionale, e c'è un esempio nel testo di riferimento a un elemento dell'array:

Array

Un array è una collezione indicizzata di dati identici:

int a[50]; // Un array unidimensionale di 50 interi.
double m[7][50];// Un array bidimensionale di sette array,
// ciascuno composto da 50 numeri.
MyTime t[100];// array contenente elementi di tipo MyTime

Un indice di matrice può essere solo un intero. Non sono ammesse più di quattro matrici dimensionali. Gli elementi di una matrice sono numerati a partire da 0. L'ultimo elemento di una matrice unidimensionale è numerato 1 meno della dimensione della matrice, cioè l'accesso all'ultimo elemento di una matrice di 50 interi sarà come a[49]. Lo stesso vale per gli array multidimensionali - una dimensione è indicizzata da 0 alla dimensione 1. L'ultimo elemento dell'array bidimensionale dell'esempio sarà come m[6][49].

 
EvgeTrofi:

Come posso tradurre correttamente un tipo di dati in un altro?

Per esempio, arrotondare un valore in virgola mobile e trasferirlo in una variabile con un tipo di dati intero.

Quando si cerca di fare questo:

C'è un avvertimento sull'ultima linea durante la compilazione:

C'è un modo per evitarlo?

Sì, fate una conversione esplicita del tipo.
Документация по MQL5: Основы языка / Типы данных / Приведение типов
Документация по MQL5: Основы языка / Типы данных / Приведение типов
  • www.mql5.com
Основы языка / Типы данных / Приведение типов - Документация по MQL5
 
Grazie! capito!!! :)
 
Rosh:

Ilnumero di trade è molto alto, quindi sorge la domanda sugli spread - sono gli stessi per entrambi i test?

Coppia di valute EURJPY in Cinque test secondo i vostri dati.

Quattro è Alpari, i dati dei minuti sono stati scaricati dal tuo server tramite Quote Archive -> Download.

Ovviamente c'è una differenza di spread, ma il risultato è molto diverso.

Per 2500 scambi la differenza dovrebbe essere al massimo 2500$-5000$ ma è 10000$, come si dice non credere ai tuoi occhi.

A proposito, c'è 1 scambio al giorno a condizione di un profitto non inferiore a 8 (80 - cinque cifre) pip.

 
Come posso cambiare la mia email nel mio profilo?