[ARCHIVIO] Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 3. - pagina 219

 

Scusate la domanda stupida: perché l'indicatore non visualizza valori inferiori a 0,0001?

Mentre scrivevo l'indicatore ho deciso di controllare uno dei componenti attraverso il buffer. Non capisco una cosa, ma sembra che i numeri con 5 cifre dopo il punto non siano disegnati (correggetemi se sbaglio), ok, che non siano disegnati, ma saranno poi contati nell'indicatore?

 
ask:

Scusate la domanda stupida: perché l'indicatore non visualizza valori inferiori a 0,0001?

Mentre scrivevo l'indicatore ho deciso di controllare uno dei componenti attraverso il buffer. Non capisco una cosa, ma sembra che i numeri con 5 cifre dopo il punto non siano disegnati (correggetemi se sbaglio), ok, che non siano disegnati, ma saranno poi contati nell'indicatore?

https://docs.mql4.com/ru/convert/DoubleToStr
 
 
Shniperson:
Puoi suggerire un "Expert Advisor" o uno script... che visualizzi in grandi numeri quanti pips e money loss/profitto del trade corrente (aperto) e qual è il saldo... perché non riesco a trovarlo da solo.

Vedere qui: https://docs.mql4.com/ru/common/Comment Lavorare!
 
sergeev:

vedere GetTickCount... o fare riferimento alla funzione di Windows

Grazie per la risposta. Ma non capisco bene come usarlo, restituisce il tempo dall'inizio del sistema (cioè dalla sua chiamata come lo capisco)...

O dovrebbe essere chiamato prima del tick e poi sottrarre il risultato?

FileSeek(ExtHandle,0,SEEK_END);

time=GetTickCount();

FileWrite(ExtHandle, TimeToStr(TimeCurrent(), TIME_DATE | TIME_SECONDS),time - GetTickCount(),Bid, Ask, iVolume(Symbol(), NULL, 0));

 

Ciao amici del forum!

Ho problemi con questo, qualcuno può aiutarmi? Grazie in anticipo. Il problema è questo. Se voglio piazzare un nuovo ordine pendente, nel mio Expert Advisor, devo specificare la condizione. La condizione è il tempo di trasformazione dell'ordine pendente nell'ordine a mercato, cioè, abbiamo un ordine SellStop, appena diventa un ordine a mercato, dovremmo aprire un nuovo ordine SellStop a una certa distanza, ecc.

Grazie per la vostra considerazione.

P.S. forse potete consigliarmi dove cercare.

 
Gerkl:

Ciao amici del forum!

Ho problemi con questo, qualcuno può aiutarmi? Grazie in anticipo. Il problema è questo. Se voglio piazzare un nuovo ordine pendente, devo indicarlo in un Expert Advisor. La condizione è il tempo di trasformazione dell'ordine pendente nell'ordine a mercato, cioè, supponiamo di avere un ordine SellStop, non appena diventa un ordine a mercato, dovremmo aprire un nuovo ordine SellStop a una certa distanza, ecc.

Grazie per la vostra considerazione.

P.S. forse puoi dirmi dove cercare.

per esempio in questo modo:

quando si effettua un ordine lo si memorizza in una variabile globale:

int ticket = 0;

ticket = OrderSend(...);

e poi controllare se si è aperto o no:

if (ticket > 0)
{
   if (OrderSelect(ticket, SELECT_BY_TICKET);        // выбираем ордер
      if ((OrderType() == OP_BUY) || (OrderType() == OP_SELL))     // проверяем его тип
      {
         // действия которые нужно выполнить после открытия ордера
      }
}
 
Grazie per il consiglio, faremo una prova.
ilunga:

come questo:

Quando si effettua un ordine, si memorizza l'ordine in una variabile globale:

e poi controllare se si è aperto o no:

 
Gerkl:

Ciao amici del forum!

Ho problemi con questo, qualcuno può aiutarmi? Grazie in anticipo. Il problema è questo. Se voglio piazzare un nuovo ordine pendente, nel mio Expert Advisor, devo specificare la condizione. La condizione è il tempo di trasformazione dell'ordine pendente nell'ordine a mercato, cioè, abbiamo un ordine SellStop, appena diventa un ordine a mercato, dovremmo aprire un nuovo ordine SellStop a una certa distanza, ecc.

Grazie per la vostra considerazione.

P.S. forse potete consigliarmi dove cercare.


Se puoi avere solo 1 ordine SellStop aperto, allora passa attraverso tutti gli ordini aperti

while (N<=OrdersTotal())
 {
 SelectOrder(OrdersTotal()-1+N,Select by pos, mode_trades);
 if (OrderType==OP_SELLLIMIT)
  {
  M=0;//типа SELLLIMIT найден
  }else
  {
  M=1;//selllimit не найден
  }
 N++;
 }
if M==1
 {
 OrderSend(...OP_SELLLIMIT...);
 }

Così, ci sono un sacco di errori - sono di fretta, spero che abbiate capito il punto.

 
Potete dirmi come simulare la pressione del tasto Home per caricare rapidamente i dati storici?