I flag controllano il numero di tipi di ordine o se c'è un ticket controllano il tempo di chiusura dell'ordine a mercato, se non è uguale a zero allora l'ordine è chiuso e il flag di apertura dell'ordine è falso.
if(OrderSelect(Ticket, SELECT_BY_TICKET)==true)
{
if(OrderCloseTime()==0) // Если наш рыночный ордер не закрыт
{
if(flagAlert == true)
Alert("Наш рыночный ордер жив, Модифицируем его если нужно ", Text,Ticket,". Ждём ответ..");
ModifyTral(); // Модифицируем если нужно
}
if(OrderCloseTime()!=0) // Если наш рыночный ордер закрылся
{
OpnOr=false; // Флаг открытия рыночного ордера после его закрытия делаем ЛОЖЬ
Ticket=0; // Тикет ордера рыночного, он может быть только одинAlert("Наш рыночный ордер закрылся. Работа Советника продолжается ","Прибыль/убыток = ",OrderProfit(),
" Своп = ", OrderSwap(), " Комиссия = ", OrderCommission());
return;
}
}
else
{ Alert("OrderSelect() нашего рыночного ордера вернул ошибку - ",GetLastError()); return;}
}
Per rendere conto di un biglietto.
Quando si apre un ordine, il biglietto deve essere memorizzato.
I flag controllano il numero di tipi di ordine o se c'è un ticket controllano il tempo di chiusura dell'ordine a mercato, se non è uguale a zero allora l'ordine è chiuso e il flag di apertura dell'ordine è falso.
Come si fa programmaticamente?
Per rendere conto di un biglietto.
Quando si apre un ordine, il biglietto deve essere memorizzato.
Ad essere onesti, non è chiaro cosa stai cercando. Scrivete nelle formule come capite cosa è in uscita e cosa vi serve.
Avete bisogno del tempo in millisecondi tra gli ultimi 4 tick. Aggiorna i valori quando appare un nuovo segno di spunta.
L'indicatore scrive il tempo dell'ultimo tick(GetTickCount()) nel buffer.
L'Expert Advisor prende i valori dall'indicatore e calcola la differenza di tempo.
Sembra contare, ma Alert mostra valori come nell'immagine.
Non capisco perché.
Serve il tempo in millisecondi tra gli ultimi 4 tick. Aggiorna i valori quando si verifica un nuovo tick.
L'indicatore scrive il tempo dell'ultimo tick (GetTickCount()) nel buffer.
L'Expert Advisor prende i valori dall'indicatore e calcola la differenza di tempo.
Sembra contare, ma Alert mostra valori come nell'immagine.
Non capisco perché.
Perché non hai letto la documentazione
L'aiuto per GetTickCount dice che è un overflow del contatore intero
perché non leggete la documentazione.
Il riferimento a GetTickCount dice che è un overflow intero.
Vuoi dire uint? Perché appare nell'avviso? Non ce l'ho messo io.
Vuoi dire uint? Perché appare nell'avviso? Non l'ho scritto lì.
Nel primo Alerte hai emesso in modo errato (senza tener conto degli overflow) la differenza calcolata,
il secondo Alert, dove si cerca un grande valore intero nel codice, non è presente in questo frammento :-)
Questo è il punto, non è nel codice.
Tutto il codice dell'indicatore.
Tutto il codice EA.
Questo è il punto, non è nel codice.
Tutto il codice dell'indicatore.
Tutto quanto.
Guarda cos'altro c'è dentro.
time.mq4 - forse invia avvisi
Questo è il punto, non è nel codice.
Tutto il codice dell'indicatore.
Tutto il codice EA.
Nell'indicatore, nella struttura Alert. La 5a linea dal bassoAlert(b);
Apparentemente questo è il numero di millisecondi dall'inizio del sistema)
Come posso seguire lo stato dei pulsanti di scambio rapido?
Cioè, sono presenti sul grafico o no.
Puoi suggerire una funzione o un altro metodo?