1 Attachment (s)) Olá !!
Existe algum indicador que desenha linhas retas a cada n barras ???
Obrigado pela ajuda.
1 Attachment (s)) Olá !!
Existe algum indicador que desenha linhas retas a cada n barras ???
Obrigado pela ajuda.
Em mq4, embora algo assim ..
https://www.mql5.com/en/docs/customi...s/draw_section
1 Attachment (s) Eu tento codificar em MT4, mas o indicador não funciona corretamente. #property indior_chart_window #property indior_buffers 1 #property indior_plots 1/- plot Seção #property indior_label1 Section #property indior_type1 DRAW_SECTION #propriedade indior_color1 clrRed #property indior_style1 STYLE_SOLID #property indior_width1 1/- entrada do parâmetro input int bars = 5;/O comprimento das seções em barras de entrada int N = 5;/O número de pulsos para alterar o estilo das seções/- Um buffer de indicador para o enredo Double SectionBuffer [];/- Uma variável auxiliar para calcular as extremidades das seções int divider;/- Uma matriz para armazenar as cores das cores [] = clrRed, clrBlue, clrGreen;/- Uma matriz para armazenar os estilos de linha ENUM_LINE_STYLE styles [] = STYLE_SOLID, STYLE_DASH, STYLE_DOT, STYLE_DASHDOT, STYLE_DASHDOTDOT;/ ----------------------------------------------- ------------------- /| Função de inicialização do indicador personalizado |/ ----------------------------------------------- ------------------- int OnInit ()/- Ligando uma matriz e um buffer de indicador SetIndexBuffer (0, SectionBuffer, INDICATOR_DATA);/- O valor 0 (vazio) irá participar no desenho PlotIndexSetDouble (0, PLOT_EMPTY_VALUE, 0);/- Verifique o parâmetro indicador if (barslt; = 0) PrintFormat (Valor inválido da barra de parâmetros =% d, barras); return (INIT_PARAMETERS_INCORRECT); mais divisor = 2 * barras;/- return (INIT_SUCCEEDED);/ ----------------------------------------------- ------------------- /| Função de iteração do indicador personalizado |/ ----------------------------------------------- ------------------- int OnCalculate (constante int rates_total, const int prev_calculada, const datetime time [], const dupla aberta [], const double alta [], const double low [], const double close [], const longo tick_volume [], const longo volume [], const int spread []) estático int ticks = 0;/- Calcular ticks para alterar o estilo, cor e largura das linhas ticks ;/- Se um número crítico de ticks foi acumulado if (ticksgt; = N)/- O número da barra a partir da qual o cálculo dos valores do indicador começa int start = 0;/- Se o indicador foi calculado antes, defina start na barra anterior se (prev_calculatedgt; 0) start = prev_calculated-1;/- Aqui estão todos os cálculos dos valores do indicador para (int I = iniciar; ilt; rates_total; I )/- Obter um resto da divisão do número da barra por 2 * barras int rest = I% divider ;/- Se o número da barra for divisível por 2 * barras if (rest == 0)/- Defina o final da seção com o preço alto desta barra. SectionBuffer [I] = Close [I];/- Se o resto dodivision é igual a bars, else/- Define o final da seção no preço Alto desta barra if (rest == bars) SectionBuffer [I] = Close [I];/- Se nada aconteceu, ignore a barra - set 0 else. SectionBuffer [I] = 0;/- Retorna o valor prev_calculated para a próxima chamada da função return (rates_total);
EDIT: nvm você já definiu a seção de desenho no início. É muito difícil ler o código dessa maneira.
1 Anexo (s) resolvido (s). Atualmente, o único problema que vejo, é que não atualizar no último pub ....
https://www.tradingintuitivo.com/att...1034885298.mq4
1 Anexo (s) Para mim, pessoalmente, é mais simples observar o mercado com este indicador, menos ruído. Talvez, algum codificador fantástico pode resolver o problema que não consertar corretamente os segmentos, adicionar cores (para baixo ou para cima) etc Obrigado por suas tentativas. .