Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 431

 
Artyom Trishkin:

È possibile. Ma fate attenzione. Per una posizione aperta, restituisce il prezzo di chiusura. Corrispondentemente: per comprare - Bid, per vendere - Ask

o. Non sapevo che potesse essere usato in questo modo.

Pensavo che OrderClosePrice() potesse essere preso solo da una posizione chiusa.

l'aiuto non dice nulla al riguardo)
 
igrok333:
o. Non sapevo che si potesse usare così.

Pensavo che OrderClosePrice() potesse essere preso solo da una transazione chiusa.

non c'è nulla al riguardo nella guida)

Caratteristica non documentata. Ma ci sono alcune convenzioni. Al momento non ricordo quali. Devi chiedere ad Alexey @Alexey Viktorov - ha scritto su di loro recentemente.

 
Artyom Trishkin:

Una possibilità non documentata. Ma ci sono alcune convenzioni. Non riesco a ricordare quali al momento. Chiedete ad Alexey @Alexey Viktorov - ne ha scritto di recente.

E questo codice?

La variabile non viene avviata da zero immediatamente?

 void zakritj_vse_sdelki()
 {
 bool pr;
 for (int i=OrdersTotal()-1; i>=0; i--)       
   {                                        
   if(OrderSelect(i,SELECT_BY_POS)==true)
      {   
         if (OrderType()==OP_BUY)    pr=OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(),MODE_BID), 30 );                              
         if (OrderType()==OP_SELL)   pr=OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(),MODE_ASK), 30 );
         
         if (pr==false) Print("закрытие ордера ", OrderSymbol() ," завершилось с ошибкой #",GetLastError());
         if (pr==true) Print("ордер ", OrderSymbol() , " ЗАКРЫТ");
       }
    }
  } 
 
igrok333:
E questo codice?

La variabile non è immediatamente inizializzata con zero?

Non fate affidamento sulle impostazioni predefinite. È meglio preoccuparsi del suo valore quando si dichiara una variabile locale: bool pr=false;

In generale, naturalmente, non è necessario impostarlo lì. È sufficiente controllare cosa restituisce la funzione:

se(!OrderClose()) Stampa("Bummer");

 

Come faccio a conoscere il prezzo di Fibonacci fan di una candela precedente? MQL5
ObjectGetValueByTime() non funziona, restituisce 0, poi alta, poi bassa candela

 

@ArtyomTrishkin

Buon pomeriggio. Per favore aiutatemi, ditemi cosa c'è che non va nel mio indicatore. Non capisco perché non disegna proprio nulla.

https://www.mql5.com/ru/forum/224805#comment_6372281

File:
indicator.ZIP  21 kb
probability.zip  50 kb
 
Artyom Trishkin:

Questa è una caratteristica non documentata. Ma ci sono alcune convenzioni. Al momento non ricordo quali. Devo chiedere ad Alexey @Alexey Viktorov - ha scritto su di loro recentemente.

È stato molto tempo fa... ma è riuscito comunque a trovarlo. Renat spiega in termini chiari perché è indesiderabile. Ma secondo me, non è così male. Il problema può verificarsi quando riceviamo un requote alla chiusura dell'ordine. Se impostiamo il prezzo Ask o Bid nella richiesta, possiamo sempre aggiornare il prezzo e riprovare. E nel caso di specificare il prezzo di chiusura OrderClosePrice(), dovremo selezionare l'ordine ripetutamente per aggiornare i dati dell'ordine.

Conclusione: se non puoi, ma ne hai davvero bisogno, puoi farlo.

Применение функция OrderClosePrice() к открытым ордерам
Применение функция OrderClosePrice() к открытым ордерам
  • 2006.09.11
  • www.mql5.com
Вопрос к разработчикам: Корректно ли использование данной конструкции: OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),0,CLR_NONE) Проверка...
 

Per favore, consigliatemi! Leggo i dati dal file CSV, compresa la colonna con il prezzo con il separatore di posto ". (1.22426) tramite FileReadString(handle), poi tramite la funzione StrToDouble, tutto è OK. Ma c'è anche una colonna con il prezzo, ma è già delimitata da "," (1,22426) e StrToDouble non riesce a leggerla. Cosa fare, se non c'è la possibilità di cambiare la virgola in punto nel CSV stesso?

 
WinProject:

Per favore, consigliatemi! Leggo dati da un file CSV, compresa una colonna con un prezzo con un separatore di luogo ". (1.22426) tramite FileReadString(handle), poi tramite la funzione StrToDouble, tutto è OK. Ma c'è una colonna con il prezzo che è già separata da "," (1,22426) e StrToDouble non riesce a leggerla. Cosa posso fare se non posso cambiare la virgola in un punto in CSV?


FileReadString


e poi potete cambiarlo da una virgola a un punto:


StringReplace

Sostituisce tutte le sottostringhe trovate nella stringa con una data sequenza di caratteri.

intStringReplace(
stringa&str,//modello in cui verrà eseguita la sostituzione.
const stringfind,// cercasi sottostringa
const string replacement// sottostringa da sostituire
);

 
Vladislav Andruschenko:

FileReadString


e poi si può passare da una virgola a un punto fermo:


StringReplace

Sostituisce tutte le sottostringhe trovate nella stringa con una data sequenza di caratteri.

intStringReplace(
stringa&str,// stringa da sostituire
const stringfind,// cercasi sottostringa
const string replacement// sottostringa da sostituire
);


Grazie!) , variabile Cena=FileReadString(handle); inserisco nella funzione Separator=StringReplace(Sepa,",","."); scrive errore "conversione implicita da numero a stringa" -

non vuole leggere il valore con il separatore "," (1,22426) come una stringa, e StringReplace non funziona. O sto sbagliando?