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

 
Renat Akhtyamov:

Avete tradotto in inglese?

E nella scheda degli esperti è in russo?


No, tutto è di default.

 
Natalya Dzerzhinskaya:

No, tutto è di default.

nella scheda esperti si prega di guardare - gli errori sono tradotti in russo?

 
Natalya Dzerzhinskaya:

Sì, il codice funziona.

Uso int invece di bool per chiudere nel tuo codice

int chiudere;

E un biglietto è usato per tutte le chiusure di acquisto e vendita, ma questo è solo per prova. Forse a causa di questo c'è un errore perché l'acquisto è chiuso e non c'è chiusura per la vendita.

Beh, è corretto, è così che dovrebbe essere

 
Renat Akhtyamov:

nella scheda esperti, puoi controllare - gli errori sono trasmessi in russo?


Tutto viene trasmesso in inglese

 
Natalya Dzerzhinskaya:

tutto viene trasmesso in inglese

L'idea originale, secondo le vostre descrizioni, era che

Ho messo il codice nella prima pagina, alla fine della quale

if(TicketFirst>0)
{
//ну и пошло-поехало...
}

Dovevi mettere una delle 2 funzioni di chiusura in questa condizione e chiudere l'ordine trovato dal ticket (io ne ho messe due), cioè

if(TicketFirst>0)
{
                  if(OrderSelect(TicketFirst, SELECT_BY_TICKET)==true)
                  {
                     close=OrderClose(TicketFirst,OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),0,clrRed);
                     if(close<0){if(Fun_Error(GetLastError())==1)return;}
                  }
                  if(OrderSelect(TicketFirst, SELECT_BY_TICKET)==true)
                  {
                     close=OrderClose(TicketFirst,OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),0,clrBlue);
                     if(close<0){if(Fun_Error(GetLastError())==1)return;}
                  }

}

e mettere la funzione di gestione degli errori dopo tutto il codice

Inoltre ci dovrebbe essere della logica nella condizione di ingresso alla funzione di chiusura, non l'hai spiegato fino in fondo, ho scritto anche su questo.

E andrebbe bene.

Se lasciato così, lo stesso biglietto verrebbe chiuso due volte. Ci sarà un errore 4108 quando si chiude un ordine con un ticket già chiuso la prima volta.

 
Renat Akhtyamov:

Beh, è giusto, è così che deve essere

Non dovreste pensarci, ma usare help e scrivere il valore di tipo bool.

Tuttavia, potete usare int, non cambierà nulla comunque.

Eseguite lo script, potete eseguirlo 50 volte di seguito, e la variabile close non sarà mai uguale a -1. Questo significa che gli errori non saranno tradotti in nessuna lingua, nemmeno in cinese.

//+------------------------------------------------------------------+
#property version   "1.00"
#property strict
#property show_inputs

input int MyTicket = 451971753;

int close = -1;

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//закрытие по тикету, переделайте под свой

   if(OrderSelect(MyTicket,SELECT_BY_TICKET)==true)
     {
      close=OrderClose(MyTicket,OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),0,clrRed);
      if(close<0) Print("ERROR равен -1: ",close);
      if(close==0) Print("ERROR не может быть -1 НИКОГДА: ",close);
     }
  }


 
Vitaly Muzichenko:

Non dovreste pensarci, ma usare help e scrivere il valore di tipo bool.

Tuttavia, potete usare int, non cambierà nulla comunque.

Eseguite lo script, potete eseguirlo 50 volte di seguito, e la variabile close non sarà mai uguale a -1. Questo significa che gli errori non saranno tradotti in nessuna lingua, nemmeno in cinese.

Vitaly, non devi insegnarmi.

Ricordo di averti insegnato io stesso circa un anno o due fa come passare a 5 cerchi, quindi hai meno esperienza finora...

Non ne hai fatta una delle mie, ma stai dicendo...
 
Renat Akhtyamov:

Vitaly, non devi farmi la predica.

Ricordo di averti insegnato io stesso, circa un anno o due fa, come passare a un 5 cilindri, quindi hai meno esperienza per ora...

Ti ho anche fatto un esempio, non fare brutta figura!

 
Vitaly Muzichenko:

Sì, ho anche fatto un esempio, non fare brutta figura!

Non è che ne hai fatto uno con il mio, l'hai fatto a modo tuo, e dici...

Qual è la tua costruzione, comunque?

e non mi mostra la scheda degli esperti, ma il diario. Sono due grandi differenze.

L'errore nel mio caso è trasmesso dall'Expert Advisor nella scheda Expert Advisors.
 
Renat Akhtyamov:

Non hai fatto uno dei miei, ne hai fatto uno tuo, e dici...

Qual è la tua corporatura, comunque?

e non mi mostra la scheda degli esperti, ma il registro. In realtà ci sono due grandi differenze.

L'errore nel mio caso è trasmesso dall'Expert Advisor nella scheda Expert Advisors.

Ho capito, stai cercando di trollarmi.

Ok, me ne vado.

No, credo che scriverò a servicedesk e dirò loro che ho un terminale difettoso.

Motivazione: