Sergey Savinkin: É possível que oUpper[i] não seja preenchido (igual a 0) em algumas barras.
Penso ter encontrado alguma pista para a solução: quando a condição é escrita contra o estado de preço actual antes de executar o código, o registo produz o seguinte:
Ponto importante - estes parâmetros coincidem com o preço já gerado anteriormente
Para esclarecer:
É aqui que a última linha do tronco indica que o preço foi além da linha superior. A única questão é por que razão o fez? Tenho uma versão que durante o recálculo do indicador desde o início até ao momento presente o código regista estes eventos e pára no último evento - explica a diferença entre o preço e os dados de registo actuais, mas não explica mais nada - preciso do código para fazer uma simples comparação em lógica "o preço foi para além da linha superior - dar alerta mas nada acontece".
Verifiquei também a condição de código quando o preço está abaixo da linha superior - simplesmente não registou o evento nos registos, que está na imagem acima - parei para o compreender no final, se é que funciona de todo.
Meus amigos, sou novo na MQL5, por isso se os problemas sobre os quais estou a escrever aqui são os meus próprios defeitos, por favor não me dêem pontapés a mais.
Queria fazer uma coruja com várias moedas, mas enfrentei algumas coisas estranhas no testador de estratégias que só aparecem quando se testa as de várias moedas. Recebo algumas mudanças estranhas de símbolos da série temporal para além do símbolo do gráfico principal. Fiz uma simples coruja que recebe zero e o primeiro bar aberto por dois símbolos no início de cada bar. Por alguma razão, a segunda série cronológica de símbolos começa a mudar após 1 barra. Aparece em qualquer símbolo e em qualquer período de tempo. Eu estava a testar no EURUSD, o segundo símbolo era GBPUSD. Já experimentei vice-versa, já experimentei em outros pares, o erro aparece sempre. Esta é a fotografia da revista após os testes em М15:
Imagem de registo após testes em H1:
Configurações do Testador de Estratégia:
Aqui está o código para o teste:
#property copyright"Copyright 2018, MetaQuotes Software Corp."#property link"https://www.mql5.com"#property version"1.00"inputstring SecondSymbol="GBPUSD";
intOnInit()
{
SymbolSelect(SecondSymbol,true);//выбираем второй символ в MarketWatch(для тестера)//---return(INIT_SUCCEEDED);
}
voidOnDeinit(constint reason)
{
//---
}
voidOnTick()
{
staticdatetime BarTime;//время начала бараint per=PeriodSeconds(PERIOD_CURRENT);
datetime time_curr=TimeCurrent()/per*per;
if(time_curr!=BarTime)
{
BarTime=time_curr;
datetime Time_One[],Time_Two[];
bool yes=ArraySetAsSeries(Time_One,true);
yes=ArraySetAsSeries(Time_Two,true);
int i=CopyTime(NULL,PERIOD_CURRENT,0,2,Time_One); //текущий символ
i=CopyTime(SecondSymbol,PERIOD_CURRENT,0,2,Time_Two);//второй символPrint("ВремяНачалаБара по ",Symbol(),":",Time_One[0]," ВремяНачалаБара по ",SecondSymbol,":",Time_Two[0]);
}
}
Meus amigos, sou novo na MQL5, por isso se os problemas sobre os quais estou a escrever aqui são os meus próprios defeitos, por favor não me dêem pontapés a mais.
Queria fazer uma coruja com várias moedas, mas enfrentei algumas coisas estranhas no testador de estratégias que só aparecem quando se testa as de várias moedas. Recebo algumas mudanças estranhas de símbolos da série temporal para além do símbolo do gráfico principal. Fiz uma simples coruja que recebe zero e o primeiro bar aberto por dois símbolos no início de cada bar. Por alguma razão, a segunda série cronológica de símbolos começa a mudar após 1 barra. Aparece em qualquer símbolo e em qualquer período de tempo. Tenho estado a testar no EURUSD, o segundo símbolo era GBPUSD. Já experimentei vice-versa, já experimentei em outros pares, o erro aparece sempre. Esta é a fotografia da revista após os testes em М15:
Imagem de registo após testes em H1:
Configurações do Testador de Estratégia:
O código para os testes:
Qualquer ajuda seria bem-vinda.
O provador funciona correctamente. Há um erro na lógica do programa: dois símbolos são como duas vidas de pessoas diferentes (aqui "pessoa" é análogo a "símbolo"). E a segunda pessoa não tem de acordar ao mesmo tempo que a primeira ("acordar" é análogo a "nova barra a aparecer").
Portanto, é preciso esperar que apareça uma nova barra E no primeiro símbolo E no segundo.
Pode dizer-me, aqui está uma imagem de uma barra de alfinetes em forma de pino, como deve ser o código principal da condição para a reconhecer?
Esta é uma barra de pino em baixa. A direcção da vela não é importante. A posição da sombra longa é importante: para cima é em baixa, para baixo é em alta. E é necessária uma confirmação a partir dos indicadores de nível.
Artyom Trishkin: Esta é uma barra de pino em baixa. A direcção da vela não é importante. A posição da sombra longa é importante: para cima é em baixa, para baixo é em alta. E precisamos de confirmação a partir dos indicadores de nível.
Podemos mostrá-lo através de uma construção de código? Só não é muito claro como o código deve ser
clickaider: É possível mostrar isto através da construção de códigos? Só não é muito claro como o código deve ser
Não lhe posso escrever o código a partir do meu telemóvel. Num relance:
É necessário o tamanho do candelabro de Alto Baixo, o tamanho do corpo do candelabro, a percentagem do corpo até ao tamanho do candelabro inteiro, o tamanho da sombra curta não deve exceder um certo limiar (por isso ou estava ausente ou relativamente pequeno para o corpo), e a localização do corpo superior/baixo em relação ao tamanho total do candelabro.
Artyom Trishkin: Não lhe posso escrever o código do meu telemóvel. Num relance:
É necessário o tamanho da vela de Alto Baixo, o tamanho do corpo da vela, a percentagem do corpo ao tamanho da vela inteira, o tamanho da sombra curta não deve exceder um certo limiar (de modo que estava ausente, ou era relativamente pequena para o corpo), e a localização do corpo de cima/baixo em relação ao tamanho total da vela.
É possível que oUpper[i] não seja preenchido (igual a 0) em algumas barras.
Penso ter encontrado alguma pista para a solução: quando a condição é escrita contra o estado de preço actual antes de executar o código, o registo produz o seguinte:
Ponto importante - estes parâmetros coincidem com o preço já gerado anteriormente
Para esclarecer:
É aqui que a última linha do tronco indica que o preço foi além da linha superior. A única questão é por que razão o fez? Tenho uma versão que durante o recálculo do indicador desde o início até ao momento presente o código regista estes eventos e pára no último evento - explica a diferença entre o preço e os dados de registo actuais, mas não explica mais nada - preciso do código para fazer uma simples comparação em lógica "o preço foi para além da linha superior - dar alerta mas nada acontece".
Verifiquei também a condição de código quando o preço está abaixo da linha superior - simplesmente não registou o evento nos registos, que está na imagem acima - parei para o compreender no final, se é que funciona de todo.
Meus amigos, sou novo na MQL5, por isso se os problemas sobre os quais estou a escrever aqui são os meus próprios defeitos, por favor não me dêem pontapés a mais.
Queria fazer uma coruja com várias moedas, mas enfrentei algumas coisas estranhas no testador de estratégias que só aparecem quando se testa as de várias moedas. Recebo algumas mudanças estranhas de símbolos da série temporal para além do símbolo do gráfico principal. Fiz uma simples coruja que recebe zero e o primeiro bar aberto por dois símbolos no início de cada bar. Por alguma razão, a segunda série cronológica de símbolos começa a mudar após 1 barra. Aparece em qualquer símbolo e em qualquer período de tempo. Eu estava a testar no EURUSD, o segundo símbolo era GBPUSD. Já experimentei vice-versa, já experimentei em outros pares, o erro aparece sempre. Esta é a fotografia da revista após os testes em М15:
Imagem de registo após testes em H1:
Configurações do Testador de Estratégia:
Aqui está o código para o teste:
Qualquer ajuda seria bem-vinda.
Meus amigos, sou novo na MQL5, por isso se os problemas sobre os quais estou a escrever aqui são os meus próprios defeitos, por favor não me dêem pontapés a mais.
Queria fazer uma coruja com várias moedas, mas enfrentei algumas coisas estranhas no testador de estratégias que só aparecem quando se testa as de várias moedas. Recebo algumas mudanças estranhas de símbolos da série temporal para além do símbolo do gráfico principal. Fiz uma simples coruja que recebe zero e o primeiro bar aberto por dois símbolos no início de cada bar. Por alguma razão, a segunda série cronológica de símbolos começa a mudar após 1 barra. Aparece em qualquer símbolo e em qualquer período de tempo. Tenho estado a testar no EURUSD, o segundo símbolo era GBPUSD. Já experimentei vice-versa, já experimentei em outros pares, o erro aparece sempre. Esta é a fotografia da revista após os testes em М15:
Imagem de registo após testes em H1:
Configurações do Testador de Estratégia:
O código para os testes:
Qualquer ajuda seria bem-vinda.
O provador funciona correctamente. Há um erro na lógica do programa: dois símbolos são como duas vidas de pessoas diferentes (aqui "pessoa" é análogo a "símbolo"). E a segunda pessoa não tem de acordar ao mesmo tempo que a primeira ("acordar" é análogo a "nova barra a aparecer").
Portanto, é preciso esperar que apareça uma nova barra E no primeiro símbolo E no segundo.
Acrescentado: artigo"novo bar" manipulador de eventos
Pode dizer-me, aqui está uma imagem de uma barra de alfinetes em forma de pino, como deve ser o código principal da condição para a reconhecer?
if(low[i] <= open[i] && high[i] > close[i] && open[i] >= close[i] && close[i] <= Base[i]) // верно ли это утверждение?Pode dizer-me, aqui está uma imagem de uma barra de alfinetes em forma de pino, como deve ser o código principal da condição para a reconhecer?
Esta é uma barra de pino em baixa. A direcção da vela não é importante. A posição da sombra longa é importante: para cima é em baixa, para baixo é em alta. E precisamos de confirmação a partir dos indicadores de nível.
É possível mostrar isto através da construção de códigos? Só não é muito claro como o código deve ser
Não lhe posso escrever o código do meu telemóvel. Num relance:
Em termos gráficos, é o que parece:
Em termos gráficos, é o que parece: