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

 

Por que você não pode compartilhar o código?

Estou recebendo um erro: uso de DLL detectado

Por favor, me informe como eu posso compartilhar o código.

Eu vi isto: https://www.mql5.com/en/code/7673

E meu código é semelhante.

Period Converter Optimized
Period Converter Optimized
  • www.mql5.com
Lastest Version: 1.4 2005.12.24  1.4      faster to detect if data changed by removing float point  operations, added support to output CSV file in real time.                             OutputCSVFile = 0 means no CSV.                             OutputCSVFile = 1 means CSV + HST.                             OutputCSVFile = 2 CSV only, no HST...
 

Olá. O que eu estou fazendo de errado?

Há um indicador de histograma. Ele mostra a diferença no número de carrapatos para cima e para baixo.

Estou tentando usar valores indicadores em 1, 2 e 3 barras em minha EA.

double tbs1=iCustom(Symbol(),0,"tickbs",1,1);

double tbs2=iCustom(Symbol(),0,"tickbs",1,2);

double tbs3=iCustom(Symbol(),0,"tickbs",1,3);

No testador, recebo um erro: tickbs EURUSD,M1: array out of range in 'tickbs.mq4' (26,19)

#property copyright "tickbs"
#property link      ""
#property version   "1.00"
#property strict
#property indicator_separate_window
#property indicator_buffers    1
#property indicator_color1     clrGreen
//--- input parameter
extern color   ClrUpUp        = clrGreen;
extern int     HistWidth      = 2;
//--- buffers
double BufB[];
double dOldPrice, dNewPrice;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   IndicatorBuffers(1);
   SetIndexBuffer(0,BufB);  
   SetIndexEmptyValue(0,0.0);
   SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,HistWidth,ClrUpUp);       
   SetIndexLabel(0,"Hs");
   
   dOldPrice=Close[0];
   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[])
  {
   dNewPrice=Close[0];
   if (dNewPrice>dOldPrice){
      BufB[0]=BufB[0]+1;
      dOldPrice=dNewPrice;
   }
   else 
      if (dNewPrice<dOldPrice){
         BufB[0]=BufB[0]-1;
         dOldPrice=dNewPrice;
      }
   return(rates_total);
  }
//+------------------------------------------------------------------+

Obrigado.

 
Oleg Bondarev:

Olá. O que eu estou fazendo de errado?

Há um indicador de histograma. Ele mostra a diferença no número de carrapatos para cima e para baixo.

Estou tentando usar valores indicadores em 1, 2 e 3 barras em minha EA.


No testador, recebo um erro: tickbs EURUSD,M1: array out of range in 'tickbs.mq4' (26,19)

Obrigado.

Os amortecedores são indexados a partir do zero.
 
Igor Makanu:

repetidas vezes.... Uma classe é antes de tudo um tipo de dado, como int, duplo...

você quer um conjunto de dados desse tipo? - declare um array, se o array for dinâmico, então redimensione-o, então inicialize TODOS os ELEMENTOS com os dados necessários - você precisa de apontadores, então inicialize-os com apontadores para a classe, você precisa de instâncias de classe, então cada elemento do array não será um apontador, mas o próprio objeto

essa é a essência do OOP, qualquer classe é, antes de tudo, um tipo de dado de usuário.... não sei o quanto dizer sobre isso, mas a metodologia é a mesma que com um tipo de dado regular, mas o que você vai escrever dentro da classe é um assunto pessoal, mas a inicialização de uma nova instância começará sempre com um construtor, e que construtor - por padrão, com parâmetros ou sem parâmetros - você pode escolher como inicializar o objeto...... ugh, mas ainda ler livros, não há como fazê-lo desta forma

Por favor, informe o que ler sobre o OOP com exemplos para o MT4. Ou em geral, com exemplos. A sintaxe e a lógica do idioma é difícil de seguir, e o manual de idioma nem sempre é claro até o final.

 
Valeriy Yastremskiy:

Por favor, informe sobre o que ler sobre o OOP com exemplos para o MT4. Ou com exemplos em geral. A sintaxe e a lógica da linguagem é difícil de entender, e o manual de linguagem nem sempre é completamente claro.

Vá para a seção Artigos aqui e navegue - há muito sobre o OOP, inclusive para iniciantes.

Статьи по MQL5
Статьи по MQL5
  • www.mql5.com
Статьи по программированию на языке MQL5
 
Artyom Trishkin:

Por favor, vá para a seção Artigos aqui e navegue através deles - há muitos artigos no OOP, incluindo aqueles para iniciantes.

Obrigado. Isso é útil. Alguém pode precisar dele.

OLP

https://www.mql5.com/ru/articles/357

https://www.mql5.com/ru/articles/703

https://www.mql5.com/ru/articles/116

https://www.mql5.com/ru/articles/70

https://www.mql5.com/ru/articles/351

GA

https://www.mql5.com/ru/articles/55

MQL4

https://www.mql5.com/ru/articles/1483

Eu também gostei))))

https://www.mql5.com/ru/articles/1499


Também uma pergunta, quando você clica nos artigos, aparecem 18 páginas de artigos e o título:

Artigos sobre Programação em MQL4 e MQL5

Quando clico na segunda página, a MQL4 desaparece. Quando eu apertar o MT4, aparecerão 6 páginas. E eles não estão na seleção inicial.


Объектно-ориентированный подход к построению мультитаймфреймовых и мультивалютных панелей
Объектно-ориентированный подход к построению мультитаймфреймовых и мультивалютных панелей
  • www.mql5.com
В статье рассказывается о том, как объектно-ориентированный подход может быть использован для создания мультитаймфреймовых и мультивалютных индикаторов для MetaTrader 5. Главной целью является построение универсальной панели, которая может быть использована для отображения различных типов данных (цены, их изменения, значения индикаторов...
 
Alexey Viktorov:
Os amortecedores são indexados a partir do zero.

Obrigado.

 
Por favor, alguém responda minha pergunta no fórum: https://www.mql5.com/ru/forum/336385
Как я могу скопировать symbols.raw и symgroups.raw в новый файл с дополнительной группой и символом в соответствующей группе MQL4/MT4?
Как я могу скопировать symbols.raw и symgroups.raw в новый файл с дополнительной группой и символом в соответствующей группе MQL4/MT4?
  • 2020.04.01
  • www.mql5.com
Я хочу знать, как я могу создать новый файл, скажем symbols_extra.raw и symgroups_extra.raw на MQL4, используя существующие symbols.raw и symgroups...
 
Valeriy Yastremskiy:

ao clicar na segunda página da MQL4 desaparece. Quando você clica em MT4 6 páginas aparece. E eles não estão na seleção inicial.

MQL4 e MQL5 são 99% idênticos (sem SQlITE, OpenCL, DirectX), portanto você pode se sentir livre para ler artigos na MQL5, mas considerando que nos terminais 4 e 5 o trabalho com pedidos é diferente e há nuances de trabalho com séries de tempos

 
Igor Makanu:

Como MQL4 e MQL5 são 99% idênticas (sem SQlITE, OpenCL e DirectX), você pode ler os artigos sobre MQL5, mas levando em conta que nos terminais 4 e 5 o trabalho com pedidos é diferente e há nuances de trabalho com séries de tempos.

Este não é o caso, não há artigos sobre mql4 na seleção inicial. Isto é enganoso. A propósito, a mesma lógica está na kodobase. Mas os cabeçalhos simplesmente não mudam lá. Tive que usar o método do instinto para descobrir isso). Obrigado, vamos ler))))