Errori, bug, domande - pagina 1676

 

Signori, come dichiarare una funzione in MKL che prende un puntatore (riferimento in µl) a qualcosa (analogo a void* in C/C++ )? Non intendo per albero genealogico, ma per tipi non collegati. Almeno prendere un array di qualsiasi tipo.

void f(... &...) {}

void mql_main()
{
  int i[2];
  double d[2];
  f(i);
  f(d);
}
Capisco tutte le difficoltà relative al "type aliasing" e alle ottimizzazioni del compilatore.
 
pavlick_:

Signori, come dichiarare una funzione in MKL che prende un puntatore (riferimento in µl) a qualcosa (analogo a void* in C/C++ )? Non intendo per albero genealogico, ma per tipi non collegati. Almeno prendere un array di qualsiasi tipo.

Capisco tutte le difficoltà relative al "type aliasing" e alle ottimizzazioni del compilatore.
Penso che quello che volete fare, potete farlo solo attraverso i metodi di classe in MQL5. Anche se sto aspettando altre risposte, non ho molta esperienza in materia.
 
pavlick_:

Signori, come dichiarare una funzione in MKL che prende un puntatore (riferimento in µl) a qualcosa (analogo a void* in C/C++ )? Non intendo per albero genealogico, ma per tipi non collegati. Almeno prendere un array di qualsiasi tipo.

Tutti gli stracci riguardanti il "type aliasing" e le ottimizzazioni del compilatore li capisco.

Beh, hanno già aggiunto i puntatori void *, no? Inoltre, si possono usare dei modelli, come

template<typename T>

void f(T &parameter)

{

 
Stanislav Korotky:

Pensavo che avessero già aggiunto i puntatori void *. Inoltre, si possono usare dei modelli, come

template<typename T>

void f(T &parameter)

{

I puntatori (descrittori) MKL cadono immediatamente. Il problema era nella dichiarazione della funzione importata dalla dll, i template non possono essere morsi lì. Ho scoperto che si può fare in questo modo:

#import ...
  int send(..., char &buf[], ...);
  int send(..., short &buf[], ...);
#import
E tutto sarà collegato a una sola funzione. Questo risolve il mio problema. Grazie a coloro che hanno risposto per la risposta.
 
Itum:
Per favore ditemi come trovare il massimo drawdown in Excel... Dammi la formula...
Se come nell'equity tester, è difficile in Excel, perché il tester prende in considerazione non solo la deviazione negativa, ma anche la deviazione positiva - il profitto potenziale sottovalutato.
 
-Aleks-:
Se come nell'equity tester, è complicato in Excel, perché il tester prende in considerazione non solo la deviazione negativa, ma anche la deviazione positiva - il profitto potenziale sottovalutato.
Non c'è niente di complicato. La prima colonna rappresenta i valori di capitale, la seconda colonna rappresenta il valore massimo di capitale dalla prima alla riga corrente e la terza colonna rappresenta il drawdown, la differenza tra la seconda e la prima colonna. E poi prendere il massimo dalla terza colonna.
 
Sergei Vladimirov:
Non c'è niente di complicato. La prima colonna mostra i valori del capitale, la seconda colonna mostra il capitale massimo dalla prima alla riga corrente, e la terza colonna mostra il drawdown, la differenza tra la seconda e la prima colonna. Bene, prendete il massimo dalla terza colonna.
Tali calcoli non si adattano ai dati del tester. Dobbiamo considerare il cambiamento del patrimonio netto tra l'apertura e la chiusura della posizione come il cambiamento massimo del patrimonio netto deve essere inserito in una colonna separata e il modulo deve essere considerato e poi il massimo deve essere scelto da questa colonna. Questo è un trading redditizio, altrimenti è necessario identificare il punto di massimo profitto azionario e fare i calcoli su di esso....
 
-Aleks-:
Tali calcoli non corrisponderanno ai dati del tester. È necessario considerare il cambiamento del capitale tra l'apertura e la chiusura della posizione - il massimo cambiamento del capitale deve essere messo in una colonna separata e il modulo deve essere considerato, e poi il massimo deve essere selezionato da questa colonna. Questo è rilevante per il trading redditizio, mentre nel caso opposto dobbiamo definire il punto di massimo profitto per l'equity e fare i calcoli su di esso.....
Cosa c'entra il tester? La domanda riguardava Excel. Non capisco perché sia importante trattarlo in questo thread. In sostanza non è necessario alcun modulo, il drawdown = ultimo massimo meno il valore attuale, il risultato sarà sempre non negativo. O viceversa, valore attuale meno l'ultimo massimo, allora sarà sempre negativo o zero. Nel primo caso prendete il massimo della colonna, nel secondo il minimo.
 
Sergei Vladimirov:
Cosa ha a che fare questo con il tester? La domanda riguardava Excel. Solo che non è chiaro perché sia in questo thread. In sostanza - nessun modulo è necessario, drawdown = ultimo massimo meno il valore corrente, il risultato sarà sempre non negativo. O viceversa, valore attuale meno ultimo massimo, allora il risultato sarà sempre negativo o zero. Nel primo caso prendete il massimo della colonna, nel secondo il minimo.
Drawdown nel tester = massimo - minimo, non importa a che punto la posizione è stata chiusa. In altre parole, se la posizione va nella vostra direzione all'inizio, e poi chiude nella direzione opposta, il drawdown del capitale è la sezione dal massimo al minimo, e non dal prezzo di apertura al prezzo di chiusura. Questo è il caso di MT4.
 
-Aleks-:
Drawdown nel tester = massimo - minimo, non importa a che punto la posizione è stata chiusa. In altre parole, se la posizione è iniziata andando nella tua direzione, ma è stata chiusa nella direzione opposta, il drawdown del capitale è la sezione dal massimo al minimo, e non dal prezzo di apertura al prezzo di chiusura. Questo è il caso di MT4.
Non ho scritto nulla sui prezzi di apertura e di chiusura.
Motivazione: