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
(33)
Projetos
54
22%
Arbitragem
2
50% / 0%
Expirado
13
24%
Trabalhando
3
Desenvolvedor 3
Classificação
(815)
Projetos
1395
72%
Arbitragem
115
29% / 47%
Expirado
345
25%
Carregado
Pedidos semelhantes
Terms of Reference for Indicator Development 1. Objective To develop a signal indicator for binary options in MQL4 or MQL5 that identifies entry and exit points on the chart based on market trends and patterns shown in the videos on the Trendify Binary Options YouTube channel . This channel provides practical examples of the expected behavior and functionality of the indicator. 2. Main References The primary
OLÁ. EU PRECISO CRIAR UM ROBO PARA TRABALHAR COM OS DADOS HISTORICOS NO MT5, ELE DEVE PEGAR OS TICKS, DADOS DE UM DIA ESPECIFICADO, COM HORA E MINUTO. E SIMULAR A ABERTURA DE UMA ORDEM PENDENTE PARA ME INFORMAR SE OUVE SLIPPAGE E QUAL FOI O VALOR EM PIPS DA SLIPPAGE NAQUELA DATA, MINUTO E SEGUNDO ESPECIFICADO. APENAS ISSO. QUERO TRABALHAR COM DADOS PASSADOS (HISTORICOS)
STRATEGY DEFINITION: This setup is based on the volatility of the "X" minute chart, combining the alignment of averages from different timeframes! It considers the alignment of the averages for the continuity of direction, providing excellent movements. TRADE DYNAMICS TYPE OF AVERAGES: EXPONENTIAL. TIMEFRAME: 1 MINUTE TRADE DYNAMICS: WHEN THE "A" EXP MOVING AVERAGE OF "X" MINUTES + "B" EXP OF "X" MINUTES + "C" EXP

Informações sobre o projeto

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