Chiedete! - pagina 175

 

Ah questo è un metodo molto migliore. Stavo giocherellando con if (Ask == OrderTakeProfit()) {..} che scorre in bicicletta attraverso ogni ordine aperto, il che credo fosse un po' difettoso durante il back testing. Grazie!

 

Come si commenta un numero che commenterà una stringa?

stringa 2;

2="EURUSD";

COME FACCIO A CREARE UN COMMENTO DOVE 2 COMMENTERÀ COME EURUSD SUL GRAFICO?

PER FAVORE AIUTATEMI - CONFUSO!

DAVE

 

Non è possibile farlo in mql.

In mql il nome di una variabile non può essere un numero né può iniziare con un numero, quindi l'unica soluzione è aggiungere qualche lettera, underscore o qualche carattere consentito davanti al "2"

1Dave7:
stringa 2;

2="EURUSD";

COME FACCIO A CREARE UN COMMENTO DOVE 2 COMMENTERÀ COME EURUSD SUL GRAFICO?

PER FAVORE AIUTATEMI - CONFUSO!

DAVE
 

Come faccio a fare un array in ordine decrescente su quanto segue:

double D0=0,D1=0,D2=0,D3=0,D4=0,D5=0,D6=0,D7=0);

D0=iCustom(NULL,0, "XYZ",0,0);

D1=iCustom(NULL,0, "XYZ",1,0);

D2=iCustom(NULL,0, "XYZ",2,0);

D3=iCustom(NULL,0, "XYZ",3,0);

D4=iCustom(NULL,0, "XYZ",4,0);

D5=iCustom(NULL,0, "XYZ",5,0);

D6=iCustom(NULL,0, "XYZ",6,0);

D7=iCustom(NULL,0, "XYZ",7,0);

COME FACCIO A INIZIALIZZARE UN ARRAY DISCENDENTE DEI VALORI DI (D0,D1,D2,D3,D4,D5,D6,D7)? COME FACCIO A INDIRIZZARE I RISULTATI DELL'ARRAY NEL MIO EA?

APPREZZO IL VOSTRO AIUTO - SARÒ MOLTO FELICE SE RIESCO A SUPERARE QUESTO COLLO DI BOTTIGLIA!

Dave

 

Se avete bisogno solo dei valori ordinati, potete fare qualcosa del genere:

double array[8];

array[0]=iCustom(NULL,0,"XYZ",0,0);

array[1]=iCustom(NULL,0,"XYZ",1,0);

array[2]=iCustom(NULL,0,"XYZ",2,0);

array[3]=iCustom(NULL,0,"XYZ",3,0);

array[4]=iCustom(NULL,0,"XYZ",4,0);

array[5]=iCustom(NULL,0,"XYZ",5,0);

array[6]=iCustom(NULL,0,"XYZ",6,0);

array[7]=iCustom(NULL,0,"XYZ",7,0);

ArraySort(array,WHOLE_ARRAY,0,MODE_ASCEND);

e poi i valori ordinati saranno nell'array "array"

1Dave7:
double D0=0,D1=0,D2=0,D3=0,D4=0,D5=0,D6=0,D7=0);

D0=iCustom(NULL,0, "XYZ",0,0);

D1=iCustom(NULL,0, "XYZ",1,0);

D2=iCustom(NULL,0, "XYZ",2,0);

D3=iCustom(NULL,0, "XYZ",3,0);

D4=iCustom(NULL,0, "XYZ",4,0);

D5=iCustom(NULL,0, "XYZ",5,0);

D6=iCustom(NULL,0, "XYZ",6,0);

D7=iCustom(NULL,0, "XYZ",7,0);

COME FACCIO A INIZIALIZZARE UN ARRAY DISCENDENTE DEI VALORI DI (D0,D1,D2,D3,D4,D5,D6,D7)? COME FACCIO A INDIRIZZARE I RISULTATI DELL'ARRAY NEL MIO EA?

APPREZZO IL VOSTRO AIUTO - SARÒ MOLTO FELICE SE RIESCO A SUPERARE QUESTO COLLO DI BOTTIGLIA!

Dave
 
mladen:
Se hai bisogno solo dei valori ordinati, puoi fare qualcosa del genere:
double array[8];

array[0]=iCustom(NULL,0,"XYZ",0,0);

array[1]=iCustom(NULL,0,"XYZ",1,0);

array[2]=iCustom(NULL,0,"XYZ",2,0);

array[3]=iCustom(NULL,0,"XYZ",3,0);

array[4]=iCustom(NULL,0,"XYZ",4,0);

array[5]=iCustom(NULL,0,"XYZ",5,0);

array[6]=iCustom(NULL,0,"XYZ",6,0);

array[7]=iCustom(NULL,0,"XYZ",7,0);

ArraySort(array,WHOLE_ARRAY,0,MODE_ASCEND);

e poi i valori ordinati saranno nell'array "array"

WOW!!!!!!!!!!!! Non l'avrei mai capito - Grazie mille!!!

 

Per favore aiutatemi a far funzionare questo array - Perplesso!!!

[/PHP] EUR=(iMA("EURUSD",0,PerAvr,0,MODE_LWMA,PRICE_CLOSE,i)-iMA("EURUSD",0,PerAvr,0,MODE_LWMA,PRICE_CLOSE,i+Delta)); //RED

GBP=(iMA("GBPUSD",0,PerAvr,0,MODE_LWMA,PRICE_CLOSE,i)-iMA("GBPUSD",0,PerAvr,0,MODE_LWMA,PRICE_CLOSE,i+Delta)); //LIME

double array[7];

array[0]=iCustom(NULL,0,"EURUSD",0,0);

array[1]=iCustom(NULL,0,"GBPUSD",1,0);

array[2]=iCustom(NULL,0,"AUDUSD",2,0);

array[3]=iCustom(NULL,0,"USDCHF",3,0);

array[4]=iCustom(NULL,0,"USDJPY",4,0);

array[5]=iCustom(NULL,0,"NZDUSD",5,0);

array[6]=iCustom(NULL,0,"USDCAD",6,0);

ArraySort(array,WHOLE_ARRAY,0,MODE_ASCEND);

a=array[0];b=array[1];c=array[2];d=array[3];e=array[4];f=array[5];g=array[6];

{

ObjectCreate("DISPLAY10", OBJ_LABEL, 1, 0, 0);

ObjectSetText("DISPLAY10", DoubleToStr(a,0), 10, "ArialBold", Red);//"EURUSD =" ,

ObjectSet("DISPLAY10", OBJPROP_CORNER, 1);

ObjectSet("DISPLAY10", OBJPROP_XDISTANCE, 80);

ObjectSet("DISPLAY10", OBJPROP_YDISTANCE, 20);

//return(0);

}

{

ObjectCreate("DISPLAY20", OBJ_LABEL, 1, 0, 0);

ObjectSetText("DISPLAY20", DoubleToStr(b,0), 10, "ArialBold", Lime);//"GBPUSD =" ,

ObjectSet("DISPLAY20", OBJPROP_CORNER, 1);

ObjectSet("DISPLAY20", OBJPROP_XDISTANCE, 80);

ObjectSet("DISPLAY20", OBJPROP_YDISTANCE, 40);

//return(0);

}

[PHP]

Ho provato ad ottenere un valore per a,b e a visualizzarlo, ma mostra solo 0 per a, e 0 per b e tutti gli altri valori c-f. Speravo di ottenere un ordine ascendente delle valute. Potete aiutarmi a capire perché questo non funziona?

Vorrei poterti offrire una birra per il tuo aiuto!

 

Controllate le linee che vanno così:

array[0]=iCustom(NULL,0,"EURUSD",0,0);

Quella linea significa che hai un indicatore chiamato "EURUSD" e che lo stai chiamando per ottenere un valore e assegnarlo al primo elemento di "array". Se non esiste (l'indicatore con quel nome, che presumo sia vero) assegnerà il valore 0 all'elemento dell'array. Cosa stai cercando di recuperare esattamente con quella linea?

1Dave7:
EUR=(iMA("EURUSD",0,PerAvr,0,MODE_LWMA,PRICE_CLOSE,i)-iMA("EURUSD",0,PerAvr,0,MODE_LWMA,PRICE_CLOSE,i+Delta)); //RED

GBP=(iMA("GBPUSD",0,PerAvr,0,MODE_LWMA,PRICE_CLOSE,i)-iMA("GBPUSD",0,PerAvr,0,MODE_LWMA,PRICE_CLOSE,i+Delta)); //LIME

doppio array[7];

array[0]=iCustom(NULL,0, "EURUSD",0,0);

array[1]=iCustom(NULL,0, "GBPUSD",1,0);

array[2]=iCustom(NULL,0, "AUDUSD",2,0);

array[3]=iCustom(NULL,0, "USDCHF",3,0);

array[4]=iCustom(NULL,0, "USDJPY",4,0);

array[5]=iCustom(NULL,0, "NZDUSD",5,0);

array[6]=iCustom(NULL,0, "USDCAD",6,0);

ArraySort(array,WHOLE_ARRAY,0,MODE_ASCEND);

a=array[0];b=array[1];c=array[2];d=array[3];e=array[4];f=array[5];g=array[6];

{

ObjectCreate("DISPLAY10", OBJ_LABEL, 1, 0, 0);

ObjectSetText("DISPLAY10", DoubleToStr(a,0), 10, "ArialBold", Rosso); //"EURUSD =" ,

ObjectSet("DISPLAY10", OBJPROP_CORNER, 1);

ObjectSet("DISPLAY10", OBJPROP_XDISTANCE, 80);

ObjectSet("DISPLAY10", OBJPROP_YDISTANCE, 20);

//return(0);

}

{

ObjectCreate("DISPLAY20", OBJ_LABEL, 1, 0, 0);

ObjectSetText("DISPLAY20", DoubleToStr(b,0), 10, "ArialBold", Lime);//"GBPUSD =" ,

ObjectSet("DISPLAY20", OBJPROP_CORNER, 1);

ObjectSet("DISPLAY20", OBJPROP_XDISTANCE, 80);

ObjectSet("DISPLAY20", OBJPROP_YDISTANCE, 40);

//return(0);

}

Ho provato a ottenere un valore per a,b e a visualizzarlo, ma mostra solo 0 per a, e 0 per b e tutti gli altri valori c-f. Speravo di ottenere un ordine ascendente delle valute. Potete aiutarmi a capire perché questo non funziona?

Vorrei poterti offrire una birra per il tuo aiuto!
 
mladen:
Controlla le linee che vanno così:
array[0]=iCustom(NULL,0,"EURUSD",0,0);
Quella linea significa che hai un indicatore chiamato "EURUSD" e che lo stai chiamando per ottenere un valore e assegnarlo al primo elemento dell'"array". Se non esiste (l'indicatore con quel nome, che presumo sia vero) assegnerà il valore 0 all'elemento dell'array. Cosa stai cercando di recuperare esattamente con quella linea?

L'array è quello di ottenere un valore da "EURUSD", poi di fare un ordine ascendente dal basso verso l'alto rispetto alle altre valute, e poi di visualizzare la classifica del basso sullo schermo. EURUSD come le altre valute mi dà solo un 0.00? Cosa sto facendo di sbagliato qui?

 

Fallo in questo modo:

array[0]=iClose("EURUSD",0,0); [/PHP]

and so on. That way array will be filled with close prices for symbols you select. If you are using a custom indicator then the form is the following :

[PHP]array[0]=iCustom("EURUSD",0,"indicator name",0,0);
1Dave7:
L'array è quello di ottenere un valore da "EURUSD", poi di fare un ordine ascendente dal basso verso l'alto rispetto alle altre valute, e poi di visualizzare la classifica del basso sullo schermo. EURUSD come le altre valute mi dà solo un 0.00? Cosa sto facendo di sbagliato qui?
Motivazione: