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

 
Sergey Likho:

Nuovo, cancellare non sono utilizzati. Gli elementi della classe sono dichiarati all'inizio e non li ricreo.

Per lo più si lavora molto con gli array.


Cosa sono gliscript dei test-case?

Fai una classe e probabilmente (anche prima) scrivi un mucchio di script (o uno o due script e un sacco di funzioni di test) che controllano che faccia esattamente quello che deve fare e che funzioni così e che sia usabile.
Allo stesso tempo controlla la stabilità, i bug e le perdite di memoria.

Non dovete fare il debug di una classe in un complesso enorme con molte altre simili.

----

Se lavorate molto con gli array, emettete periodicamente le dimensioni dell'array sul giornale esterno e vedete quale si gonfia a una dimensione inimmaginabile mentre lavorate.

A proposito, le chiamate ricorsive possono causare out-of-memory se ci sono array all'interno. Controllate che non ci sia ricorsione o che sia adeguatamente limitata.

 
Potete dirmi cosa bisogna studiare per imparare a scambiare dati tra grafici in mt4, e tra terminali (non via internet) ?
 
Yevhenii Levchenko:
Per favore, cosa devo imparare per scambiare dati tra i grafici in MT4, così come tra i terminali (non via internet)?
Se tra i grafici allora EventChartCustom, variabili globali del terminale, file, winapi.
Se tra terminali allora file e winapi
 
Yevhenii Levchenko:
Per favore, cosa devo studiare per imparare a scambiare dati tra grafici in MT4, così come tra terminali (non via Internet)?

Tra terminali sulla stessa macchina, si può usare un file nella cartella "Common

Se non mi sbaglio, l'indirizzo è: C:\Users\<....>\AppData\Roaming\MetaQuotes\Terminal\Common\

 
Vladimir Simakov:
Se tra i grafici, EventChartCustom, variabili globali del terminale, file, winapi.
Se tra terminali, file e winapi
Vitaly Muzichenko:

Tra terminali sulla stessa macchina, si può usare un file nella cartella "Common

Se non mi sbaglio, l'indirizzo è: C:\Users\<....>\AppData\Roaming\MetaQuotes\Terminal\Common\

Si è scoperto che non è poi così complicato (voglio dire, solo winapi è complicato)! Grazie! :)

 
Alexey Viktorov:
Linea 61, che linea è?
Non posso dirlo ora, è sulla VPN, non posso ancora accedervi
 
Ivan Butko:
Non posso dirlo ora, è su un VPS, non posso ancora accedervi

La fonte è su un VPS? Non ce l'hai sul tuo computer? Ok, non mi interessa più.

 
Alexey Viktorov:

La fonte è su un VPS? Non ce l'hai sul tuo computer? OK, non sono più interessato.

Ok.
Sì, sono appena uscito dal computer.

 
In generale, la situazione è la seguente. Ci sono diversi "lotti" Lotti1, Lotti2, Lotti3, e così via. Ad ogni fermata il lotto cambia. Non posso moltiplicare il lotto usando Martingale, sono tutti diversi. Ho provato ad adattare le funzioni standard FindLastLot() e altre. Si è rivelato molto ingombrante e ha funzionato in modo anomalo. Cioè, per ogni lotto ho prescritto OrderSend e un mucchio di funzioni che impedivano l'apertura parallela di altri ordini. Poi ho deciso di provare a usare il ciclo while e attaccarci uno switch case, ma mi sono ricordato che funziona solo con gli interi. Ho pensato che potremmo usare il ciclo for, ma gli ordini sono chiusi, quindi devono essere cercati in posizioni chiuse. Ma come? Ho bisogno di scrivere un altro ciclo, cioè for e while in esso? Ho solo domande... Ho cercato risposte sul forum e anche su Internet. Tutto è banale. Tutta la stessa Martingala moltiplicata per due. Ho solo speranze per voi, maestri del MQL. Puoi dirmi in che direzione andare?
 
Corvin85:
In generale, la situazione è la seguente. Ci sono diversi "lotti" Lotti1, Lotti2, Lotti3, e così via. Ad ogni fermata il lotto cambia. Non posso moltiplicare il lotto usando Martingale, sono tutti diversi. Ho provato ad adattare le funzioni standard FindLastLot() e altre. Si è rivelato molto macchinoso e ha funzionato in modo anomalo. Cioè, per ogni lotto ho prescritto OrderSend e un mucchio di funzioni che impedivano l'apertura parallela di altri ordini. Poi ho deciso di provare a usare il ciclo while e attaccarci uno switch case, ma mi sono ricordato che funziona solo con gli interi. Ho pensato che potremmo usare il ciclo for, ma gli ordini sono chiusi, quindi devono essere cercati in posizioni chiuse. Ma come? Ho bisogno di scrivere un altro ciclo, cioè for e while in esso? Ho solo domande... Ho cercato risposte sul forum e anche su Internet. Tutto è banale. Tutta la stessa Martingala moltiplicata per due. Ho solo speranze per voi, maestri del MQL. Potete consigliarmi in che direzione andare?
Ho la sensazione che il testo originale provenga da un universo parallelo, sia stato tradotto due volte da google-translate e poi raccontato da Alice :-)