Vamos explicar um pouco melhor: preciso de um indicador que leia de um arquivo CVS e trace os valores em uma subjanela, o CVS terá 2 valores separados por vírgula, o primeiro valor é a data e o segundo é o valor real que o indicador deve traçar.
Vamos explicar um pouco melhor: preciso de um indicador que leia de um arquivo CVS e trace os valores em uma subjanela, o CVS terá 2 valores separados por vírgula, o primeiro valor é a data e o segundo é o valor real que o indicador deve traçar.
por exemplo
o CVS tem este aspecto:
Tempo,valor
2016.10.26.21.20,127.765
2016.10.26.21.15,127.777
2016.10.26.21.10,127.777
2016.10.26.21.05,127.799
2016.10.26.21.00,127.791
2016.10.26.20.55,127.788
o indicador irá traçar o valor de acordo com a data
espero que agora esteja um pouco mais claro...
Obrigado por sua ajuda, amigo!
Isso é o que eu tenho conseguido até agora:
externstring FileName = "AUDCAD.CSV";
datetime dt[9999];
double val[9999];
string arr[2];
int h = FileOpen(FileName, FILE_CSV|FILE_READ,'~');
if (h==0) Comment("File "+FileName+" not found.");
for (int c=0; !FileIsEnding(h) && c<9999; c++) {
string tmp = FileReadString(h);
if (FileIsEnding(h)) break;
StrToStringArray(tmp,arr,",");
dt[c] = StrToTime(arr[0]); // <==== This should convert the date value (in the format of "yyyy.mm.dd hh:mi") to datatime type and assign it to the array
val[c] = StrToNumber(arr[1]); // <==== This will assign the value to the array
}
FileClose(h);
//+------------------------------------------------------------------+void StrToStringArray(string str, string &a[], string delim=",") {
//+------------------------------------------------------------------+int z1=-1, z2=0;
for (int i=0; i<ArraySize(a); i++) {
z2 = StringFind(str,delim,z1+1);
a[i] = StringSubstr(str,z1+1,z2-z1-1);
if (z2 >= StringLen(str)-1) break;
z1 = z2;
}
}
//+------------------------------------------------------------------+double StrToNumber(string str) {
//+------------------------------------------------------------------+// Usage: strips all non-numeric characters out of a stringint dp = -1;
int sgn = 1;
double num = 0.0;
for (int i=0; i<StringLen(str); i++) {
string s = StringSubstr(str,i,1);
if (s == "-") sgn = -sgn; elseif (s == ".") dp = 0; elseif (s >= "0" && s <= "9") {
if (dp >= 0) dp++;
if (dp > 0)
num = num + StrToInteger(s) / MathPow(10,dp);
else
num = num * 10 + StrToInteger(s);
}
}
return(num*sgn);
}
Não sei por que se eu imprimir dt[c] sempre retorna o mesmo valor...como se o tempo nunca mudasse mesmo se o arr[0] mudasse em cada iteração do loop...
depois disto devemos atribuir o valor à barra com esse tempo... mas estou preso...
Vamos explicar um pouco melhor: preciso de um indicador que leia de um arquivo CVS e trace os valores em uma subjanela, o CVS terá 2 valores separados por vírgula, o primeiro valor é a data e o segundo é o valor real que o indicador deve traçar.
por exemplo
o CVS tem este aspecto:
Tempo,valor
2016.10.26.21.20,127.765
2016.10.26.21.15,127.777
2016.10.26.21.10,127.777
2016.10.26.21.05,127.799
2016.10.26.21.00,127.791
2016.10.26.20.55,127.788
o indicador irá traçar o valor de acordo com a data
espero que agora esteja um pouco mais claro...
Obrigado por sua ajuda, amigo!
Isso é o que eu tenho conseguido até agora:
Nunca me lembro de ter resolvido o problema.... o SrtToTime só aceita cordas com este formato: "yyyy.mm.dd hh:mi" que significa que eu estava carregando um CSV com este formato em vez de "yyyy.mm.dd hh.mi" e obviamente estava me dando um erro... de qualquer forma eu resolvi!
Olá, pessoal e gurus de código,
Estou procurando um indicador simples que traça seus próprios valores a partir de um arquivo CSV. Alguém pode, por favor, me ajudar?
Obrigado de antemão!
O que significa o "seu próprio valor"?
Obrigado mladen,
Vamos explicar um pouco melhor: preciso de um indicador que leia de um arquivo CVS e trace os valores em uma subjanela, o CVS terá 2 valores separados por vírgula, o primeiro valor é a data e o segundo é o valor real que o indicador deve traçar.
por exemplo
o CVS tem este aspecto:
o indicador irá traçar o valor de acordo com a data
espero que agora esteja um pouco mais claro...
Obrigado por sua ajuda, amigo!
Prezado amigo,
preciso codificar,
feche a vela então se a vela estiver para CIMA então alerte paraCIMA e a vela estiver para BAIXO então alerte paraBAIXO a qualquer momento
se você tem a pls compartilhar comigo,
obrigado em adance,
- jesing
Obrigado mladen,
Vamos explicar um pouco melhor: preciso de um indicador que leia de um arquivo CVS e trace os valores em uma subjanela, o CVS terá 2 valores separados por vírgula, o primeiro valor é a data e o segundo é o valor real que o indicador deve traçar.
por exemplo
o CVS tem este aspecto:
Tempo,valor
2016.10.26.21.20,127.765
2016.10.26.21.15,127.777
2016.10.26.21.10,127.777
2016.10.26.21.05,127.799
2016.10.26.21.00,127.791
2016.10.26.20.55,127.788
o indicador irá traçar o valor de acordo com a data
espero que agora esteja um pouco mais claro...
Obrigado por sua ajuda, amigo!
Isso é o que eu tenho conseguido até agora:
AtApi:
Obrigado mladen,
Vamos explicar um pouco melhor: preciso de um indicador que leia de um arquivo CVS e trace os valores em uma subjanela, o CVS terá 2 valores separados por vírgula, o primeiro valor é a data e o segundo é o valor real que o indicador deve traçar.
por exemplo
o CVS tem este aspecto:
Tempo,valor
2016.10.26.21.20,127.765
2016.10.26.21.15,127.777
2016.10.26.21.10,127.777
2016.10.26.21.05,127.799
2016.10.26.21.00,127.791
2016.10.26.20.55,127.788
o indicador irá traçar o valor de acordo com a data
espero que agora esteja um pouco mais claro...
Obrigado por sua ajuda, amigo!
Isso é o que eu tenho conseguido até agora:
olá
mr mladen:
poderia atualizá-lo para a nova construção mt4
melhor consideração
Por favor, qualquer um pode me ajudar a resolver estes 3 problemas
1. corrigir o erro de fuga
2.remover o filtro do segundo período de tempo, o sistema funcionará em um chat de 30m
3.adicionar o indicador anexo como um filtro no chat 1D
@Amigos queridos,
Minha ea dá o erro abaixo,.
"EURUSD+,M5: bilhete desconhecido 21847676 para a função OrderDelete".
O que significa esta frase? Qual é o problema e o que eu posso fazer?
@Amigos queridos,
Minha ea dá o problema abaixo.
"EURUSD+,M5: bilhete desconhecido 21847676 para StringConcatenate(função)".
O que significa esta frase? Qual é o problema?
O que eu posso fazer?
Significa que não pode encontrar um pedido com o número de bilhete 21847676 que possa apagar.
Ou :
olá Sr. mladen
você poderia ajudar a colocar este indicador em um gráficoseparado do MTF similar a esta imagem
respeito