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

 
Fast235:

isso é para mim,

haverá um atraso extra até que todos os pontos sejam definidos pelo gráfico durante a compilação

Se necessário (por exemplo, recompilar), criar uma variável terminal expetname.deinitreason.ChartId() no OnDeinit e dar-lhe uma bandeira temporária, colocar o código do motivo lá. O mesmo com os dados relacionados (você pode precisar deles).

no OnInit - ver se a variável existe, agir sobre seu valor.

e excluir tal variável em qualquer caso...

---

dica - as terminações anormais são pegas da mesma maneira, mas ao contrário :-) No OnInit uma variável é verificada e criada, e no OnDeinit ela é excluída. Se ocorrer um erro crítico e a EA/terminal simplesmente cair, a variável permanecerá.

 
Maxim Kuznetsov:

Se necessário (por exemplo, recompilar), criar uma variável terminal expetname.deinitreason.deinitreason.ChartId() no OnDeinit e dar-lhe a bandeira temporária, colocar o código do motivo lá. O mesmo com os dados relacionados (você pode precisar deles).

no OnInit - ver se a variável existe, agir sobre seu valor.

e excluir tal variável em qualquer caso...

---

dica - as terminações anormais são pegas da mesma maneira, mas ao contrário :-) No OnInit uma variável é verificada e criada, e no OnDeinit ela é excluída. Se ocorrer um erro crítico e a EA/terminal simplesmente cair, a variável permanecerá.

Estou familiarizado com arquivos e variáveis globais, não vale a pena criar isto, talvez os desenvolvedores removam da compilação - 0, ou até mesmo adicionem um estado que o terminal começou, por exemplo, eu posso adicionar um carregador de histórico para multisímbolos ao invés de entrada

 

Olá a todos! A idéia era fazer as velas, volume, em diferentes cores dependendo da direção das velas (para cima ou para baixo). Entretanto, a última vela ganha cores diferentes devido a mudanças na direção da vela ao longo do tempo. E com o tempo, todas as velas adquirem cores diferentes. A questão é como mudar a cor da última vela e não mudar as outras. Ou talvez outra idéia.



//+------------------------------------------------------------------+
//|                                      VSA_Volume_Color            |
//|                        Copyright 2019, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2019, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
#property indicator_separate_window
#property indicator_buffers 3

//////////////
datetime PrevTime = 0;
double iVolume_UP[];
double iVolume_DWN[];
double iVolume_NULL[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
   IndicatorDigits(5);
//--- indicator buffers mapping
   SetIndexBuffer(0, iVolume_UP);
   SetIndexBuffer(1, iVolume_DWN);
   SetIndexBuffer(2, iVolume_NULL);
//---
   SetIndexStyle(0, DRAW_HISTOGRAM,EMPTY,2,clrGreen);
   SetIndexStyle(1, DRAW_HISTOGRAM,EMPTY,2,clrWhite);
   SetIndexStyle(2, DRAW_HISTOGRAM,EMPTY,2,clrRed);
//---
   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 i = 0, counted_bars = IndicatorCounted();
   i = Bars - counted_bars - 1;
   if(counted_bars < 0)
      return(-1);
//---
   if(counted_bars > 0)
      counted_bars--;
//--- return value of prev_calculated for next call
///////////
   while(i >= 0)
     {
      if(Close[i] > Open[i])
         iVolume_UP[i] =  iVolume(NULL, 0, i) * 1.0;
      if(Close[i] < Open[i])
         iVolume_DWN[i] =  iVolume(NULL, 0, i) * 1.0;
      if(Close[i] == Open[i])
         iVolume_NULL[i] =  iVolume(NULL, 0, i) * 1.0;
      i--;
     }

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
   return(rates_total);
  }
//+------------------------------------------------------------------+
Obrigado!
 

Redefinir amortecedores desnecessários

iVolume_UP[i]=EMPTY_VALUE;
 

link para um tópico separado -SERIES_LASTBAR_DATE

a impressora mostrou que o sinal perdido porque - o sinal veio do indicador através do evento personalizado, verificou a existência de um novo bar usando SERIES_LASTBAR_DATE e

na impressão os dados do bar anterior, não novos ..., cerca de 50 ofícios no total de 7 caracteres, desliza tal, o que você pode olhar, qualquer idéia? ping 150.

Processador Ryzen 3700x 16 roscas

----

se eu usar um esquema similar de múltiplos símbolos, você mediu resultados similares em 2 ou 3 terminais em tempo real, em M1 por exemplo, eu espero de algumas horas a meio dia por tal salto, com 40-50 negociações por dia

O processador carrega alguns poucos % do robô, quase dorme.

В моих ТС пропуск сигнала
В моих ТС пропуск сигнала
  • 2021.03.16
  • www.mql5.com
Не люблю создавать новые темы, Небольшие исходные данные: Советник работает в OnChatEvent, 7 символов, циклов нет, прямая передача номера за минусо...
 

um comércio em 30-50, ok, pode fechar no preto ou no preto, mas

Tenho um sistema para calcular os lucros totais, o que é bastante complicado, e deve envolver este comércio agora, e não no próximo sinal

você pode cavar mais fundo por 5 anos.

se o modelo do evento for torto, por favor informe os desenvolvedores para que ele possa ser descartado, a julgar pelos postos iniciais de espionagem, onde diferentes variantes foram testadas, também houve dispersão e falhas?
 
Aleksei Stepanenko:

Redefinir amortecedores desnecessários

Ótimo. Tudo funciona ). Obrigado!
 
Rapazes, por favor me avisem, estou confundido com indexação em buffers indicadores mql5.
Se a funçãoArraySetAsSeries(Buffer, true) for aplicada
, apenas a indexação é expandida? Ou os valores tampão também são expandidos?
 
Roman:
Rapazes, por favor me avisem, estou confundido com indexação em buffers indicadores mql5.
Se a funçãoArraySetAsSeries(Buffer, true) for aplicada
, apenas a indexação é expandida? Ou os valores tampão também são expandidos?
Quando verdadeira, a barra zero do buffer indicador é a barra mais à direita no gráfico. Se falso, é a barra mais à esquerda.
Nada mais.
 
Artyom Trishkin:
Quando verdadeira, a barra zero do tampão indicador é a mais à direita no gráfico. Em falso, é o que resta.
Isso é tudo o que há.

Obrigado.
Artem, por favor, me diga mais uma coisa.
A função

ChartSetInteger(ChartID(), CHART_SHOW, false)
Esconde a janela do gráfico principal, e as subjanelas do indicador instalado.
Como posso esconder apenas a janela principal da carta? Ao mesmo tempo, a subjanela indicadora deve permanecer visível.
Razão: