Come implementare la chiusura delle posizioni una alla volta dopo N minuti? - pagina 3

 
Ihor Herasko:

Mi scusi. La linea:

deve essere riscritto in questo modo:


(OrderCloseTime()> 0) funziona, lo lascerò così allora

Grazie ancora))

Renat Akhtyamov:

закрытие по тикету, переделайте под свой

Si chiude anche bene, ma dopo la chiusura scrive l'errore 4108"Invalid ticket number".


 
Natalya Dzerzhinskaya:

(OrderCloseTime()> 0) funziona, lo lascerò così allora

Grazie ancora)))


Si chiude anche bene, ma dopo la chiusura dice errore 4108"Wrong ticket number".


Quindi è davvero sbagliato, non mentirà.

Guarda nella logica del tuo codice.

E si fa un solo comando per chiudere o due?

Se l'hai chiuso una volta, non c'è niente da fare per la seconda, e il ticket precedente sarà già invalido.

 
Renat Akhtyamov:

Quindi è davvero sbagliato, non mente.

Guarda nella logica del tuo codice.

Eseguite un solo comando di chiusura o due?

Se si chiude una volta, non c'è niente da fare per la seconda, e il biglietto precedente sarà già errato.


La variabile"close" del tuo codice non sarà mai inferiore a zero, leggi l'aiuto.

 
Ihor Herasko:

Punti giusti sopra. Perché ripassare tutti gli ordini se il biglietto è già noto?

È possibile chiudere gli ordini immediatamente, quando si è in eccesso.
Perché cercare il tempo? Confrontare - chiudere - prossimo.
 
Taras Slobodyanik:

la variabile "close" del vostro codice non sarà mai inferiore a zero, leggete la guida

leggete voi stessi...

-----------

Valore di ritorno

Restituisce true se la funzione è stata completata con successo o false se c'è stato un errore. Per ottenere le informazioni sull'errore è necessario chiamare GetLastError().

Коды возврата торгового сервера - Коды ошибок и предупреждений - Стандартные константы, перечисления и структуры - Справочник MQL4
Коды возврата торгового сервера - Коды ошибок и предупреждений - Стандартные константы, перечисления и структуры - Справочник MQL4
  • docs.mql4.com
GetLastError() - функция, возвращающая коды ошибок. Кодовые константы ошибок определены в файле stderror.mqh. Для вывода текстовых сообщений следует использовать функцию ErrorDescription(), определенную в файле stdlib.mqh.
 
Renat Akhtyamov:

leggete voi stessi...

-----------

Valore restituito

Restituisce true se la funzione è stata completata con successo o false in caso di errore. Per ottenere informazioni sull'errore, chiamare GetLastError().


non sai nemmeno la differenza tra i tipi di variabili)

devi imparare.

 
Taras Slobodyanik:

quindi non si conoscono nemmeno i tipi di variabili)

Dovete imparare.


Forum sul trading, sistemi di trading automatico e test di strategia

Come implementare la chiusura delle posizioni una per una dopo N-minuti?

Natalya Dzerzhinskaya, 2017.11.22 19:17


(OrderCloseTime()> 0) funziona, lo lascerò così allora

Grazie ancora)))


Si chiude anche bene, ma dopo la chiusura scrive l'errore 4108"Invalid ticket number".


Viene dal cielo o qualcosa del genere?

)

Buona fortuna per i tuoi studi!
 
Renat Akhtyamov:

Esce dal cielo o qualcosa del genere?

)

Buona fortuna per i tuoi studi!

In quali condizioni potrebbe mai funzionare, anche una volta ogni 100 anni?

                  if(OrderSelect(MyTicketBuy, SELECT_BY_TICKET)==true)
                  {
                     close=OrderClose(MyTicketBuy,OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),0,clrRed);
                     if(close<0){if(Fun_Error(GetLastError())==1)return;}
                  }
                  if(OrderSelect(MyTicketSell, SELECT_BY_TICKET)==true)
                  {
                     close=OrderClose(MyTicketSell,OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),0,clrBlue);
                     if(close<0){if(Fu n_Error(GetLastError())==1)return;}
                  }
 
Vitaly Muzichenko:

In quali condizioni potrebbe mai funzionare, anche una volta ogni 100 anni?

Beh Vitaly, non lo so...............

L'hai fatto funzionare nel tuo post......

Attenzione, la funzione è nella pagina precedente.
 
Renat Akhtyamov:

Beh Vitaly, non lo so...............

Ce l'hai nel tuo post......

Attenzione, la funzione è nella pagina precedente.

Il mio punto è chechiudere può essere solo 0 (falso) o 1 (vero), non c'è altro.

Lo stesso, per l'affidabilità è meglio scrivere:

close=OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),0,clrRed);