Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 25

 
fyords:

Sì, è impostato, ma quando viene attivato...

O un altro esempio: abbiamo un ordine pendente, il suo prezzo differisce da quello attuale di 1 punto, al prossimo tick il prezzo salta non di 1 punto, ma, diciamo, di 3-5 punti, il che risulta in un'apertura ad un prezzo sbagliato. Un esempio ovvio è una lacuna.

O forse non capisco la domanda e sono muto.

Qui ho capito male come funziona OrderGetTicket. La funzione restituisce alternativamente falso e vero. Anche se teniamo conto che l'ordine è stato piazzato a un prezzo sbagliato, dovrebbe semplicemente restituire falso. Ma alternativamente ...


UPD: In generale, la questione era in un NormalizeDouble dimenticato nel passaggio dei prezzi. Come al solito:) La funzione stessa funziona bene.


 
Per favore, ditemi se è possibile scrivere
 if (OrderTicket=OrderGetTicket(i)) {//Возвращает тикет соответствующего ордера и автоматически выбирает ордер

La funzione, se non viene selezionato nessun ordine, dà zero?

Cioè, se l'uguale non è doppio, semplice, sarà un'assegnazione qui, non un confronto? Zero non è la stessa cosa di no?

Non ho avuto subito un errore, ma mi sono reso conto dopo che non avevo capito quello che avevo scritto!

 
Dimka-novitsek:
Potete dirci se è possibile scrivere

La funzione, se non viene selezionato nessun ordine, dà zero?

Cioè, se l'uguale non è doppio, semplice, sarà un'assegnazione qui, non un confronto? Zero non è la stessa cosa di no?

Non ho avuto subito un errore, ma mi sono reso conto dopo che non avevo capito quello che avevo scritto!

L'espressione è corretta; la descrizione della funzione dice che restituirà zero se fallisce. Zero per se è falso. Quindi il costrutto funzionerà bene.

Un'altra cosa è che la funzionalità di trading è così veloce che abbiamo inviato un ordine in un tick ed è già nella storia in quello successivo, quindi questo costrutto molto spesso (ma non sempre) restituirà falso.

Questo codice mostra che stai controllando gli ordini che hai piazzato, ma non ancora riempiti. La funzione OnTradeTransaction() è più adatta per monitorarli.

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
 
GRAZIE!!!
 
Non ho idea di come trattare le classi e le funzioni virtuali. Ho letto, letto, letto... Da un'ora, e non per la prima volta. È scritto in modo pesante, incomprensibile e, soprattutto, cosparso di termini nuovi e inediti - basta seguire i link. Qui, dice ( Classi e strutture possono avere un costruttore e un distruttore espliciti) vai a vedere Costruttori e distruttori Dice (Il costruttore è una funzione speciale che viene chiamata automaticamente quando si crea un oggetto struttura o una classe e di solito è usato per inizializzare i membri della classe) In breve, non capisco.
Документация по MQL5: Основы языка / Типы данных / Структуры и классы
Документация по MQL5: Основы языка / Типы данных / Структуры и классы
  • www.mql5.com
Основы языка / Типы данных / Структуры и классы - Документация по MQL5
 
Dimka-novitsek:
Non ho idea di come trattare le classi e le funzioni virtuali. Leggere, leggere, leggere, leggere. Per un'ora, e non per la prima volta. È scritto in modo pesante, incomprensibile, e la cosa principale è coperta da termini nuovi e inediti - basta seguire i link. Dice ( Classi e strutture possono avere un costruttore e un distruttore espliciti) Guarderò Costruttori e distruttori Dice (Il costruttore è una funzione speciale che viene chiamata automaticamente quando si crea un oggetto struttura o una classe e di solito è usato per inizializzare i membri della classe) In breve, non capisco.

Un costruttore è una funzione chiamata automaticamente quando viene creato un oggetto di una classe e viene utilizzato per inizializzare l'oggetto.

È più chiaro? Se no, sono impotente.

 
Grazie! Tutto a posto. Ora vado a giocare a calcio. Tornerò a fare i bagagli e a chiedere. Chiederò. Cos'è una funzione virtuale? Corre quando vuole? Qual è la parola dinamica?
Документация по MQL5: Основы языка / Объектно-ориентированное программирование / Виртуальные функции
Документация по MQL5: Основы языка / Объектно-ориентированное программирование / Виртуальные функции
  • www.mql5.com
Основы языка / Объектно-ориентированное программирование / Виртуальные функции - Документация по MQL5
 

Quindi. Dice che la scelta di quale definizione di funzione chiamare per la funzione virtuale è dinamica (a runtime).

La definizione della funzione, che è tra parentesi, cioè ordina alla macchina di fare qualcosa di specifico, giusto? Ma qui si scopre che la macchina stessa fa quello che vuole e quando vuole, proprio come il mio amico Vasya? Davvero, ho già letto la frase 100 volte, ma non riesco a capirla. Non riesco a capire! Cercherò di leggere gli esempi con cura e attenzione...

E ho cominciato a leggere della classe - è da lì che ho cominciato, per capire, stavo scrivendo della funzione!

 
Dimka-novitsek:

Quindi. Dice che la scelta di quale definizione di funzione chiamare per la funzione virtuale è dinamica (a runtime).

La definizione della funzione, che è tra parentesi, cioè ordina alla macchina di fare qualcosa di specifico, giusto? Ma qui si scopre che la macchina stessa fa quello che vuole e quando vuole, proprio come il mio amico Vasya? Davvero, ho già letto la frase 100 volte, ma non riesco a capirla. Non riesco a capire! Cercherò di leggere gli esempi con cura e attenzione...

E ho iniziato a leggere della classe - è da lì che ho iniziato, per capire che stavo scrivendo di una funzione!

Mi stai prendendo in giro?

Imparate a fare le domande giuste e non dovrete farne la maggior parte.

Lefunzioni virtuali hanno senso solo nel contesto dell'ereditarietà.

Il trucco dell'ereditarietà non è solo che il codice può essere distribuito su molte classi (all'aumentare dell'ereditarietà),

ma nel senso che si può prima dichiarare un oggetto antenato dinamico e poi ridefinirlo come discendente.

Per esempio, un oggetto deve essere dichiarato globalmente, ma al punto di dichiarazione non si sa quale classe dovrebbe essere l'oggetto. Quindi le classi vengono ereditate da un antenato comune, un oggetto dinamico dell'antenato viene dichiarato in ambito globale e poi, quando si sa quale classe deve essere l'oggetto, viene ridefinito dall'operatore new.

La parola dinamica è sottolineata perché non si può fare con la statica, la statica è definita immediatamente e completamente.

 
Ok, non è che affondi subito, ma qualcosa sta venendo fuori. Grazie. Se posso, lo chiederò mentre vado avanti.
Motivazione: