Domande dai principianti MQL4 MT4 MetaTrader 4 - pagina 123

 

Come posso aggiungere un valore alla condizione di acquisto/vendita se l'indicatore RVI per esempio: quando due linee si incrociano apre un ordine di acquisto/vendita, ma voglio che non sia solo un incrocio, ma se l'incrocio è superiore a 0 Valore?

MM e MS sono linee indicatrici di RVI

  if (MM > MS && MoM < MS && MoM < MM)
   {
    OrderSend(_Symbol, OP_BUY, Lot, Ask, 3, Ask-SL*Point, Ask+TP*Point, "", Magic, 0, Red);
   }
  if (MM < MS && MoM > MS && MoM > MM)
   {
    OrderSend(_Symbol, OP_SELL, Lot, Bid, 3, Bid+SL*Point, Bid-TP*Point, "", Magic, 0, Red);
   }


 

Ciao!

Potete dirmi come usare l'etichetta obj per visualizzare una stringa di più di 64 caratteri?

 
Игорь:

Ciao!

Potete dirmi come usare l'etichetta obj per visualizzare una stringa di più di 64 caratteri?

Due etichette obj affiancate. Il sinistro è allineato al bordo destro, il destro al sinistro

 
novichok2018:

Puoi spiegare questa linea del tuo codice:OrderInfo arrstBuyOrderInfo[MAX_ORDERS_CNT], arrstSellOrderInfo[MAX_ORDERS_CNT]; PerchéOrderInfo non ha parentesi e nessun tipo?

OrderInfo è un tipo di dati. Proprio come int, double, ecc. In questo caso OrderInfo è una struttura. Ho dato un esempio della sua dichiarazione nel mio postdi chiusura delle posizioni? E forse la funzione di chiusura delle posizioni con gli array dovrebbe essere in qualche modo diversa? È un po' complicato per me. Grazie.

Finora abbiamo considerato solo il primo compito - la raccolta di informazioni sugli ordini di lavoro. La generazione del segnale commerciale e l'esecuzione delle azioni commerciali sono rispettivamente i compiti 2 e 3. Non siamo ancora arrivati a loro.

L'idea della raccolta di informazioni è di non dover ripassare l'intera lista di ordini ad ogni "starnuto". In un EA scritto correttamente, questa azione viene eseguita solo una volta per iterazione. In seguito, lavoriamo solo con i dati creati.

Вопросы от начинающих MQL4 MT4 MetaTrader 4
Вопросы от начинающих MQL4 MT4 MetaTrader 4
  • 2018.02.13
  • www.mql5.com
Если у Вас вопросы по MQL4, MT4, MetaTrader 4, пожалуйста пишите в этой теме. Особенно когда вопросы касаются торговых функций...
 
Aleksey Rodionov:

Come posso aggiungere un valore alla condizione di acquisto/vendita se l'indicatore RVI per esempio: quando due linee si incrociano apre un ordine di acquisto/vendita, ma voglio che non sia solo un incrocio, ma se l'incrocio è superiore a 0 Valore?

MM e MS sono linee indicatrici di RVI


Il valore di entrambe le linee dovrebbe essere comparato a zero. Non è vero?

E non è chiaro cosa sia il MoM.

 

c'è questa linea da MQL5, il compilatore MQL4 se ne lamenta, come può essere riscritta?

//--- set new color
   m_pixels[y*m_width+x]=(r<<16|g<<8|b<<0|255<<24) &0xffffffff;

//check operator precedence for possible error; use parentheses to clarify precedence   Canvas.mqh
 
Ihor Herasko:

OrderInfo è un tipo di dati. Come int, double, ecc. In questo caso OrderInfo è una struttura. Ho dato un esempio della sua dichiarazione nel mio posthttps://www.mql5.com/ru/forum/160587/page121#comment_6556328.

Ho capito bene il suo esempio: La direttiva #define sostituirà il numero 500 ovunque incontri MAX_ORDERS_CNT ? E perché si dovrebbe assegnare un tipo a un numero?

E perché non possiamo semplicemente specificare extern int cnt=500? E poi ci saranno OrderInfo arrstOrderInfo[cnt], arrstBuyOrderInfo[cnt], arrstSellOrderInfo[cnt]; ?


Inoltre: nel tuo post a p122 non mi è chiaro cosa sia&arrstOrderInfo[],&nOrdersCnt e.n? Scusate se le mie domande sembrano sciocche - come è, sto cercando di capire di più per conto mio, anche se sto avendo una brutta esperienza.

 

Buon pomeriggio

Per favore aiutatemi ad aggiornare il mio indicatore

Ho bisogno di aggiungere 2 buffer, l'indicatore "nativo" disegna una freccia (su o giù) quando si identifica un gap e dà un segnale nel buffer 6 o 7

Vorrei avere un buffer 8 e 9 dove nel segnale di gap +1 (su) o -1 (giù) 0 in assenza di

Ho provato a farlo da solo, ma non funziona niente, non ho nessuna abilità nella programmazione

 
novichok2018:

Ho capito bene il suo esempio? La direttiva #define sostituirà il numero 500 ovunque si incontri MAX_ORDERS_CNT ? E perché si dovrebbe assegnare un tipo a un numero?

Sì. E notate che sarà sostituito in fase di compilazione e non durante l'esecuzione del programma.

E perché non potete semplicemente specificare extern int cnt=500? E poi ci saranno OrderInfo arrstOrderInfo[cnt], arrstBuyOrderInfo[cnt], arrstSellOrderInfo[cnt]; ?

No, perché int cnt è una dichiarazione di una variabile. E una variabile può cambiare il suo valore mentre il programma viene eseguito. E la memoria dell'array statico non viene allocata durante l'esecuzione del programma. La dimensione della memoria dovrebbe essere nota già in fase di compilazione. Per cambiare la dimensione dell'array durante l'esecuzione del programma, è necessario utilizzare un array dinamico. Beh, questo viene fatto dopo, quando ci si abitua agli array statici.

Inoltre: nel tuo post a p122 non mi è chiaro cosa sia&arrstOrderInfo[],&nOrdersCnt e.n? Scusate se le mie domande sembrano sciocche - sto cercando di capirle da solo, ma non sono molto bravo.

Semplificherò un po' la risposta per evitare confusione. Il segno (&) indica che l'argomento della funzione può cambiare il suo valore in fase di esecuzione e tornerà al punto in cui la funzione è stata chiamata, con un valore diverso. Nel caso in questione, la funzione SaveOrder può cambiare il contenuto degli array g_arrstBuyOrderInfo e g_arrstSellOrderInfo così come le variabili g_nBuyOrdersCnt e g_nSellOrdersCnt.

 

Ciao!

Puoi dirmi come ridipingere le barre senza usare modelli in mt4?

O come applicare una combinazione di colori!

Motivazione: