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

 
Artyom Trishkin:
Costruisci una linea virtuale, non un oggetto grafico, invece di una linea di tendenza. Rispettivamente, e ottenere il valore non tramite ObjectGetValueByShift("1",bar_seek), ma tramite equazione della linea retta.
grazie! - lo proverò)
 
Nikolay Gaylis:
Grazie, farò una prova).
Non c'è di che...
 
Nikolay Gaylis:
Grazie, lo proverò)

Ho scritto un articolo su mql4.com molto tempo fa. Contiene una descrizione dettagliata del lavoro con le linee di tendenza virtuali e la ricerca del giusto valore di prezzo sulla barra destra di queste linee virtuali.

C'è un indicatore basato su questo articolo in kodobase. In esso ho già rielaborato il codice per il nuovo mql4.

 
Artyom Trishkin:
Questa deve essere stata l'idea. Tuttavia, questo controllo non prenderà in considerazione solo gli ordini pendenti ma anche tutte le operazioni su un conto di trading - depositi, prelievi, bonus, ecc.
Nikolay Gaylis:

Questa condizione permette al consiglio di lavorare solocon ordini impilati, era questa l'intenzione?

    if(OrderSymbol() ==Symbol() &&OrderType()<2)
          continue;
Proprietà degli ordini

Tipo di operazione per la funzione OrderSend(). Può essere uno qualsiasi dei seguenti valori:

Costante
Valore
Descrizione
OP_BUY
0
Compra
OP_VENDITA
1
Vendere
OP_BUYLIMIT
2
Ordine BUY LIMIT in sospeso
OP_SELLLIMIT
3
Ordine SELL LIMIT in sospeso
OP_BUYSTOP
4
Ordine BUY STOP in sospeso
OP_SELLSTOP
5
Ordine SELL STOP in sospeso


Il calcolo è che gli ordini pendenti non saranno presi affatto fino a quando non saranno convertiti in ordini a mercato solo per il simbolo corrente. Dopo che l'ultimo ordine a mercato (se ce ne sono molti) per il simbolo corrente viene processato, l'EA viene rimosso dal grafico (ora viene rimosso immediatamente dopo l'attivazione del primo ordine e fa attenzione solo che se c'è 1 ordine per il simbolo corrente e un altro per un altro, l'EA lo prende in considerazione).

Perché questo accade e dove dovrei mettere un ordine di ritorno, in modo che quando l'ordine successivo viene chiuso invia una funzione direttamente alle condizioni dopo il count++ e inizia a suonare solo dopo che l'ultimo ordine è scattato. Infine, ho messo Orderselect() per determinare l'ultimo (se l'ordine è chiuso e non possiamo selezionare l'ordine non abbiamo niente da fare su questo grafico)

 
trader781:
Proprietà degli ordini

...


Gli ordini pendenti non saranno affatto presi in considerazione fino a quando non saranno convertiti in ordini a mercato solo per un simbolo corrente. Dopo che l'ultimo ordine di mercato (se ce ne sono molti) per il simbolo corrente è stato processato, l'Expert Advisor si cancella dal grafico (viene cancellato immediatamente dopo l'attivazione del primo ordine e fa attenzione al fatto che se c'è 1 ordine per il simbolo corrente e un altro per un altro, lo prende in considerazione).

perché questo accade e dove mettere un returnee, in modo che quando il prossimo ordine viene chiuso, invia una funzione immediatamente alle condizioni dopo count++ e solo dopo che l'ultimo ordine è scattato eseguirà playsound. Infine, metto Orderselect() per determinare l'ultimo (se l'ordine è chiuso e non possiamo selezionare l'ordine non abbiamo niente da fare su questo grafico)

if(OrderSymbol() ==Symbol() &&OrderType()<2)
          continue;

Questo codice salta tutte le posizioni di mercato nel ciclo.

Quello che segue mi è sconosciuto, ma se andiamo avanti a trattare altri tipi di ordini - quelli 2 e superiori, tale elaborazione prenderà in considerazione tutti i tipi di ordini pendenti e gli ordini di tipo 6 - azioni sul conto.

Dov'è il codice con tutto il ciclo?

 
Artyom Trishkin:
if(OrderSymbol() ==Symbol() &&OrderType()<2)
          continue;


Dov'è il codice con tutto il ciclo?

Posta 236

questa sezione dovrebbe passare solo quelle di mercato per lo strumento corrente

 
trader781:

Posta 236

questa sezione dovrebbe passare solo quelli di mercato sullo strumento corrente

Questo ciclo che hai è stupidamente vuoto a tutti. Non ha alcun senso - rallenta solo se hai un gran numero di ordini nel tuo account.

E riordinate il vostro codice - è solo spazzatura illeggibile, non codice.

E perché avete bisogno di doppie parentesi graffe in OnTick()? Qual è il significato sacro di questo?

 
Artyom Trishkin:

E mettete in ordine il vostro codice - è solo spazzatura illeggibile, non codice.

Non fraintendetemi. Se potessi fare come vuoi tu, non sarei seduto qui. Ecco perché chiedo aiuto per risolvere il compito attuale.

 
trader781:
Artyom Trishkin:

E mettete in ordine il vostro codice - è solo spazzatura illeggibile, non codice.

Non fraintendetemi. Se potessi fare come vuoi tu, non sarei seduto qui. Ecco perché vi chiedo di aiutarmi a risolvere il compito attuale.

Forse siete in grado di rimuovere le linee vuote dal codice? Richiede qualche abilità speciale?

In realtà, c'è la combinazione di tasti Ctrl+"," - uno styler. Anche se male, ma comunque. E poi si possono cancellare le linee vuote dal codice per non lasciare che la gente guardi la "trippa". È la più semplice cultura della comunicazione.

Ma dopo che avrete pulito il vostro codice diventerà più leggibile per voi, per non parlare delle altre persone che avranno bisogno di capire la vostra logica. Tutti i difetti si vedranno lì.

 
Artyom Trishkin:

Probabilmente sapete come rimuovere le linee vuote dal codice, vero? Questo richiede qualche abilità speciale?

In realtà, c'è una scorciatoia da tastiera Ctrl+"," - uno styler. Anche se male, ma comunque. E poi si possono cancellare le linee vuote dal codice per non lasciare che la gente guardi la "trippa". È la più semplice cultura della comunicazione.

Ma dopo che avrete pulito il vostro codice diventerà più leggibile per voi, per non parlare delle altre persone che avranno bisogno di capire la vostra logica. E tutti i vostri difetti saranno visti lì.

Dopo aver pulito il vostro codice, diventerà più leggibile per voi, per non parlare delle altre persone che hanno bisogno di capire la vostra logica. È lì che si vedranno tutti i bug.

Ok, così va meglio?
File: