Errori, bug, domande - pagina 578

 
Fia:

2) C'è una funzione in MQL5 per eliminare un elemento (uno nel mezzo della matrice) da una matrice dinamica i? Se no, qual è il modo migliore per farlo con la lingua?

Non ci sono funzioni pronte per questo nel linguaggio, ma la libreria standard contiene Basic Object Class CArrayObj
 

Buon pomeriggio

Per favore, ditemi come interpretare il grafico dell'equilibrio/patrimonio netto in questo esempio


Perché i grafici divergono immediatamente in un punto e convergono in momenti diversi (dallo stesso livello su "y"). Sembra che al momento di aprire il grafico del saldo non sappia che aumenterà.

O forse non lo capisco.

Grazie.

 
papaklass:
Ok, la tua posizione è chiara. Infatti, finiamo su questa nota. Grazie per il tempo che hai dedicato a rispondere alle mie domande.

Lo spiegherò con un semplice esempio.

Una donna può avere un bambino in nove mesi. Nove donne non daranno alla luce un solo bambino in un mese.

Questa è la domanda sulla possibilità di elaborare diversi tick consecutivi in parallelo in diversi thread. Il punto è che nella maggior parte dei casi il risultato dell'elaborazione di un tick influenza molto il risultato dell'elaborazione del tick successivo. Approssimativamente, su 4 threads si possono ottenere 4 operazioni di trading simultaneamente invece di una sul primo tick

 
olyakish:

Salve.

Per favore, ditemi come interpretare il grafico di equilibrio/equità su questo esempio


Perché in un punto i grafici divergono subito, e convergono in tempi diversi (allo stesso livello di "y"). Sembra che al momento di aprire il grafico del saldo non sappia che aumenterà.

O forse non capisco qualcosa.

Grazie.


sulla barra in cui il trade è stato aperto il prezzo è salito e il trade è andato in rosso, ma non si è chiuso - si è verificato un drawdown, sulle barre successive si è "spostato a destra" e forse sull'ultima o penultima barra è andato più in basso del prezzo di chiusura e quindi il capitale è diventato più alto del risultato finale, sull'ultima barra il trade è stato chiuso e il capitale è diventato uguale al saldo

E hai avuto due trade, uno ha fatto un profitto e l'altro si è chiuso con un'oscillazione dell'equity pari a zero

 
Rosh:
Non ci sono funzioni pronte per questo nel linguaggio, ma la Libreria Standard ha La classe base dell'oggetto CArrayObj
Grazie per le risposte!
 
Lazarev:

nella barra in cui il trade è stato aperto il prezzo è salito e il trade è andato in rosso, ma non si è chiuso - si è verificato un drawdown, nelle barre successive si è "spostato a destra" e forse nell'ultima o penultima barra è andato più in basso del prezzo di chiusura ed è per questo che il capitale è diventato più alto del risultato finale, nell'ultima barra il trade è stato chiuso e il capitale è diventato uguale al saldo

E avevi due trade, uno era redditizio e l'altro era chiuso con zero equity che oscillava ancora

>Sulla stessa barra in cui il trade è stato aperto, il prezzo è salito e il trade è sceso ma non si è chiuso - si è verificato un drawdown,

prelievo sull'Equity ma non sul saldo. => il saldo deve essere su una linea (non cambiare)

>Hai due trade, uno dei quali si è rivelato un profitto e l'altro ha chiuso con zero equity (tuttavia, l'equity stava ancora oscillando).

In realtà si tratta di un'operazione che consiste nel vendere (aprire una posizione di vendita) e comprare(chiudere una posizione di vendita)

 
papaklass:

2. Dovresti abbassarti al mio livello e spiegare a me e ad altri come me, senza snobismo, in un linguaggio che posso capire. Perché in un tester, in una sola corsa, non si può usare tutta la potenza del computer? Penso che anche la parametrizzazione dei gestori di eventi possa essere riferita allo stesso argomento.

Ho appena cercato di spiegartelo. Non potete elaborare tick consecutivi in parallelo, perché il risultato dell'elaborazione di un tick influenza l'elaborazione del tick successivo.

Dove si possono usare i calcoli paralleli in un tester? Solo nel calcolo degli indicatori. Mentre un tick viene elaborato, calcoliamo i valori dell'indicatore per il tick successivo. Moriremo nella sincronizzazione e nel dispacciamento e non otterremo alcun profitto. Abbiamo speso (e ancora spendiamo) molto tempo per aumentare le prestazioni del sistema, e abbiamo anche considerato questa possibilità.

La parametrizzazione dei gestori di eventi è una questione leggermente diversa. E non abbiamo ancora rinunciato agli eventi parametrizzati

 
Funzioni standard di conversione del tipo int in Esempio

doppioMathRound(
valore doppio//valore arrotondato
);

Restituisce doppi errori ma gli avvertimenti sono molto fastidiosi

possibile perdita di dati a causa della conversione del tipo Tester.mqh 192 20

0 errore(i), 22 avviso(i) 1 23

C'è qualche metodo di workaround.

Документация по MQL5: Основы языка / Типы данных / Приведение типов
Документация по MQL5: Основы языка / Типы данных / Приведение типов
  • www.mql5.com
Основы языка / Типы данных / Приведение типов - Документация по MQL5
 
ivandurak:

C'è qualche metodo per bypassare il .spz

Dare i tipi in modo esplicito. Allora non ci saranno avvertimenti.

Cioè

int i = int(MathRound(5.5));
или
int i = (int)MathRound(5.5);
 

papaklass:

2. Dovresti abbassarti al mio livello e spiegare a me e ad altri come me, senza snobismo, in un linguaggio che posso capire. Perché in un tester, in una sola corsa, non si può usare tutta la potenza del computer? La parametrizzazione dei gestori di eventi, credo che possa essere riferita allo stesso argomento.

1. La parametrizzazione può essere fatta. Ma è costoso per gli sviluppatori e ovviamente non è una priorità.

2. Non puoi davvero implementare il threading in questa orchestrazione. Non solo sarà costoso per il tempo e le altre risorse, ma in una forma di soluzione standard causerà un sacco di problemi per la maggior parte degli utenti (che ovviamente non sono programmatori professionisti).

O si deve cambiare l'architettura della piattaforma stessa o creare qualcosa di molto ingombrante e associato a risorse e tecnologie aggiuntive.