Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 991

 
LuckyTrader:
O erro desapareceu, com a mesma redação, agora foi para outra parte. Logo acima escrevi para Igor

insira as impressões onde o erro ocorre, talvez você possa resolver seu problema dessa maneira.

Não há outra maneira, já expliquei o motivo de seu erro

 

Olá, decidi reescrever o indicador de MQL4 para MQL5 e fiquei preso em buffers indicadores... Acho que entrei tudo o que precisava, mas a linha indicadora ainda não está exibida!

Aqui está um exemplo, quero mostrar o preço de fechamento das últimas 30 barras, até fiz um comentário sobre o buffer, para ver se ele está cheio de algo ...

O buffer está enchendo mas o gráfico está vazio e eu não o vejo (((

Qual pode ser o problema? Talvez as barras estejam ao contrário na MQL5?)


//+------------------------------------------------------------------+
//|                                                         Test.mq5 |
//|                                                                . |
//|                                                                . |
//+------------------------------------------------------------------+
#property copyright "."
#property link      "."
#property version   "1.00"
#property indicator_chart_window
#property indicator_buffers 8         // Количество буферов индикатора
#property indicator_plots   8         // Количество графических серий

#property indicator_label1 "TestLine" 
#property indicator_type1 DRAW_LINE  
#property indicator_style1 STYLE_SOLID 
#property indicator_width1 1  
#property indicator_color1 Red  
//+------------------------------------------------------------------+
//|                        БУФЕРЫ                                    |
//+------------------------------------------------------------------+
double Buffer1[];
double Buffer2[];
double Buffer3[];
double Buffer4[];
double Buffer5[];
double Buffer6[];
double Buffer7[];
double Buffer8[];
//+------------------------------------------------------------------+
//|                     ПАРАМЕТРЫ БУфЕРА                             |
//+------------------------------------------------------------------+
int OnInit(){                   

SetIndexBuffer(0,Buffer1,INDICATOR_DATA);
PlotIndexSetInteger(0,PLOT_DRAW_TYPE,DRAW_LINE);  
PlotIndexSetInteger(0,PLOT_LINE_WIDTH,1);         
PlotIndexSetInteger(0,PLOT_LINE_COLOR,Blue);   

return(INIT_SUCCEEDED);}
//+------------------------------------------------------------------+
//| Деинициализация                                                  |
//+------------------------------------------------------------------+
void OnDeinit(const int reason){
Comment("");}
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+
//| 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[]){
                
                
for(int Z = 30; Z>=0; Z--) {
Buffer1[Z] = iClose(NULL,0,Z);} 
Comment(Buffer1[0]);               

return(rates_total);}
//+------------------------------------------------------------------+

 
Nikita Zubarov:

Olá, decidi reescrever o indicador de MQL4 para MQL5 e fiquei preso em buffers indicadores... Acho que entrei tudo o que precisava, mas a linha indicadora ainda não está exibida!

Aqui está um exemplo, quero mostrar o preço de fechamento das últimas 30 barras, até fiz um comentário sobre o buffer, para ver se ele está cheio de algo ...

O buffer está enchendo mas o gráfico está vazio e eu não o vejo (((

Qual pode ser o problema? Talvez as barras estejam ao contrário na MQL5?)


A numeração das barras na MQL5 é invertida

for(int Z = rates_total-50; Z<rates_total; Z++)


a indexação pode ser alterada usandohttps://www.mql5.com/ru/docs/array/arraysetasseries
Документация по MQL5: Операции с массивами / ArraySetAsSeries
Документация по MQL5: Операции с массивами / ArraySetAsSeries
  • www.mql5.com
//| Custom indicator initialization function                         | //| Custom indicator iteration function                              |
 
Igor Makanu:

A numeração das barras na MQL6 é oposta


você pode mudar a indexação usandohttps://www.mql5.com/ru/docs/array/arraysetasseries

Obrigado!, acrescentou uma linha e começou a aparecer normalmente!

ArraySetAsSeries(Buffer1,true); 
mas acho que a numeração das barras é a mesma da direita para a esquerda, apenas os amortecedores vão para trás....
 
Nikita Zubarov:

Obrigado!, acrescentou uma linha e está começando a aparecer corretamente!

mas parece-me que a numeração das barras é a mesma da direita para a esquerda, apenas os tampões vão para trás....

Em 4, a barra número 0 é a barra mais à direita.

Em 5, a barra nº0 é a barra mais à esquerda.

por padrão, a indexação dos buffers indicadores é a mesma que para as séries cronológicas

se você usar o ArraySetAsSeries(), ele será aplicado apenas a uma matriz - em seu exemplo ao buffer de matriz de indicadores1 , para o cálculo correto você também deve aplicá-lo para fechar

ArraySetAsSeries(Buffer1,true); 
ArraySetAsSeries(close,true); 
for(int Z = 30; Z>=0; Z--) 
{
Buffer1[Z] = сlose[i];
} 

ou mudar o laço como descrito acima

 
Olá, você pode me informar se eu quero que minha EA abra uma posição em um símbolo que não seja o gráfico atual?
OrderSend(MarketInfo("EURUSD",MODE_ASK), OP_BUY, Lots, Ask, Slip, 0, 0, "", Magic, 0, Blue)
Estou correto? me corrija se não
 
Averman:
Olá, você pode me informar se eu quero que minha EA abra uma posição em um símbolo que não seja o gráfico atual?
OrderSend(MarketInfo("EURUSD",MODE_ASK), OP_BUY, Lots, Ask, Slip, 0, 0, "", Magic, 0, Blue)
Estou correto? me corrija se não

É claro que não está certo.

OrderSend("EURUSD", OP_BUY, Lots, MarketInfo("EURUSD",MODE_ASK), Slip, 0, 0, "", Magic, 0, Blue) 
Se eu não cometi um erro em algum lugar, você cometeu. Mas em qualquer caso, o significado deve ser compreensível.
 
A MQL6 já apareceu, alguém testou esta casca?
 
Seric29:
A MQL6 já apareceu, alguém testou esta casca?

Hoje é 1º de abril?

 
Alexey Viktorov:

Não estamos em 1º de abril?

E eu comecei a pesquisar no Google)).

... encontrou um website mql6 de uma página e um link para um fórum em mql5.com