[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 753
como comparar datas e horas em mql (por exemplo, preciso determinar qual vértice de ZZ foi formado mais cedo - para isso preciso comparar o tempo de sua formação...)
A data é essencialmente intrigante, ela contém o número de segundos, começando em 1970 e terminando com o tempo do bar. Eu procuro mais/menos - funciona... Não olhei para o resto - só cheguei aqui...
Pergunta - é possível alterar o comentário sobre a ordem? Bem, quando a operação OrderSend() coloco no comentário algum valor de "OrderNotModify", e fazendo outras ações com esta ordem, por exemplo fechamento parcial, mudo OrderComment para "OrderIsModify"... ou não?
A matriz é preenchida a partir do 0, mas aqui o 0º índice é pulado, e nós preenchemos a partir do 1º, e
for (int u=1;u<=k;u++) // k при старте =0, u <= k не будет, считать счетчику незачем
{
if (StrToDouble(TimeSave1[u][1])<=StrToDouble(TimeSave1[u-1][1])) // выражение при старте всегда [1][1]<=[0][1]
{
Number_of_extremum[u]=1;// значит под номером u - нашли min
}
elseif (StrToDouble(TimeSave1[u][1])>=StrToDouble(TimeSave1[u-1][1])) // значит, всегда срабатывает [1][1]>=[0][1]
{
Number_of_extremum[u]=2;// значит под номером u - нашли max
}
}
1) k - no início - não é igual a zero! k = o número de vértices ZigZag que detectamos a uma certa profundidade da história!
2) "assim, sempre funciona [1][1]>=[0][1]" - por que sempre funciona? se o elemento anterior da matriz TimeSave1 > próximo elemento, não funcionará.
Por favor, diga-me novamente o que você quer dizer.
Eu entendo k. Isto é o que eu não entendo.
for (int u=1;u<=k;u++) // на первом шаге счетчик присваивает u = 1
{
if (StrToDouble(TimeSave1[u][1])<=StrToDouble(TimeSave1[u-1][1])) // здесь, значит[u=1][1]<=[(u=1)-1][1]
// т. е. 1<=0, вы же от 1 еще 1 отнимаете
{
Eu irei aqui com arcos - mesmo assim quebrei minha calculadora. :) Quero ser capaz de calcular os níveis de fiba com base em dois valores conhecidos: O nível zero de fibra corresponde a 1.2807, o nível 23,6 corresponde a 1.2838.
Precisamos encontrar os outros 38,2, 50,0, 61,5, 100,0 níveis e a que preços eles correspondem.
Eu nem consegui encontrar nenhuma conexão entre 1.2807 e 1.2838 para entender os princípios de de encontrar todos os outros valores.
IgorM: Alguém encontrou o indicador para ver o tempo de abertura da barra em um TF baixo, não quanto tempo é interessante, e para desenhar as marcas no gráfico onde a barra começou e onde ela terminou
#property indicator_chart_window#property link "IgorM"externint num = 10;
externcolor line = White;
int init()
{return(0);
}
void clear(){
for(int i=ObjectsTotal()-1; i>=0;i--) {
string name = ObjectName(i);
if (StringFind(name,"timeH1_") !=-1) ObjectDelete(name);
}
}
int deinit(){
clear();
return(0);
}
int start()
{
int counted_bars = IndicatorCounted();
if(counted_bars < 0) return(-1);
clear();
for (int i=0;i<=num;i++){
string name = "timeH1_"+TimeToStr(Time[i],TIME_DATE|TIME_MINUTES);
ObjectCreate(name,OBJ_VLINE,0,iTime(NULL,PERIOD_H1,i),0);
ObjectSet(name,OBJPROP_COLOR,line);
ObjectSet(name,OBJPROP_STYLE,STYLE_DOT);
}
return(0);
}
Acho que sim. O código não está otimizado, mas ele desenha o que eu gostaria de ver.
Por favor, informe qual é a captura:
1) Eu preencho uma matriz bidimensional com o tempo de formação do extremo ZigZag e o próprio valor do extremo.
2) Preenchendo o segundo conjunto com um ou dois, dependendo se o extremo correspondente a um determinado elemento é um máximo ou mínimo local.
3) Eu produzo os resultados através do Alerta.
mas em um lugar onde 1 ou 2 zeros devem ser impressos são sempre impressos.
Qual é o senão?!?
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
string TimeSave1[100][2], TimeSave2[100][2];
double A[], B[];
double Number_of_extremum[];
extern string Currency = "EURUSD";
+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
//----
int k;
k=0;
double date;
int status;
for(int shift = 0; shift <= Bars-1; shift++)
{
date = iCustom(NULL, 0, "ZigZag", 12, 5, 3, 0, shift);
//----------------------------------------------------
if(date > 0)
{
TimeSave1[k][0]=TimeToStr(Time[shift]);
TimeSave1[k][1]=date;
k++;
}
}
//====================================================
for (int u=1;u<=k;u++)
{
if (StrToDouble(TimeSave1[u][1])<=StrToDouble(TimeSave1[u-1][1]))
{
Number_of_extremum[u]=1;// значит под номером u - нашли min
}
else
if (StrToDouble(TimeSave1[u][1])>=StrToDouble(TimeSave1[u-1][1]))
{
Number_of_extremum[u]=2;// значит под номером u - нашли max
}
}
//====================================================
for (int j=1;j<10;j++)
{
Alert("время== ",TimeSave1[j][0], " значение== ", TimeSave1[j][1], " max/min== ", Number_of_extremum[j]);
}
//----
return(0);
}
//+------------------------------------------------------------------+
E mais um esclarecimento:
como comparar datas e horas em mql (por exemplo, preciso determinar qual vértice de ZZ foi formado mais cedo - para isso preciso comparar o tempo de sua formação...)
Não olhei para o resto - só cheguei aqui...
Amigos, uma pergunta:
Enfrentou este problema:
o indicador emite algumas informações via Alert.
Mas, gradualmente, o campo de saída Alerta acumula demasiada "porcaria".
Quando eu iniciarei o indicador novamente, será possível apagar todos os registros antigos em Alerta?
Obrigado de antemão.
P.S.
Por favor, comente sobre meu posto mais cedo (por que valores nulos são exibidos ao invés de 1 e 2)
Não o encontrei no fórum...
Pergunta - é possível alterar o comentário sobre a ordem? Bem, quando a operação OrderSend() coloco no comentário algum valor de "OrderNotModify", e fazendo outras ações com esta ordem, por exemplo fechamento parcial, mudo OrderComment para "OrderIsModify"... ou não?
Você pode me dizer qual é o senão:
A matriz é preenchida a partir do 0, mas aqui o 0º índice é pulado, e nós preenchemos a partir do 1º, e
A matriz é preenchida a partir do 0, mas aqui o 0º índice é pulado e preenchido a partir do 1º, e
Não entendo bem seu comentário.
1) k - no início - não é zero! k = o número de vértices ZigZag que detectamos a uma certa profundidade da história!
2) "assim, sempre funciona [1][1]>=[0][1]" - por que sempre funciona? se o elemento anterior da matriz TimeSave1 > próximo elemento, não funcionará.
repita, por favor, o que você quis dizer.
não entendeu bem seu comentário.
1) k - no início - não é igual a zero! k = o número de vértices ZigZag que detectamos a uma certa profundidade da história!
2) "assim, sempre funciona [1][1]>=[0][1]" - por que sempre funciona? se o elemento anterior da matriz TimeSave1 > próximo elemento, não funcionará.
Por favor, diga-me novamente o que você quer dizer.
Eu entendo k. Isto é o que eu não entendo.
na parte certa
é possível alterar o comentário do pedido?
Parece que não.
então... parece que é o calor... E está afetando meu compilador também :)
veja, preciso passar por um array que registra a data de formação do max/min do ZigZ e o valor desse max/min.
Preciso entender, de fato, qual vértice de ZZ é um mínimo e qual é um máximo.
Para fazer isso, comparo o próximo ponto mais alto de ZZ com o anterior.
Se o topo consecutivo for maior, então é um topo.
se for menor, é um cocho.
Dependendo se é um vértice ou um canal, adicionamos 1 ou 2 a um elemento de outro conjunto, respectivamente.
Estou curioso a respeito disto, ONDE pode haver um erro!!!!
Quero ser capaz de calcular os níveis de fiba com base em dois valores conhecidos:
O nível zero de fibra corresponde a 1.2807, o nível 23,6 corresponde a 1.2838.
Precisamos encontrar os outros 38,2, 50,0, 61,5, 100,0 níveis e a que preços eles correspondem.
Eu nem consegui encontrar nenhuma conexão entre 1.2807 e 1.2838 para entender os princípios de
de encontrar todos os outros valores.
Por favor, digam-me, alguém ... :)
Alguém encontrou o indicador para ver o tempo de abertura da barra em um TF baixo, não quanto tempo é interessante, e para desenhar as marcas no gráfico onde a barra começou e onde ela terminou
Acho que sim. O código não está otimizado, mas ele desenha o que eu gostaria de ver.