Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 179

 
Izdesbyll:

Per favore, aiutatemi!

Errore 0 e l'ordine non si chiude! Cosa c'è che non va?

E perché normalizzare il prezzo a due? A Cifre è necessario. È più facile scrivere OrderClosePrice() invece di Bid
 

Può essere che abbia chiuso parte dell'ordine?

E se provi in questo modo, cosa dice?

double bylo = OrderLots();
if (OrderClose( OrderTicket(), 0.1, NormalizeDouble(Bid,2), 1 ))    Alert ("  Закрито частину лоту в розмірі 0.1 від ",bylo);
else Alert("Маємо помилку ",GetLastError());
削除済み  

artmedia70:
А почему нормализуете цену до двух? До Digits нужно. А проще писать OrderClosePrice() вместо Bid


 OrderClose( OrderTicket(), 0.1, OrderClosePrice(), 1 );  
      Alert("Маємо помилку ",GetLastError());

Ora dà errore 4051

削除済み  
ALXIMIKS:

È possibile che abbia chiuso parte dell'ordine?

E se provasse in questo modo, cosa dice?



bylo = 0,1 e non chiude il mio ordine.
削除済み  
Ora è tutto un guasto, scrivo:
 double p[100];
 p[i+1] = OrderProfit();
 if (p[i+1]>0) 
    {
      Alert("Є прибуток ордер ",i+1);
      OrderSelect(i+1,SELECT_BY_POS,MODE_TRADES); 
      Alert("Маємо помилку ",GetLastError());
      Alert("Вибрали ордер ",i+1);
      OrderClose( OrderTicket(), 0.1,  NormalizeDouble(Bid,Digits), 1 );  
      Alert("Маємо помилку ",GetLastError());
      Alert("Закрили ордер ",i+1); 

I+1 = 2 e ovunque, ma il terzo ordine ha cominciato a chiudersi.

 
Izdesbyll:

Per favore, aiutatemi!

Errore 0 e l'ordine non si chiude! Cosa c'è che non va?

Che ne dite di provare in questo modo:

    double ld_Price;
    if (OrderType() == 0) ld_Price = NormalizeDouble (Bid, Digits);
    else ld_Price = NormalizeDouble (Ask, Digits);
    OrderClose (OrderTicket(), OrderLots(), ld_Price, 2);

E non dimenticate di SUPERARE il relativo ordine prima della procedura di cancellazione!!!

 
Izdesbyll:
Ora è un problema totale, sto scrivendo:

i+1 = 2 e ovunque, ma il terzo ordine ha iniziato a chiudere.

Se raccogliete i biglietti in un array, l'ordine dovrebbe essere SELEZIONATO per TICKET, e non per la propria lista (ordine).
削除済み  
TarasBY:

Che ne dite di provare in questo modo:

E non dimenticate di ESCLUDERE il relativo ordine prima della procedura di cancellazione!!!


if (p[i+1]>0) 
    {
      Alert("Є прибуток ордер ",i+1);
      OrderSelect(i+1,SELECT_BY_POS,MODE_TRADES); 
      Alert("Маємо помилку ",GetLastError());
      Alert("Вибрали ордер ",i+1);
      double ld_Price;
      if (OrderType() == 0) ld_Price = NormalizeDouble (Bid, Digits);
      else ld_Price = NormalizeDouble (Ask, Digits);
      OrderClose (OrderTicket(), OrderLots(), ld_Price, 2);  
      Alert("Маємо помилку ",GetLastError());
      Alert("Закрили ордер ",i+1); 

Il TERZO ordine chiude GetLastError = 0, i+1=2, OrderProfit() risponde al nulla del SECONDO ordine. help.... Vorrei scrivere (OrderTicket()-1) ma ho paura che non servirà a niente

 
Izdesbyll:

Il TERZO ordine si chiude GetLastError = 0, i+1=2, OrderProfit() risponde al nulla del SECONDO ordine. help.... Vorrei scrivere (OrderTicket()-1) ma temo che non servirà a niente

non sanno leggere (a meno che, naturalmente, non ci siano numeri di biglietti nell'array p[])!

    OrderSelect (p[i+1], SELECT_BY_TICKET, MODE_TRADES); 

...In generale, è molto difficile cogliere la "stupidità" da un pezzo di codice... :)

削除済み  
Ciao, qualcuno potrebbe dirmi se c'è un tipo di blocco per chiudere tutti gli ordini (compresa la cancellazione degli ordini in sospeso) se tutti con numeri magici diversi, nell'intervallo di 1-60. Se ce n'è uno, per favore pubblicatelo. E se non è così difficile con l'istruzione dove dovrebbe essere inserito (perché è completamente verde in mql). Grazie in anticipo.

Ho dimenticato di dirvi che vorrei chiudere sulla percentuale di profitto del deposito.