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.
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.
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.
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.
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.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.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 ¶meter)
{
}
Pensavo che avessero già aggiunto i puntatori void *. Inoltre, si possono usare dei modelli, come
template<typename T>
void f(T ¶meter)
{
}
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:
E tutto sarà collegato a una sola funzione. Questo risolve il mio problema. Grazie a coloro che hanno risposto per la risposta.Per favore ditemi come trovare il massimo drawdown in Excel... Dammi la formula...
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 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 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 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 è 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.