Errore #1 quando si modificano gli ordini - pagina 6

 
tara:
Come hai votato?
Oggi era fresco (+15), quindi sono uscito con i vestiti addosso. E non ho toccato nulla perché non mi riguardava.
 
Akella ...
 
tara:
Akella...

Non essere presuntuoso! Cosa vuoi dire?

 
borilunad:

Tutti i controlli sono fatti prima del ciclo, con condizioni relative ad ogni tipo e una chiamata a questa funzione, che controlla solo gli errori in Modify():

Per qualsiasi altra cosa, chiedete pure, ma ora vado a cena. ;)

Boris, Grazie, naturalmente per l'aiuto. Ma si è scoperto che la mia cimice era sepolta nel posto sbagliato. Era in un altro posto. Dopo l'invio dell'ordine nello stesso metodo di invio dell'ordine c'è stata una modifica, e poi, nello stesso tick, la modifica di un'altra condizione. Quindi, quando l'ordine è stato aperto, c'erano errori su quella spunta. E non ci sono stati errori in altri momenti.

Se andiamo oltre, la funzione di controllo di Stop Loss e Freefall + correzione del prezzo lì, se le condizioni non sono assolutamente osservate, è però corretta, ma la curva del compilatore non vuole gestirla correttamente per qualche motivo. Stampo tutto, riceve tutto come dovrebbe, un livello più in alto tutto è anche chiaro. Ma nessun risultato. Ho segato quella funzione in due parti e ora tutto funziona.

Certo, non mi piace tutta questa cazzo di curvatura, ma me ne farò una ragione per ora...

 
hoz:

Boris, grazie, naturalmente, per il tuo aiuto. Ma, in realtà, si è scoperto che avevo il posto sbagliato per essere sepolto. Era in un altro posto. Dopo l'invio dell'ordine nello stesso metodo di invio dell'ordine c'è stata una modifica, e poi, sullo stesso tick, la modifica di un'altra condizione. Quindi, quando l'ordine è stato aperto, c'erano errori su quella spunta. E non ci sono stati errori in altri momenti.

Se andiamo oltre, la funzione di controllo di Stop Loss e Freefall + correzione del prezzo lì, se le condizioni non sono assolutamente osservate, è però corretta, ma la curva del compilatore non vuole gestirla correttamente per qualche motivo. Stampo tutto, riceve tutto come dovrebbe, un livello più in alto tutto è anche chiaro. Ma non ha ottenuto alcun risultato. Ho segato quella funzione in due parti e ora funziona.

Certo, non mi piace tutta questa cazzo di curvatura, ma me ne farò una ragione per ora...

Prego! Neanche io ho tutto in ordine! Finalmente ho finito un altro EA. Ho provato tutto il giorno e finalmente si lega correttamente solo ora. Avrò di nuovo delle sorprese su Real. La cosa principale è la persistenza, la pazienza e la perseveranza!
 
https://forum.mql4.com/ru/65622
 
azfaraon:
https://forum.mql4.com/ru/65622
Vi consiglio di contattare il professore stesso! Tu vuoi cambiare la logica del suo sistema, e nessuno lo farà meglio di lui, ed è improbabile che tu trovi qualcuno disposto a pasticciare con il codice di qualcun altro, specialmente, molto probabilmente obsoleto, e per "sicurezza" da una guardia di sicurezza senza titolo!
 

Boris, il problema è che la tua funzione non tiene conto di un certo numero di fattori. Per esempio, se un tradewolf è permesso o meno... ecc. Ho tali stringhe nella mia funzione di modifica:

   while (IsTradeAllowed() == true)
      {
         if (!IsExpertEnabled() || IsStopped() || li_Cnt > 200)
         {
            CLogs.WriteLog (StringConcatenate ("Error: Trying to send order ", GetNameOP (fi_Type), " | Price: ", DToS (fd_Price), " NOT IsTradeContextBusy"));

            if (!IsExpertEnabled())
            {
               CLogs.WriteLog ("Permit ExpertEnabled !!!");
            }
            return (-1);
         }

Questo è per esempio. Quindi il mio punto è che la brevità non è sempre conveniente. Dopo tutto, questi controlli sono comunque presenti nel torrent reale. Allora perché non metterli nella scatola nera?

e non pensare più a loro? È anche più facile così...

È più semplice solo se hai una piattaforma adeguata. Nel nostro caso, non è l'opzione migliore. Ma è possibile trovare una specie di via di mezzo. Non sono codici molto lunghi, ma nemmeno vuoti.

 
hoz:

Boris, il problema è che la tua funzione non tiene conto di un certo numero di fattori. Per esempio, se un tradewolf è permesso o meno... ecc. Ho tali stringhe nella mia funzione di modifica:

Questo è per esempio. Quindi il mio punto è che la brevità non è sempre conveniente. Dopo tutto, questi controlli sono comunque presenti nel torrent reale. Allora perché non metterli nella scatola nera?

e non pensare più a loro? È anche più facile così...

È più semplice solo se hai una piattaforma adeguata. Nel nostro caso, non è l'opzione migliore. Ma è possibile trovare una specie di via di mezzo. Non sono codici molto lunghi, ma nemmeno vuoti.

Victor, ho un controllo per la risoluzione del trade prima di aprire una posizione, e anche un controllo per l'Equity sufficiente e molte altre cose, ma all'inizio, non nelle funzioni! Allora perché controllare alla modifica?
 
borilunad:
Victor, ho un controllo per consentire il trading prima di aprire una posizione, così come un controllo per il capitale sufficiente e molte altre cose, ma all'inizio, non nella funzione! Allora perché controllare alla modifica?

Boris, è semplice.

In primo luogo, in questo caso non lo dimenticherete in futuro perché questo controllo sarà sempre presente.

In secondo luogo, questo controllo richiede così poco tempo che non darà alcuna ottimizzazione del codice e non accelererà il processo. Cioè, o spuntare "Permesso di commerciare" ed entrare nella funzione, o entrare e spuntare "Permesso di commerciare".

In terzo luogo, sono d'accordo sull'equità, dovrebbe essere implementata separatamente. Ho fatto segare questo pezzo. E molte cose rimosse. Ora la funzione è breve in generale.

Motivazione: