Revisar e ajustar um Indicador MT5

Trabalho concluído

Tempo de execução 23 horas

Termos de Referência

Eu criei um indicador pelo ChatGPT e ele está compilando corretamente mas as linhas que são plotadas na janela separada do indicador MT5 não estão sendo atualizadas corretamente, elas aparecem como linhas retas horizontais e não tem nenhuma variação, e eu não sei programar e não sei como ajustar isso e o chatGPT também não conseguiu resolver.

O código é bem pequeno e básico, acredito ser simples de resolver para quem sabe programar.


Segue o código gerado pelo chatGPT:


//+------------------------------------------------------------------+

//| Custom indicator for MetaTrader 5                                |

//+------------------------------------------------------------------+

#property indicator_separate_window

#property indicator_buffers 3

#property indicator_plots   3

#property indicator_type1   DRAW_LINE

#property indicator_type2   DRAW_LINE

#property indicator_type3   DRAW_LINE

#property indicator_color1  DeepSkyBlue  // Amplitude

#property indicator_color2  Red          // Média da Amplitude

#property indicator_color3  Green        // Linha Limite


//--- input parameters

input int PeriodoAmplitude = 30;

input int PeriodoMediaAmplitude = 17;

input double LinhaLimite = 20.0;


//--- indicator buffers

double amplitudeBuffer[];

double mediaAmplitudeBuffer[];

double linhaLimiteBuffer[];


//+------------------------------------------------------------------+

//| Indicator initialization function                                |

//+------------------------------------------------------------------+

int OnInit()

{

    SetIndexBuffer(0, amplitudeBuffer);

    SetIndexBuffer(1, mediaAmplitudeBuffer);

    SetIndexBuffer(2, linhaLimiteBuffer);


    ArraySetAsSeries(amplitudeBuffer, true);

    ArraySetAsSeries(mediaAmplitudeBuffer, true);

    ArraySetAsSeries(linhaLimiteBuffer, true);


    PlotIndexSetString(0, PLOT_LABEL, "Amplitude");

    PlotIndexSetString(1, PLOT_LABEL, "Média da Amplitude");

    PlotIndexSetString(2, PLOT_LABEL, "Linha Limite");


    IndicatorSetString(INDICATOR_SHORTNAME, "Indicador Customizado de Amplitude");

    return INIT_SUCCEEDED;

}


//+------------------------------------------------------------------+

//| Custom indicator iteration function                              |

//+------------------------------------------------------------------+

int OnCalculate(const int rates_total,

                const int prev_calculated,

                const datetime &time[],

                const double &open[],

                const double &high[],

                const double &low[],

                const double &close[],

                const long &tick_volume[],

                const long &volume[],

                const int &spread[])

{

    int required = MathMax(PeriodoAmplitude, PeriodoMediaAmplitude);

    if (rates_total < required)

        return 0;


    for (int i = prev_calculated > required ? prev_calculated : required; i < rates_total; i++)

    {

        amplitudeBuffer[i] = high[iHighest(NULL, 0, MODE_HIGH, PeriodoAmplitude, i)] - low[iLowest(NULL, 0, MODE_LOW, PeriodoAmplitude, i)];

        mediaAmplitudeBuffer[i] = iMA(NULL, 0, PeriodoMediaAmplitude, 0, MODE_SMA, PRICE_CLOSE);

        linhaLimiteBuffer[i] = LinhaLimite;


        // Debugging information

        Print("Bar ", i, ": Amplitude = ", amplitudeBuffer[i], ", Media = ", mediaAmplitudeBuffer[i], ", LinhaLimite = ", linhaLimiteBuffer[i]);

    }


    return rates_total;

}



---------------------------------------------------------------------




Ele deveria ficar como na imagem anexo...




Arquivos anexados:

Respondido

1
Desenvolvedor 1
Classificação
(23)
Projetos
29
14%
Arbitragem
3
0% / 67%
Expirado
3
10%
Trabalhando
2
Desenvolvedor 2
Classificação
(35)
Projetos
57
23%
Arbitragem
2
50% / 0%
Expirado
13
23%
Trabalhando
3
Desenvolvedor 3
Classificação
(839)
Projetos
1430
72%
Arbitragem
117
29% / 47%
Expirado
354
25%
Trabalhando
Publicou: 3 artigos
Pedidos semelhantes
Tenho EA de Stop Loss e Stop Gain Virtual que não esta funcionando e gostaria de Arrumá-lo e acrescentar neste mesmo EA Traling Stop, para a bolsa B3 do Brasil
Smart Retest and Reversal EA SRR EA O EA funcionará em todos os ativos no time frame desejado pelo usuário. INDICADORES 1) O EA irá utilizar os seguintes indicadores para operar, todos gratuitos: 1.1) "Area of interest MT5" 1.2) "Price Retest MT5" 1.3) "Price Reversal Predictor" 1.4) "Easy Buy Sell Signal" GATILHOS 2) Uma vez colocados os indicadores no gráfico, na configuração padrão, o EA poderá fazer dois tipos de
JB-1 30 - 50 USD
Olá! gostaria de um orçamento para desenvolver um robô para mercado forex com: regra de coloração; Cruzamento de duas médias moveis tillson; confirmação no macd; com quantidade de operações diarias que eu possa controlar o horário para operar
Eu já utilizo um robô na plataforma BA. É um indicador com automação baseado no Canal de Keltner, onde o box quando vai pra fora do canal ele indica que absorveu fora, ele aguarda o box que fecha para dentro do canal e indica que absorveu dentro, caso o próximo box feche para dentro ele confirma a compra ou venda. Além disso, preciso de opção de apenas comprar ou apenas vender; e outra com as duas opções de compra e
Preciso de um robô que abra posições simultâneas nos 2 sentidos com uma distância pre determinada e que faça aumento de posições a favor travando preço naquela região de preço
EA de exaustão (RSI) 60 - 80 USD
Preciso de um expert que trabalhe em cima de regiões de exaustão definidas por RSI. _______________________________________________________________________ SÍNTESE DO EXPERT "EXHAUSTION ENFORCEMENT EA" 1) O EA deverá fazer a análise do ativo em H1. Ele opera em paridades. 2) O gatilho de entrada do EA pode ser definido em M2, M5 ou M15, a depender da escolha do usuário. Só haverá um gatilho, que é o cruzamento das

Informações sobre o projeto

Orçamento
34+ USD
Desenvolvedor
30.6 USD
Prazo
para 1 dias