Errori, bug, domande - pagina 1018

 
A100:
Non funziona in orari non di trading. Cosa c'è in mezzo?

Sei sicuro dei parametri?

Entrambi gli esempi sembrano sbagliati:

ChartGetInteger( chart_ID, CHART_BRING_TO_TOP, 0, true )  - последний параметр должен быть long&, а не bool
ChartGetInteger( chart_ID, CHART_BRING_TO_TOP, true )     - последний параметр должен быть номер подокна, а не bool

Sembra confuso con ChartSetInteger?

 
Renat:

Sei sicuro dei parametri?

Entrambi gli esempi sembrano sbagliati:

Sembra confuso con ChartSetInteger?

Sì, scusate, tradotto male dal mio codice - non funziona in tempo di non trading
bool bringToTop = true;
ChartSetInteger( chart_ID, CHART_BRING_TO_TOP, 0, bringToTop ) 
ChartSetInteger( chart_ID, CHART_BRING_TO_TOP, true )
//этим хотел показать что пробовал оба варианта
ChartGetInteger e non dovrebbe funzionare, perché CHART_BRING_TO_TOP- solo scrittura.
 

Sto facendo un ritracciamento (con una pausa di 5000) di tutti i grafici:

a) (ieri) giorno di non trading - nessuna reazione - quando si scarica lo script va al 1° grafico, anche se lo script non è stato avviato da esso

b) ora - tutto funziona correttamente

Se necessario - allegherò il codice - un semplice ciclo - GetLastError - nessun errore

 

Non so quanto sia importante, ma

ChartSetInteger( chart_ID, CHART_BRING_TO_TOP, true )
ChartSetInteger( chart_ID, CHART_BRING_TO_TOP, false )
ora (al momento del trading) funziona allo stesso modo - il grafico è posto sopra gli altri
 

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

Bug, bug, domande

Renat, 2013.07.22 09:22

Sei sicuro dei parametri?

Entrambi gli esempi sembrano sbagliati:

ChartGetInteger( chart_ID, CHART_BRING_TO_TOP, 0, true )  - последний параметр должен быть long&, а не bool
ChartGetInteger( chart_ID, CHART_BRING_TO_TOP, true )     - последний параметр должен быть номер подокна, а не bool

Sembra confuso con ChartSetInteger?

Se il mio errore è confermato e le modifiche saranno fatte - chiedo anche di considerare di rendere CHART_BRING_TO_TOP non solo in scrittura, ma anche in lettura come hai scritto attraverso ChartGetInteger.
long ChartID()
non può aiutare in questo caso, poiché quest'ultimo a rigore non restituisce la selezione corrente, ma quella da cui lo script è in esecuzione. E nel processo di esecuzione dello script, l'utente può cambiare quello attuale.
 
MetaDriver:

Solo tanti e tanti .mqh e un eseguibile .mq5, nient'altro.

Permettetemi di aggiungere. Il vantaggio dell'approccio assoluto e modulare rispetto a quello relativo è che nel caso di
Print( __FUNCTION__, __FILE__ )

Se c'è solo un modulo .ex5, non è chiaro quale cercare tra i molti moduli .mqh, il che fa una grande differenza data la grande dimensione del codice.

Inoltre, si prega di chiedere agli sviluppatori:

È possibile introdurre un'ulteriore macrosostituzione predefinita__MODULE__ analoga a __FILE__ - solo senza estensione .mq5?

Questo è necessario per compilare un'espressione della seguente forma: __MODULE__::f()

Questo è spesso usato durante lo sviluppo per cambiare i nomi dei file e trasferire funzioni da un modulo all'altro

 
A100:
Aggiungo. Il vantaggio dell'approccio modulare assoluto, rispetto a quello relativo, è che quando emerge da

non è chiaro in quale modulo cercare la funzione, e se c'è solo un .ex5, non è chiaro in quale .mqh, il che fa una grande differenza quando il codice è grande.

Stai delirando, fratello.

h1.mqh :

string GetH1()
{
  return  "Файл: "+__FILE__+"   Функция: "+__FUNCTION__;
}

h2.mqh :

string GetH2()
{
  return  "Файл: "+__FILE__+"   Функция: "+__FUNCTION__;
}

PrintTest, mq5 :

#include "h1.mqh"
#include "h2.mqh"

void OnStart()
  {
   Print( "Файл: "+__FILE__+"   Функция: "+__FUNCTION__);
   Print(GetH1());
   Print(GetH2());
  }
//+------------------------------------------------------------------+

Risultato:

2013.07.22 14:40:17 PrintTest (EURUSD,M1) File: h2.mqh Funzione: GetH2
2013.07.22 14:40:17 PrintTest (EURUSD,M1) File: h1.mqh Funzione: GetH1
2013.07.22 14:40:17 PrintTest (EURUSD,M1) File: PrintTest.mq5 Funzione : OnStart

---

Si prega di trarre una conclusione: "Prima di sviluppare grandiose definizioni annidate, è una buona idea capire come funziona effettivamente il preprocessore".

Buona fortuna a voi!

File:
h1.mqh  1 kb
h2.mqh  1 kb
PrintTest.mq5  1 kb
 
MetaDriver:

Concludete: "Prima di progettare grandiose definizioni multinestrate, è una buona idea capire come funziona effettivamente il preprocessore.

Dedica un po' di tempo e di sforzi a questo. Devi imparare di più sul cantiere e sulle proprietà dei materiali per costruire strutture forti e confortevoli.

La vostra mente è molto sofisticata e riflessiva, ma alimentando le vostre conclusioni affrettate nel suo input, siete destinati a giungere spesso a decisioni sbagliate.

 
MetaDriver:

La vostra mente è molto sofisticata e riflessiva, ma dandole in pasto le vostre conclusioni affrettate, siete destinati a giungere spesso a decisioni sbagliate.

Posso unirmi al tuo Padawan? :)
 
TheXpert:
Posso unirmi al tuo Padawan? :)

Ci sono dei soldi? :))

--

Ma non scherziamo:

È un peccato che non ci siano quasi thread su questo forum dedicati alla strutturazione sensata dei programmi. Una struttura armoniosa è la chiave per lo sviluppo senza problemi di grandi sistemi.

Come incoraggiare la gente a discutere di queste cose?

Motivazione: