Il consigliere è adatto alla vita reale? - pagina 32

 
Quando si verifica questa condizione, l'ordine sarà sicuramente nell'area bloccata.
 
FOReignEXchange:
Sono così fottutamente stupido. Ho dimenticato di dire la cosa più importante. Tutto funziona bene nel tester. Questo è il problema. Se l'ordine non venisse cancellato nel tester, non mi preoccuperei. Ma non viene cancellato nell'account reale e viene cancellato nel tester se la visualizzazione viene attivata dopo un accordo. Ecco perché penso che sembri una specie di bug nel linguaggio. Ho l'impressione che non possa rimuovere molti dati dall'ordine selezionato. Non è la prima volta che incontro questo problema. Per essere più precisi, lo incontro continuamente. Tutto va bene nel tester, ma non nella vita reale.

Non ci sono bug.

La diffusione estesa è uno scherzo. E il livello di congelamento, quando viene raggiunto, l'ordine è bloccato e non si può fare nulla.

 
Bicus:

Non ci sono bug.

La diffusione estesa è uno scherzo. E il livello di congelamento, quando viene raggiunto, l'ordine è bloccato e non si può fare nulla.

Se è così, il registro mostrerebbe un errore quando si cerca di cancellarlo. Solo se gli errori sono gestiti nel codice, però.
 
OnGoing:
Se fosse così, scriverebbe un errore nei registri quando si cerca di cancellare. Solo se gli errori sono gestiti nel codice, però.
Il tester sta probabilmente gestendo una candela nulla, senza dubbio.
 
paukas:
Il tester sta molto probabilmente maneggiando una candela zero, non c'è dubbio.
O forse il server ha una perdita di ping, autore, prova con un broker normale.
 
Bicus:

Non ci sono bug.

La diffusione estesa è uno scherzo. E il livello di congelamento, quando viene raggiunto, l'ordine viene bloccato e non si può fare nulla.


Non ci sono errori nel registro. E tanto più che tali casi si verificano per lo più di giorno durante la media volatilità. Ieri due ordini non sono stati cancellati dopo un forte movimento, circa 10 minuti dopo, quando tutto si è calmato più o meno. E al momento di questa mossa sull'Euro, tutto sembrava funzionare, tranne il caso in cui sono apparsi degli errori nel log.
 
paukas:
Il tester sta molto probabilmente maneggiando una candela zero, non c'è dubbio.

Cosa intende per zero?
 
FOReignEXchange:

Come si fa a capire lo zero?
La barra attuale è in condizioni. Il tester lo vede come già completato. E l'effettivo cloze alto e basso non è ancora noto, solo l'opener.
 
Bicus:

Non ci sono bug.

La diffusione estesa è uno scherzo. E il livello di congelamento, quando viene raggiunto, l'ordine è bloccato e non si può fare nulla.


Lo spread è sempre fisso. Non l'ho mai visto aumentare o diminuire.
 
FOReignEXchange:

Non ci sono errori nel registro. Inoltre, questi casi accadono di solito a metà giornata, quando la volatilità è moderata. Ieri due ordini non sono stati cancellati dopo il forte movimento, circa 10 minuti dopo quando tutto si è calmato. E al momento di questa mossa sull'Euro, tutto sembrava funzionare, tranne il caso in cui sono apparsi degli errori nel log.
if (//Тут условие//)
   {
   if (OrderSelect(ticket_buy,SELECT_BY_TICKET)==true)
     {
     if (OrderType() == OP_BUYSTOP && Ask > (OrderOpenPrice() - 4 * Point)) 
        {
        i=0;
        while (i<10)
              {
              if (i>0) Sleep(500);      
              RefreshRates(); OrderDelete(ticket_buy); 
              err=GetLastError();
              if (err==0)
                 {
                 ticket_buy=0; return;
                 }
              i++;
              }
        }
     }
   }

Quindi avete un ordine di acquisto. Poi si guarda quando il prezzo si avvicina e si cerca di rimuoverlo. Imho, ma si tratta del livello di congelamento. Provate a riscrivere il codice in questo modo:

if (//Тут условие//)
   {
   if (OrderSelect(ticket_buy,SELECT_BY_TICKET)==true)
     {
     if (OrderType() == OP_BUYSTOP)
        {
         Print ("Уровень заморозки: ", MarketInfo (Symbol(), MODE_FREEZELEVEL), ", Ask: ", Ask);
         if (Ask > (OrderOpenPrice() - 4 * Point)) 
         {Print ("Зашли в условие");
           i=0;
           while (i<10)
              {
              if (i>0) Sleep(500);      
              RefreshRates(); OrderDelete(ticket_buy); 
              err=GetLastError();
              if (err==0)
                 {
                 ticket_buy=0; return;
                 }
              i++;
              }
          } 
        }
     }
   }

E francamente mi sembra strano cancellare un ordine solo quando il prezzo è vicino.