Matriz fora de alcance? Socorro?
Página 1 de 742 1 2 ÚltimaÚltima
Results 1 to 10 of 11

Thread: Matriz fora de alcance? Socorro?

  1. #1
    EDIT: Esta é a sua correção como resultado de Johnvanwijk!
    https://www.tradingintuitivo.com/gen...-analysis.html


    Ei homens
    Então, eu tenho tentado desenhar algumas coisas, mas está me dando o erro Array from range.
    Ele puxa as setas verdes absolutamente no entanto que as setas vermelhas simplesmente não funcionarão.

    Se alguém pudesse me dizer exatamente o que estou fazendo de errado, seria fantástico.

    Não é porque eu estou tentando acessar velas que não estão lá ou em tudo, tanto quanto eu sei.
    Eu entendo que algumas pessoas podem dizer que está passando por barras disponíveis, mas eu testei mesmo com um limite de 1000, o qual eu estou convencido que meu gráfico tem e ainda me dá de alcance.

    Aqui está o código:

    Código Inserido/ --------------------------------------------- --------------------- /| FractalsExercise.mq4 |/| |/| https://www.mql5.com |/p ----------------------------------------------- ------------------- #property copyright #property link https://www.mql5.com #property versão 1.00 #property strict #property indior_chart_window double Máx. # 91; # 93; baixos baixos # 91; # 93;/ ----------------------------------------------- ------------------- /| Função de inicialização do indicador personalizado |/ ----------------------------------------------- ------------------- int OnInit ()/- estilo de desenho SetIndexStyle (0, DRAW_ARROW, EMPTY, 1, clrGreen); SetIndexArrow (0, 234); SetIndexStyle (1, DRAW_ARROW, EMPTY, 1, clrRed); SetIndexArrow (1, 233);/- buffers de indicador SetIndexBuffer (0, Highs); SetIndexBuffer (1, baixos);/- return (INIT_SUCCEEDED);/ ----------------------------------------------- ------------------- /| Indicador de iteração personalizada serve |/ ----------------------------------------------- ------------------- int OnCalculate (const int rates_total, const int prev_calculated, const datetime tempo # 91; # 93 ;, const duplo aberto # 91; # 93; , const double top # 91; # 93 ;, const duplo non # 91; # 93 ;, const double # 91; # 93 ;, const estendido tick_volume # 91; # 93 ;, const longo volume # 91; # 93; , int int disperse # 91; # 93; -RRB-/- int I = 1; int ii = 1; int Restringir = Barras - 1; enquanto (I lt; Restringir) if (Alto # 91; t # 93 ; gt; Alto # 91; t 1 # 93; -RRB- se (Alto # 91; t # 93; gt; Alto # 91; I - 1 # 93; -RRB- Altos # 91; I # 93; = Alto # 91; I # 93 ;; I ; enquanto (ii lt; Restringir) if (Baixo # 91; ii # 93; lt; Baixo Custo # 91; ii 1 # 93; -RRB- if (Baixo # 91; ii # 93; lt; baixo Custo # 91; ii - 1 # 93; -RRB - Ponta # 91; ii # 93; = Baixo # 91; ii # 93; ii ;/- valor de retorno de prev_calculated para o próximo retorno de chamada (rates_total);/ ----------------------------------------------- -------------------

    Obrigado!

  2. #2
    Se eu dividir os loops while em dois indicadores, ele funcionará perfeitamente, sem um único erro, mas não quando eles estiverem lá. Não está recebendo nada que não esteja lá também. Então eu não tenho certeza porque diz que está fora de alcance.

  3. #3

    Ei pessoal, então eu tenho tentado desenhar algumas coisas, mas isso está me dando o erro Array fora de alcance. Ele desenha as setas verdes perfeitamente, no entanto, as setas simplesmente não funcionam. Se alguém pode me dizer o que estou fazendo de errado, seria fantástico. Porque eu estou tentando acessar a todos ou velas que não estão lá, tanto quanto eu entendo, não é. Eu entendo que algumas pessoas poderiam dizer que está indo para bares acessíveis, mas eu testei até mesmo o que eu tenho certeza que meu gráfico tem e isso me deixa fora do alcance. Este é o código:// ----------------------------------------- ------------------------- ...
    Em cada loop, tente dividi-lo usando algo como o exemplo abaixo para evitar passar as Barras acessíveis: Código Inserido se (I gt; = Bars-1) quebrar; Código Inserido se (ii gt; = Barras-1) quebrar;

  4. #4
    1 Anexo (s)
    quote Em cada loop, tente dividi-lo com algo semelhante ao exemplo abaixo para evitar ir além das Barras disponíveis: if (I gt; = Bars-1) break; if (ii gt; = Barras-1) quebra;
    Pelo que pude ver, é isso que o meu Limit faz, mas eu o inseri no código apenas para testar e até tentei em muitos lugares, mas o erro persiste. Estou sinceramente confuso sobre o motivo de estar me dando o erro. Esta é uma imagem do resultado até agora. Deve fazer o mesmo com as setas vermelhas para os seus baixos. Você também pode observar o erro apenas para dar uma ideia às pessoas.

  5. #5

    De acordo com o que eu pude ver, é exatamente isso que o meu Limit faz, mas eu o inseri no código simplesmente para examiná-lo e testá-lo em muitas posições, mas o erro persiste. Estou sinceramente confuso sobre o porquê de estar dando o erro para mim. Esta é uma imagem do resultado até agora. Deve fazer o mesmo com as setas vermelhas para os seus baixos. Você pode observar o erro para dar uma ideia às pessoas. cenário
    Qual linha é 71?

  6. #6

    Citação Qual linha é 71?
    Isso seria baixos [ii] = baixo [ii]; no segundo loop while.

  7. #7
    Olá AntiVi, você deve indicar o número de buffers são necessários .... A seguinte alteração no início do seu código (depois de #property indior_chart_window) faz com que ele funcione bem .... #property indior_buffers dois Cheers Aproveite! John inserido código/p -------------------------------------------- ---------------------- /| FractalsExercise.mq4 |/| AntiVi |/| https://www.mql5.com |/p ----------------------------------------------- ------------------- #property copyright AntiVi #property link https://www.mql5.com #property variant 1.00 #propriedade strictent #property indior_chart_window/INICIAR ADICIONADO JvW #property indior_buffers 2/FIM ADICIONADO JvW double Highs # ​​91; # 93 ;; baixos baixos # 91; # 93;/ ----------------------------------------------- ------------------- /| Função de inicialização do indicador personalizado |/ ----------------------------------------------- ------------------- int OnInit ()/- desenho de moda SetIndexStyle (0, DRAW_ARROW, EMPTY, 1, clrGreen); SetIndexArrow (0, 234); SetIndexStyle (1, DRAW_ARROW, EMPTY, 1, clrRed); SetIndexArrow (1, 233);/- buffers de indicador SetIndexBuffer (0, Highs); SetIndexBuffer (1, baixos);/- return (INIT_SUCCEEDED);/ ----------------------------------------------- ------------------- /| Função de iteração do indicador personalizado |/ ----------------------------------------------- ------------------- int OnCalculate (const int rates_total, constante int prev_calculada, const datetime período # 91; # 93 ;, const double disponível # 91; # 93; , const double top # 91; # 93 ;, const duplo baixo # 91; # 93 ;, const double # 91; # 93 ;, const estendido tick_volume # 91; # 93 ;, const longo volume # 91; # 93; , const int spread # 91; # 93; -RRB-/- int I = 1; int ii = 1; int Limite = Barras - 1; enquanto (I lt; Limite) if (Superior # 91; t # 93 ; gt; Superior # 91; t 1 # 93; -RRB- se (Superior # 91; t # 93; gt; Superior # 91; I - 1 # 93; -RRB- Altos # 91; I # 93; = Alto # 91; I # 93 ;; I ; enquanto (ii lt; Limite) if (Baixo # 91; 93 # 93; lt; Baixo Custo # 91; 93 1 # 93; -RRB- if (Baixo # 91; ii # 93; lt; baixo custo # 91; i i - 1 # 93; -RRB- Dica # 91; 93 # 93; = Baixo # 91; 93 # 93; ii ;/- valor de retorno de prev_calculated para o próximo rendimento da chamada (rates_total);/ ----------------------------------------------- -------------------

  8. #8

    Olá, você deve indicar o número de buffers são necessários .... A mudança subsequente no início em seu código (mais tarde # indior_chart_window) faz com que ele funcione bem ... #property indior_buffers dois Cheers Enjoy! John/p ---------------------------------------------- -------------------- /| FractalsExercise.mq4 |/| |/|
    https://www.mql5.com|/p ----------------------------------------------- ------------------- #property copyright #property hyperlink https://www.mql5.com #property version 1.00 #property strictproperty ...
    Senhor, você é um gênio. Eu não posso pensar que a correção foi realmente simples. Eu vou culpar isso pela minha inexperiência e fazer você mesmo aprendendo. Passei umas ótimas 5 horas tentando descobrir e tudo que encontrei foram soluções alternativas que não consertavam nada. Vou editar o primeiro post para incluir a correção para que as pessoas possam obter a resposta simples, caso se preocupem em procurá-la! Muito obrigado!

  9. #9

    citação Você senhor é um gênio. Eu não posso pensar que a correção foi simples. Eu vou culpar minha própria inexperiência por isso e fazer você mesmo aprendendo. Passei umas ótimas cinco horas tentando descobrir e tudo que encontrei foram soluções alternativas que não consertavam nada. Vou editar o post para incluir o reparo se eles se incomodarem em procurá-lo, para que as pessoas possam encontrar a resposta fácil! Muito obrigado!
    Oi AntiVi, Além do que o john compartilhou, você quer adquirir o hábito de usar os dados passados ​​como args na função OnCalculate ao invés de confiar nos dados dos vars internos. Você deve se certificar de que você está realizando o seu. Você não precisa processar o loop inteiro (todos os dados do gráfico) em cada tique. Você só precisa processar a parte dos dados do indicador que precisa ser atualizada. Aqui está uma ilustração de como usar essa função OnCalculate. Inserido Código #property strict #property indior_chart_window/INICIAR ADICIONADO JvW #propriedade indior_buffers 2/END ADDED JvW double Altos # 91; # 93 ;; baixos baixos # 91; # 93;/ ----------------------------------------------- ------------------- /| Função de inicialização do indicador personalizado |/ ----------------------------------------------- ------------------- int OnInit ()/- desenho de moda SetIndexStyle (0, DRAW_ARROW, EMPTY, 1, clrGreen); SetIndexArrow (0,234); SetIndexStyle (1, DRAW_ARROW, EMPTY, 1, clrRed); SetIndexArrow (1,233);/- buffers de indicador SetIndexBuffer (0, Highs); SetIndexBuffer (1, baixos); return (INIT_SUCCEEDED);/ ----------------------------------------------- ------------------- /| Indicador de iteração personalizada serve |/ ----------------------------------------------- ------------------- int OnCalculate (const int rates_total, constante int prev_calculated, const datetime período # 91; # 93 ;, const double aberto # 91; # 93; , const double double # 91; # 93 ;, const duplo baixo # 91; # 93 ;, const double # 91; # 93 ;, const longo tick_volume # 91; # 93 ;, const longo volume # 91; # 93; , const int spread # 91; # 93; -RRB-/- int limite = rates_total - prev_calculated - dois; limite = limite lt; 1? 1: limitação; para (int I = limitação; I gt; 0; I -) if (high # 91; I # 93; gt; alto # 91; I 1 # 93; alto # 91; I # 93; gt; alto # 91; i-1 # 93; -RRB- Highs # 91; I # 93; = high # 91; I # 93 ;; if (low # 91; I # 93; lt; low-carb91; I 1 # 93; low-carb91; I # 93; lt; low- carb91; i-1 # 93; -RRB- Baixos # 91; I # 93; = baixo # 91; t # 93 ;;/- valor de retorno de prev_calculated para o rendimento da próxima chamada (rates_total);

  10. #10
    Gênio ??? Obrigado, mas eu não penso assim. Mais um pouco de tropeço com experiência: - RRB- Eu aposto para cada erro, omissão ou erro de digitação que você poderia revelar aqui: Eu fiz exatamente o mesmo anteriormente. . e provavelmente duas vezes! Cheerio

Permissões de Publicação

  • Não pode publicar novos tópicos
  • Não pode publicar respostas
  • Não pode publicar anexos
  • Não pode editar as suas publicações
  •  
  • Código BB está Ativo
  • Smilies estão Ativos
  • Código [IMG] está Ativo
  • Código [VIDEO] está Ativo
  • Código HTML está Desligado
O site da tradingintuitivo utiliza cookies
O site da tradingintuitivo utiliza cookies, alguns já foram definidos. Pode ler sobre a nossa utilização de cookies aqui. Por favor, clique no botão à direita para aceitar os nossos cookies. Se continuar a usar o site da tradingintuitivo, vamos supor que aceita os nossos cookies.