Domande dai principianti MQL4 MT4 MetaTrader 4 - pagina 20

 
Vitalie Postolache:
Ancora una volta. OrderSelect deve venire prima quando si lavora con un ordine. Poi tutto il resto.
Grazie per la risposta ... Stai dicendo che la linea if(OrderSelect(i=0;i<accTotal;i++)==true) non è scritta correttamente o nel posto sbagliato del codice?
 
bablusut:
Grazie per la risposta ... Stai dicendo che la linea if(OrderSelect(i=0;i<accTotal;i++)==true) non è scritta correttamente, o nel posto sbagliato del codice?
Ho aggiunto dei dettagli lì.
 

Renat Akhtyamov:
по ссылке пройдите, она у Вас в посте выделена.

L'ho già guardato e non ha le informazioni necessarie: valore di 10 cifre nel buffer vuoto e valore del prezzo quando c'è un segnale... Come fa il codice mql4 a indicare l'assenza o la presenza di un valore nel buffer? (L'ho usato più di una volta, ma l'ho dimenticato...)

if( iCustom(NULL,t, "T...c",1,b) != .......).....

 

atik441:уже смотрел. нет там нужной информации .в пустом буфере 10и значное значение  а при наличии сигнала - значение цены... и как в коде mql4 обозначается отсутствие или наличие значения в буфере ? (пользовался не раз ,да забыл ...) 

if( iCustom(NULL,t, "T...c",1,b) != EMPTY_VALUE).....
 
Vitalie Postolache:
if( iCustom(NULL,t, "T...c",1,b) != EMPTY_VALUE).....Quello che ci serve... Grazie per il promemoria!
 

Aiuta a capire. È possibile eseguire ordini in sequenza se due ordini diversamente diretti

le compravendite aperte innescano in primo luogo il TP di una qualsiasi delle compravendite, e poi solo SL, anche se nel processo di negoziazione il livello SL

qualcuno dei mestieri è passato per primo?

 
ganri:

Aiuta a capire. È possibile eseguire ordini in sequenza se due ordini diversamente diretti

le compravendite aperte innescano in primo luogo il TP di una qualsiasi delle compravendite, e poi solo SL, anche se nel processo di negoziazione il livello SL

qualcuno dei mestieri è passato per primo?

analizzare asc/bid
 
Vitalie Postolache:

Ancora una volta. OrderSelect deve venire prima quando si lavora con un ordine. E poi tutto il resto.

Se stiamo lavorando in un ciclo di valutazione dell'ordine, allora l'ordine delle azioni è

1. Controllo se(OrderSelect())

2. Controllando se è l'ordine giusto, di solito controlliamo il simbolo e il numero magico, e poi controlliamo il tipo if(OrderSymbol()==_Symbol && OrderMagicNumber()==Magic && OrderType()<2) - in questo caso solo gli ordini a mercato piazzati per il simbolo corrente e con il numero magico specificato sono elaborati

Elaborazione di altri dati come OrderComment(), OrderProfit(), ecc.

Sembrerebbe qualcosa del genere:

for(int i=OrdersHistoryTotal()-1; i>=0; i--) //перебираем историю торгов
{
      if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) //если ордер выбран то работаем дальше, иначе смысла нет
      {
         if(OrderSymbol()==_Symbol && OrderMagicNumber()==Magic && OrderType()<2) //Если ордер тот, что нам нужен (эту проверку можно и опустить, если нужно обработать все ордера в истории)
         {
            if(StringFind(OrderComment(),"[tp]",0)>-1) //если найден признак закрытия профитом
            Print("Order #",OrderTicket()," profit: ", OrderTakeProfit());
            if(StringFind(OrderComment(),"[sl]",0)>-1) //если найден признак закрытия стоплосс
            Print("Order #",OrderTicket()," loss: "OrderTakeProfit());
         }
      }
}

Grazie per la vostra risposta ... Così, per cercare gli ordini nella storia del trading, usiamo la funzioneOrdersHistoryTotal che, dopo aver scartato tutto ciò che non ci serve, si presenta così

for(int i=OrdersHistoryTotal()-1; i>=0; i--) // - ecco la domanda, cosa significa "accTotal" nel modello di funzione, che abbiamo scartato? e perché avete preso "i--" e non "i++" come nel modello?
- La seconda funzioneOrderComment restituisce il commento dell'ordine selezionato, se è stato selezionato dalla funzione precedenteOrdersHistoryTotal, ha la forma

if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) //- dove"i", questo è "i>=0" dalla funzione precedente, e "SELECT_BY_TICKET" è stato sostituito con "SELECT_BY_POS" e "MODE_HISTORY" è stato aggiunto- perché?

- La terza linea è la definizione, in realtà non abbiamo bisogno di controllare l'ordine necessario poiché abbiamo solo ordini a mercato chiusi da TP e SL in questa storia (potremmo avere un ordine pendente chiuso, ma sarà raro), tutti gli altri parametri di ordine non sono importanti per noi. L'unica cosa importante è che la quantità di ordini chiusi nella storia aumenterà costantemente, è possibile fare in modo che il nostro ricalcolo prenda una certa quantità degli ultimi ordini, per esempio 5-10, e non tutti?

- Le ultime quattro linee sono abbastanza chiare, l'unica domanda riguarda la funzione PlaySound, il cui codice dovrebbe essere inserito dopo ogni linea"Print("..." nellaforma seguente:

bool PlaySound(

stringa // nome del file

);

... O è anche convertito in qualche modo?

 
bablusut:

Leggete i loop, come sono limitati e come funzionano, e in generale, sarebbe bello leggere un libro di testo su C++ per principianti, C++ è molto simile a MQL, l'unica differenza è nelle funzioni di trading.

E dovresti anche leggere il tutorial MQL e la guida al compilatore. Gli articoli sul forum sono sul bordo superiore della finestra con sfondo blu. Non si può raccontare e spiegare tutto il corso sul forum.

Учебник по MQL4
Учебник по MQL4
  • book.mql4.com
Учебник по MQL4
 
Vitalie Postolache:

Leggete i loop, come sono limitati e come funzionano, e in generale, sarebbe bello leggere un libro di testo su C++ per principianti, C++ è molto simile a MQL, l'unica differenza è nelle funzioni di trading.

E dovresti anche leggere il tutorial MQL e la guida al compilatore. Gli articoli sul forum sono sul bordo superiore della finestra con sfondo blu. Non si può raccontare e spiegare tutto il corso sul forum.

GrazieVitalie Postolache per il tuo aiuto e i tuoi consigli, ed è troppo tardi per me per leggere tutti i libri di testo al mio sesto compleanno - non sarò in grado di studiare così tanto, avrei dovuto farlo prima ma non ho avuto tempo. Vi sto davvero annoiando qui, scusate, non vi disturberò più.
Motivazione: