Chiedete! - pagina 54

 

possibile soluzione per 0 buffer:

int currentBar=0;

double lowestFG=iCustom(NULL,0, "Forex-Grail Trade Indicator",period,PRICE_CLOSE,0, currentBar);

doppio highestFG = lowestFG;

for(;currentBar<4; currentBar++) lowestFG=MathMin(lowestFG, iCustom(NULL,0, "Forex-Grail Trade Indicator",period,PRICE_CLOSE,0,currentBar));

for(currentBar=0;currentBar<4; currentBar++) highestFG =MathMax(highestFG , iCustom(NULL,0, "Forex-Grail Trade Indicator",period,PRICE_CLOSE,0,currentBar));

dovete rifare tutto da capo per il buffer # 1

 
iscuba11:
Come faccio a limitare la quantità di cifre decimali che una dichiarazione di commento mostra sul grafico. In questo momento mostra un risultato variabile come .00347892, e voglio che mostri solo .0035 (arrotondato al numero successivo)?
Apprezzo il vostro contributo! Dave

funzione IndicatoreCifre

 

Prima di tutto, vorrei ringraziare tutti voi per avermi aiutato. Credo che ora posso mettere in linea il mio nuovo EA per i test.

Ho ancora una domanda sui decimali.

La frase di commento viene generata dall'EA e non dall'indicatore. La funzione indicatordigits, credo, è usata nell'indicatore stesso e non nell'ea. Non c'è un semplice arrotondamento fino a x posti di una variabile che potrei usare. Perché rendono questo linguaggio così complicato? Anche il linguaggio di base potrebbe probabilmente fare questo!

Come sempre apprezzato, il feedback di conoscenza e saggezza è benvenuto. Per favore aiutate se potete.

Grazie mille!

 

Finalmente ho letto bene il tuo post, prova Comment(DoubleToStr(doubleVariable, 4));

 

Ecco fatto! Ora per mettere a punto e testare. Voi tutti mi avete benedetto - Grazie!

Pace e amore a tutti, nel nome di Gesù! Reverendo Dave
 

Ho bisogno di più aiuto per favore!

if(currency_decimal == 2) OpenTriggerLevel = DoubleToStr(OpenTriggerLevel,2);

Quello che sto cercando di fare è che l'EA cambi automaticamente l'OpenTriggerLevel di default da 4 posizioni decimali a 2 quando l'utente seleziona 2 (currency_decimal) da 4 nel setup dell'EA. Tale cambiamento dovrebbe avvenire su una valuta come USDJPY che è 2 decimali.

Evidentemente al compilatore non piace il secondo segno ' = ' nella dichiarazione di cui sopra.

Con continuo apprezzamento, grazie in anticipo per la vostra assistenza di input!

Dave
 

MQL4 ha predefinito la variabile Digits che corrisponde al numero di cifre decimali della coppia.

DoubleToStr(OpenTriggerLevel, Digits);

il codice è corretto, guarda errore nella definizione della variabile probabilmente.

 
asmdev:
MQL4 ha una variabile predefinita Digits che corrisponde al numero di cifre decimali della coppia.

DoubleToStr(OpenTriggerLevel, Digits);

il codice è corretto, guarda errore nella definizione della variabile probabilmente.

Ho provato questo, ma visualizza ancora OpenTriggerLevel come .0004 invece di .04:

if(currency_decimal == 2) DoubleToStr(OpenTriggerLevel,2);

Ancora confuso?

 
iscuba11:
if(currency_decimal == 2) OpenTriggerLevel = DoubleToStr(OpenTriggerLevel,2);[/PHP]

What I am attempting to do is have the EA automatically change the default OpenTriggerLevel from 4 decimal places to 2 when the user selects 2 (currency_decimal) from 4 in the EA setup. Such a change would have to take place on a currency like USDJPY which is 2 decimal places.

Evidently the compiler does not like the second ' = ' sign in the above statement.

With continued appreciation, Thanks in Advance for your input assistance!

Dave

Il problema di questa dichiarazione è che la variabile 'OpenTriggerLevel' è di tipo 'double', mentre la funzione restituisce una 'string'. Quindi, mentre il codice è sintatticamente corretto, è semanticamente sbagliato, e credo che questo sia il motivo per cui il compilatore si lamenta.

Se volete portare la stringa in una variabile, avrete bisogno di una variabile per farlo. Altrimenti puoi usare la funzione 'DoubleToStr' all'interno dell'argomento 'Comment' per sostituire dove attualmente dice 'OpenTriggerLevel'. Lì potrebbe dire

[PHP]DoubleToStr( OpenTriggerLevel, currency_decimal )

e non avreste bisogno della dichiarazione 'if ...'.

 

qualcuno sa come ottenere il totale di ogni acquisto, vendita, buystop, sellstop, buylimit e sellstop dallo script? grazie