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

 
ZZuretc: Sì, il "cappello" è un po' un mistero. Ho curiosato un po', ma non riesco a capirlo. Guarderò le stampe, avrà più senso.

Mandami tutto il codice nella tua casella di posta o pubblicalo qui. Darò un'occhiata. La correzione su EURUSD sembra essere finita... E fatemi sapere di cosa ho bisogno. L'ho guardato per un po'...

 
ZZuretc:

Mmmm... Sì... "il cappello è un grande affare". Ho fatto tutte le ricerche, ma non ho trovato la risposta che cercavo. Guarderò le stampe, è più chiaro così.

Ecco uno screenshot del momento del debug. Il punto di interruzione è sulla linea 15

Forum sul trading, sistemi di trading automatico e tester di strategie

Suggeriamo di usare MT5 come un terminale per programmatori, non per trader

Alexey Viktorov, 2018.01.09 18:57

Non dovresti usare LASTBAR_DATE, l'ho capito molto bene. Tutto il resto è male.

iBarSift() restituisce il numero della barra con il tempo specificato, l'indicizzazione parte da zero.

Bars() restituisce il numero di barre da data a data. Come in tutte le altre funzioni, come OrdersTotal() PositionsTotal() e altre, il numero di barre con il tempo specificato sarà meno 1.

Come potete vedere dall'esempio, la funzione è disponibile anche in mql4

 
ZZuretc:
Cosa c'entra LASTBAR_DATE?

Non c'entra assolutamente niente. Le parole lì sono rivolte a voi.

Alexey Viktorov:

Ecco uno screenshot del momento del debugging. Il punto di interruzione è sulla linea 15.

In generale, l'aiuto sul meta-editor descrive tutto molto bene.

 

Ciao) Aiutami qui. L'Expert Advisor disegna due tipi di oggetti dal file - linee verticali e orizzontali. L'Expert Advisor ha tre pulsanti: 1 - cancella tutte le linee, 2 - cancella le linee orizzontali, 3 - cancella le linee verticali. Voglio fare in modo che al rilascio del pulsante le linee rimosse premendo il pulsante corrispondente siano disegnate di nuovo - 1 - tutto, 2 - orizzontale, 3 - verticale. Da che parte andare? Scrivere un ciclo completo Mentre per ogni spinta per aprire il file con i dati e poi ricreare l'oggetto corrispondente? Non capisco come farlo correttamente. In che direzione scavare?

 
Юра куксов:

Sì, e questo non è - fino al prossimo tick, ecc., fino a quando questa condizione è vera, a quel punto ciò che avete scritto in questa condizione sarà soddisfatto. Cioè il suo corpo. Come questo?!

Yura, continua a scrivere qui. Lì è più interessante.

 
WinProject:

Ciao) Aiutami qui. L'Expert Advisor disegna due tipi di oggetti dal file - linee verticali e orizzontali. L'Expert Advisor ha tre pulsanti: 1 - cancella tutte le linee, 2 - cancella le linee orizzontali, 3 - cancella le linee verticali. Voglio fare in modo che al rilascio del pulsante le linee rimosse premendo il pulsante corrispondente siano disegnate di nuovo - 1 - tutto, 2 - orizzontale, 3 - verticale. Da che parte andare? Scrivere un ciclo completo Mentre per ogni spinta per aprire il file con i dati e poi ricreare l'oggetto corrispondente? Non capisco come farlo correttamente. In che direzione devo scavare?

Penso che dovremmo scavare nella direzione delle proprietà dei pulsanti

if(ObjectGetInteger(0, name, OBJPROP_STATE) == true) // кнопка нажата

E potremmo dover aggiungere un flag di sequenza. Per poter formulare una condizione, era premuto è diventato premuto e viceversa, era premuto è diventato premuto.

 
Alexey Viktorov:

Penso che dobbiamo scavare nelle proprietà del pulsante

E potremmo dover aggiungere un flag di sequenza. Per poter formulare una condizione, era premuto è diventato premuto e viceversa, era premuto è diventato premuto.


Grazie, devo aver formulato male la mia domanda: non è chiaro come ridisegnare in modo efficiente gli oggetti cancellati premendo il pulsante. E allegare il codice di cui ho bisogno alla pressione del pulsante non è un problema.

 
WinProject:

Ciao) Aiutami qui. L'Expert Advisor disegna due tipi di oggetti dal file - linee verticali e orizzontali. L'Expert Advisor ha tre pulsanti: 1 - cancella tutte le linee, 2 - cancella le linee orizzontali, 3 - cancella le linee verticali. Voglio fare in modo che al rilascio del pulsante le linee rimosse premendo il pulsante corrispondente siano disegnate di nuovo - 1 - tutto, 2 - orizzontale, 3 - verticale. Da che parte andare? Scrivere un ciclo completo Mentre per ogni spinta per aprire il file con i dati e poi ricreare l'oggetto corrispondente? Non capisco come farlo correttamente. In che direzione scavare?

Invece di cancellare un oggetto, potete rendere il suo colore come sfondo - si nasconderà. Puoi nasconderli dallo schermo e poi sistemarli. I dati del file possono essere salvati in un array di strutture. Se il file cambia frequentemente, puoi controllare quando è stato creato. Se l'oggetto appare di nuovo quando il pulsante viene rilasciato - sarà assente solo per il tempo in cui il pulsante è premuto...

 
WinProject:

Grazie, probabilmente non ho formulato bene la domanda: non è chiaro come ridisegnare razionalmente gli oggetti cancellati premendo il pulsante. E allegare il codice di cui ho bisogno alla pressione del pulsante non è un problema.

In questo caso non ci sono abbastanza informazioni.

Anche se si possono tenere i tempi delle linee verticali nell'array e i prezzi delle linee orizzontali in un altro array. Ma l'obiettivo è astratto e la soluzione può essere sbagliata.

 
C'è una funzione che restituisce il tipo di variabile?

Per esempio, lei scrive.

int a=10;

poi scrivi:

functia(a);

e dice: INT!

:)
Motivazione: