Certo che si può fare! Basta chiedere. Elaboro la![]()
come faccio a dire a visual trader che in questo momento la variazione % e maggiore alla media delle variazioni in chiusura degli ultimi 100 giorni?
la mia idea è quella postata sopra , però non sò se si può fare, allora prima di mettermi a scrivere 100 righe volevo sapere se avevate una soluzione che non mi è venuta in mente![]()
REM variazione relativa
var=(abs((close-close[1])/close[1]))*100
varav=average[100](var)
if var>varav then
flag=1
elsif var<varav then
flag=0
endif
return flag as "variazione relativa"
saluti![]()
Se vuoi fare una media di una variabile per la quale non e possibile utilizzare l'istruzione mov puoi fare come hai pensato con un limite.
Il visual trader accetta solo fino a 20 elementi di somma.
Quindi lo devi fregare in questo modo.
Ecco l'esempio di somma di 50 rendimenti:
Var:rendi,s1,s2,s3,mrendi;
rendi=c/c[1];
s1=rendi+rendi[1]+rendi[2]+rendi[3]+rendi[4]+rendi[5]+rendi[6]+rendi[7]+rendi[8]+rendi[9]+rendi[10]+rendi[11]+rendi[12]
+rendi[13]+rendi[14]+rendi[15]+rendi[16]+rendi[17]+rendi[18]+rendi[19];
s2=rendi[20]+rendi[21]+rendi[22]+rendi[23]+rendi[24]+rendi[25]+rendi[26]+rendi[27]+rendi[28]+rendi[29]+rendi[30]+rendi[31]+rendi[32]
+rendi[33]+rendi[34]+rendi[35]+rendi[36]+rendi[37]+rendi[38]+rendi[39];
s3=rendi[40]+rendi[41]+rendi[42]+rendi[43]+rendi[44]+rendi[45]+rendi[46]+rendi[47]+rendi[48]+rendi[49];
mrendi=(s1+s2+s3)/50;
if rendi>mrendi then enterlong(nextbar,atopen);endif;
plotchart(rendi[1],2,blue,solid,1);
plotchart(c,3,blue,solid,1);
plotchart(c[1],4,blue,solid,1);
Se vuoi fare una media di una variabile per la quale non e possibile utilizzare l'istruzione mov puoi fare come hai pensato con un limite.
Il visual trader accetta solo fino a 20 elementi di somma.
Quindi lo devi fregare in questo modo.
Ecco l'esempio di somma di 50 rendimenti:
Var:rendi,s1,s2,s3,mrendi;
rendi=c/c[1];
s1=rendi+rendi[1]+rendi[2]+rendi[3]+rendi[4]+rendi[5]+rendi[6]+rendi[7]+rendi[8]+rendi[9]+rendi[10]+rendi[11]+rendi[12]
+rendi[13]+rendi[14]+rendi[15]+rendi[16]+rendi[17]+rendi[18]+rendi[19];
s2=rendi[20]+rendi[21]+rendi[22]+rendi[23]+rendi[24]+rendi[25]+rendi[26]+rendi[27]+rendi[28]+rendi[29]+rendi[30]+rendi[31]+rendi[32]
+rendi[33]+rendi[34]+rendi[35]+rendi[36]+rendi[37]+rendi[38]+rendi[39];
s3=rendi[40]+rendi[41]+rendi[42]+rendi[43]+rendi[44]+rendi[45]+rendi[46]+rendi[47]+rendi[48]+rendi[49];
mrendi=(s1+s2+s3)/50;
if rendi>mrendi then enterlong(nextbar,atopen);endif;
plotchart(rendi[1],2,blue,solid,1);
plotchart(c,3,blue,solid,1);
plotchart(c[1],4,blue,solid,1);
grazie damien
una domanda rendi[1] mi aggiorna da solo le "C" ?
in Amibroker mi sembra più semplice, sempre che sia corretto ...
yield_Ieri= ((Ref(C,-1) / Ref(C,-2))-1)*100;
yield_Media= Sum(yield_Ieri,100)/100;
yield_ora= ((C / Ref(C,-1))-1)*100;
Buy = Cover = yield_ora > yield_Ieri;
Short= Sell = yield_Ieri > yield_ora;
PS - drena perche hai usato ... abs ???