Errori, bug, domande - pagina 647

 
Grazie per il messaggio, abbiamo corretto questo posto. Lo testeremo per conto nostro.
 

Compagni programmatori! Abbiamo bisogno del vostro aiuto.


Ho bisogno di fare una modifica nel codice MT4. Il Martin Expert Advisor mette in ordine una serie di ordini attraverso il delta specificato e, a partire da un certo numero di trade (per esempio, il 4° trade), inizia ad aumentare il delta di un coefficiente.
Ho bisogno che questo delta non si prolunghi all'infinito fino alla fine di tutta la serie. Ma solo fino a un certo livello, che abbiamo impostato nelle impostazioni (per esempio Max_delta = 50 punti). E quando delta diventa >= Max_delta, prenderebbe questo valore continuamente fino alla fine della serie. E poi si ricomincerebbe dall'inizio.

Ecco il codice del programma dove il delta viene allungato:


int Delta(int OrdNum){
se(delta_di_ordine_ini>1){
se(OrdNum>Start_order_delta){
int p=OrdNum-Start_order_delta;
ritorno(Take_profit*MathPow(Delta_exp,p))
}
}
ritorno(Take_profit);
}

Per favore aiutatemi a introdurre un vincolo delta in questo codice.
 

Proprietà CHART_BRING_TO_TOP

Può essere impostato, ma il valore attuale non può essere determinato.

ChartSetInteger(0,CHART_BRING_TO_TOP,true) - funziona.

ChartGetInteger(0,CHART_BRING_TO_TOP,0) - non funziona.

 
MoneyJinn:

Proprietà CHART_BRING_TO_TOP

Può essere impostato, ma il valore attuale non può essere determinato.

ChartSetInteger(0,CHART_BRING_TO_TOP,true) - funziona.

ChartGetInteger(0,CHART_BRING_TO_TOP,0) - non funziona.

Beh, tutto ha un senso. La chiamata ha tre parametri, o mi sbaglio?

Usando la seconda opzione otteniamo solo il valore impostato su false, non il valore corrente.

Per ottenere il valore - abbiamo bisogno di quattro parametri (l'ultimo conterrà il valore attuale).

bool  ChartGetInteger(
   long    chart_id,     // идентификатор графика
   int     prop_id,      // идентификатор свойства
   int     sub_window,      // номер подокна
   long&   long_var      // сюда примем значение свойства
   );
 
Interesting:

Beh, questo ha senso. La chiamata ha tre parametri, o mi sbaglio?

Usando la seconda opzione otteniamo solo il valore SET di false, non definiamo il valore attuale.

Per ottenere il valore - abbiamo bisogno di quattro parametri (l'ultimo conterrà il valore corrente).


Sì, ti sbagli. Sono ammesse forme multiple di inserimento di ChartGetInteger.

Ma indipendentemente dalla forma di record ChartGetIntegerè impossibile ottenere il valore attuale della proprietàCHART_BRING_TO_TOP.

 
MoneyJinn:

Sono possibili diverse forme di inserimento di ChartGetInteger.

Ma indipendentemente dalla forma di inserimento di ChartGetInteger,non è possibile ottenere il valore attuale della proprietàCHART_BRING_TO_TOP.

E qual è il valore restituito dalla seconda variante della funzione ChartGetInteger (4 parametri)? E il codice di errore?

 
Yedelkin:

E quale valore restituisce la seconda variante della funzione ChartGetInteger (4 parametri)? E il codice di errore?

Valore 0; errore 4109 - cioè non esiste tale proprietà.
 
MoneyJinn:
Valore 0; errore 4109 - cioè non esiste tale proprietà.

Secondo il manuale, questa proprietà semplicemente non è supportata:

Per la seconda chiamata, restituisce true se questa proprietà è supportata e il valore è stato messo nella variabile long_var, altrimenti restituisce false.

Il codice di errore dice la stessa cosa. La questione del perché la proprietà CHART_BRING_TO_TOP del grafico non è supportata è a livello dello sviluppatore. E se la proprietà è effettivamente supportata, allora la domanda è di nuovo al loro livello: perché in tal caso la funzione ChartGetInteger restituisce false?

 
Perché l'evento OnTick non accade nel tester della strategia. Costruire 586. All'inizio ho pensato che ci fosse un errore nel mio programma. Avviato Moving Average.mq5 per il debug. Imposta un punto di interruzione al primo operatore dell'evento OnTick. Non ha visto alcuna reazione entro un'ora.
 
tor30515:

Perché l'evento OnTick non accade nel tester della strategia. Costruire 586. All'inizio ho pensato che ci fosse un errore nel mio programma. Avviato Moving Average.mq5 per il debug. Imposta un punto di interruzione al primo operatore dell'evento OnTick. Non ho visto alcuna reazione entro un'ora.

E il tester viene scaricato per il debug?