MetaEditore. Problemi e soluzioni. - pagina 6

 
1
Liric86 2011.02.27 14:15 2011.02.27 14:15:10

Ciao, dopo aver installato MQL5 ho riscontrato alcuni difetti nella visualizzazione dei testi del programma durante la modifica. Quando seleziono il cursore, la posizione del testo cambia, nuovi caratteri appaiono sulla tastiera non nella posizione del cursore. Reinstallare il software non aiuta. Come posso risolvere il problema?



 
Potete dirmi se è possibile utilizzare l'order book nel trading (EA)?
 
Liric86:

1
Liric86 2011.02.27 14:15 2011.02.27 14:15:10

Ciao, dopo aver installato MQL5 ho riscontrato alcuni difetti nella visualizzazione dei testi del programma durante la modifica. Quando seleziono il cursore, la posizione del testo cambia, nuovi caratteri appaiono sulla tastiera non nella posizione del cursore. Reinstallare il software non aiuta. Come si può risolvere il problema?

Il carattere che hai selezionato non è monobianco.

Si prega di cambiare l'impostazione del carattere in Courier New con una dimensione del carattere di 10 punti.

 
todem:
Potete dirmi se è possibile utilizzare l'order book nel trading (tramite EA)?

È possibile, ma non nel tester di strategie di trading.

Al momento ce ne sono pochi (c'è Alpari in modalità test) che offrono stack di forex.

 
Quello che manca nel debugger è un contatore di passi. E un parametro preimpostato per fare la prima pausa ad un determinato passo.
 
Urain:
Quello che manca nel debugger è un contatore di passi. E un parametro preimpostato per fare la prima pausa ad un determinato passo.

Le interruzioni sono attualmente incondizionate, ma è possibile aggirare questa limitazione usando DebugBreak()
Документация по MQL5: Общие функции / DebugBreak
Документация по MQL5: Общие функции / DebugBreak
  • www.mql5.com
Общие функции / DebugBreak - Документация по MQL5
 
mql5:
Le interruzioni sono attualmente incondizionate, ma potremmo aggirare questa limitazione usando DebugBreak().

Tutto questo è vero, ma ho affrontato una situazione in cui ci sono molte chiamate di una classe universale descritta su un file da collegare. E diverse condizioni causano chiamate a celle di array inesistenti di questa classe. Il programma stesso contiene migliaia di passi di algoritmo, quindi è molto difficile rintracciare in quale passo si verifica un fallimento usando DebugBreak()+F11.

Naturalmente, sono uscito dalla situazione alla vecchia maniera (con stampe e congetture logiche). Ma il costo di questo, molte ore di lavoro. Il problema principale non era in quale funzione ha dato un errore, ma in quale funzione non riesce a calcolare correttamente il valore che poi porta ad un errore in un'altra funzione. Cioè, non avevamo bisogno del punto di errore in sé, ma della conoscenza di ciò che stava accadendo subito prima di esso.

Ecco perché abbiamo bisogno di un tracciatore in linea per passi e della possibilità di andare al passo specificato immediatamente dopo un nuovo inizio (avendo riavvolto tutti i precedenti).

 
Mi riferivo a un design come questo:

if(step==123124) DebugBreak();
 
mql5:

Intendevo tale costruzione:

if(step==123124) DebugBreak();


Sì, è quello di cui parlo anch'io. Stiparlo su ogni linea di 5.000 righe di codice è un problema. E la localizzazione intermedia non ha funzionato perché il riferimento salta costantemente tra gli inludi, quindi la prima stima approssimativa per una localizzazione più accurata non era possibile.

Ho descritto questo sovraccarico all'inizio del file:

ulong cntDebugBreak=0;
void DebugBreak(ulong step)
  {
   if(step>=cntDebugBreak){cntDebugBreak++;DebugBreak();}
   else cntDebugBreak++;
  }

ma se chiamarlo in modo invisibile (nel debugger), prima di ogni espressione sarebbe molto bello.

PS ha corretto il codice.

 

MetaEditor 4 aveva una soluzione ingegnosa per mettere la finestra di aiuto nella casella degli strumenti, l'aiuto era sempre a portata di mano proprio nella finestra di editing del testo. La finestra di aiuto potrebbe essere messa anche in MetaEditor 5?

Motivazione: