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

 
Alexey Viktorov:

Portanto, limite-o ao meio. Quem o proíbe?

Se ele não é homem, então aparentemente a síndrome TPM proíbe ler e fazer perguntas adequadas, até agora só guinchos me deixam... Eu realmente quero desta maneira e não daquela maneira...

ZS: Estou em 4 fóruns, se possível, faço cerca de 20 trabalhos MT4 gratuitos por mês, e cerca de 10 pedidos de TK individuais, mas regularmente a cada 1,5-2 meses aparece um personagem de conto de fadas que vai me estourar a cabeça porque ele não precisa entender MT4 ou fazer uma tarefa específica sob o pedido ... Ele só precisa fazer a cabeça de alguém girar, esse é seu trabalho...

Eu daria a Artem um monumento em sua vida por sua paciência em lidar com tais personagens em tão longo tempo.

 
Alexey Viktorov:

É muito fácil de fazer.

A opção 1 é usar seu cérebro.

Se você não puder fazer isso, pode usar a opção 2.

Sem alarde e sem insultar os desenvolvedores e os usuários do fórum em particular, peça ajuda no fórum.

Caso contrário, você será enviado para o . correio.

Eu sei como contornar esta "característica".

Ao contrário das "pessoas respeitáveis" deste fórum, eu não vou fazer dele um segredo.

Assim se parece com isto:

Se você preencher o restante da matriz que não nos interessa com o valor máximo, então os indicadores param de traçar linhas.

Esta é exatamente a solução "idiota" deste problema que vemos nos indicadores MT4 padrão (por exemplo, SMA, EMA, SMMA e outros).

Mas, você deve concordar, isto é uma completa idiotice. E suspeito que precisamente por causa desta idiotice não há uma única palavra sobre esta forma de "resolver" este problema na descrição.

Talvez eu esteja errado, mas não encontrei nenhuma outra forma nos indicadores padrão.

 
Alexey Viktorov:

Exatamente como isto. Você abre uma nova conta e transfere dinheiro da conta antiga para a nova conta por transferência interna, sem absolutamente nenhuma taxa.

Eu não entendo nada. Alexey, como você sabe sequer do que está falando? O que tem a ver com 8 buffers indicadores que alguns tradutores não conseguem traduzir? Eu não sei...
 
Igor Makanu:

Se ele não é homem, então aparentemente a síndrome TPM proíbe ler e fazer perguntas adequadas, até agora só guinchos me deixam... Eu realmente quero desta maneira e não daquela maneira...

ZS: Estou em 4 fóruns, se possível, faço cerca de 20 trabalhos MT4 gratuitos por mês, e cerca de 10 pedidos de TK individuais, mas regularmente a cada 1,5-2 meses aparece um personagem de conto de fadas que vai me estourar a cabeça porque ele não precisa entender MT4 ou fazer uma tarefa específica para pedir ... Ele só precisa fazer a cabeça de alguém girar, esse é seu trabalho...

Eu daria a Artem um monumento em sua vida por sua paciência em lidar com tais personagens em tão longo tempo.

Você provavelmente precisa de um descanso.

 
Você tem que fazer as crianças sobriamente para que não haja problemas no futuro.
 

O que eu estou fazendo de errado?

//+------------------------------------------------------------------+
//|                                                      CCI_DIV.mq5 |
//|                                                        RomanRott |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "RomanRott"
#property link      "https://www.mql5.com"
#property version   "1.00"
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_plots   1
//--- plot HL_CCI
#property indicator_label1  "HL_CCI"
#property indicator_type1   DRAW_HISTOGRAM
#property indicator_color1  clrRed
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1
//--- input parameters
input int      Period_=70; //Период
//--- indicator buffers
double         HL_CCIBuffer[];
int cci_h1, cci_h2;
double cci1[], cci2[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,HL_CCIBuffer,INDICATOR_DATA);
   cci_h1 = iCCI(_Symbol, PERIOD_CURRENT, Period_, PRICE_HIGH);
   cci_h2 = iCCI(_Symbol, PERIOD_CURRENT, Period_, PRICE_LOW);
   
   //ArraySetAsSeries(cci1, true);
   //ArraySetAsSeries(cci2, true);
//---
   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[])
  {
   CopyBuffer(cci_h1, 0, 0, rates_total-prev_calculated, cci1);
   CopyBuffer(cci_h2, 0, 0, rates_total-prev_calculated, cci2);
   for(int i = prev_calculated; i<rates_total;i++){
      HL_CCIBuffer[i] = cci1[i]-cci2[i];
   }
   return(rates_total);
  }
//+------------------------------------------------------------------+
 
Artyom Trishkin:
Não entendo absolutamente nada. Alexei, como você sabe sequer do que estamos falando? O que tem a ver com 8 buffers indicadores que alguns tradutores não conseguem traduzir? É difícil de entender...

Artyom, você é um programador... M. Botvinnik disse uma vez que um computador é um idiota. Portanto, todo programador sabe como falar com um idiota.

Já li cerca de 8 ou 512 buffers antes, e este texto era sobre a reclamação sobre a recusa do corretor em migrar a conta de MT4 para MT5.


Igor Makanu:

Eu daria um monumento a Artem em sua vida por sua paciência ao lidar com tais personagens.

Eu já tenho...


 
Roman Sharanov:

O que eu estou fazendo de errado?

//+------------------------------------------------------------------+
//|                                                      CCI_DIV.mq5 |
//|                        Copyright 2018, MetaQuotes Software Corp. |
//|                             https://mql5.com/ru/users/artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://mql5.com/ru/users/artmedia70"
#property version   "1.00"
#property indicator_separate_window
#property indicator_buffers 3
#property indicator_plots   1
//--- plot DivCCI
#property indicator_label1  "DivCCI"
#property indicator_type1   DRAW_HISTOGRAM
#property indicator_color1  C'143,188,139'
#property indicator_style1  STYLE_SOLID
#property indicator_width1  2
//--- input parameters
input uint     InpPeriod=70;   // CCI period
//--- indicator buffers
double         BufferDivCCI[];
double         BufferHCCI[];
double         BufferLCCI[];
//--- global variables
int            period_cci;
int            handle_hcci;
int            handle_lcci;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- set global variables
   period_cci=int(InpPeriod<2 ? 2 : InpPeriod);
//--- indicator buffers mapping
   SetIndexBuffer(0,BufferDivCCI,INDICATOR_DATA);
   SetIndexBuffer(1,BufferHCCI,INDICATOR_CALCULATIONS);
   SetIndexBuffer(2,BufferLCCI,INDICATOR_CALCULATIONS);
//--- setting indicator parameters
   IndicatorSetString(INDICATOR_SHORTNAME,"HL CCI ("+(string)period_cci+")");
   IndicatorSetInteger(INDICATOR_DIGITS,Digits());
//--- setting buffer arrays as timeseries
   ArraySetAsSeries(BufferDivCCI,true);
   ArraySetAsSeries(BufferHCCI,true);
   ArraySetAsSeries(BufferLCCI,true);
//--- create CCI's handles
   ResetLastError();
   handle_hcci=iCCI(NULL,PERIOD_CURRENT,period_cci,PRICE_HIGH);
   if(handle_hcci==INVALID_HANDLE)
     {
      Print("The iCCI(",(string)period_cci,") object was not created: Error ",GetLastError());
      return INIT_FAILED;
     }
   handle_lcci=iCCI(NULL,PERIOD_CURRENT,period_cci,PRICE_LOW);
   if(handle_lcci==INVALID_HANDLE)
     {
      Print("The iCCI(",(string)period_cci,") object was not created: Error ",GetLastError());
      return INIT_FAILED;
     }
//---
   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[])
  {
//--- Проверка и расчёт количества просчитываемых баров
   if(rates_total<fmax(period_cci,4)) return 0;
//--- Проверка и расчёт количества просчитываемых баров
   int limit=rates_total-prev_calculated;
   if(limit>1)
     {
      limit=rates_total-1;
      ArrayInitialize(BufferDivCCI,EMPTY_VALUE);
      ArrayInitialize(BufferHCCI,0);
      ArrayInitialize(BufferLCCI,0);
     }
//--- Подготовка данных
   int count=(limit>1 ? rates_total : 1),copied=0;
   copied=CopyBuffer(handle_hcci,0,0,count,BufferHCCI);
   if(copied!=count) return 0;
   copied=CopyBuffer(handle_lcci,0,0,count,BufferLCCI);
   if(copied!=count) return 0;

//--- Расчёт индикатора
   for(int i=limit; i>=0 && !IsStopped(); i--)
     {
      BufferDivCCI[i]=BufferHCCI[i]-BufferLCCI[i];
     }

//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
 

aconselhar o que deve ser acrescentado ao tribunal para que o indicador funcione a cada segundo em vez de cada tiquetaque?

#janela_do_cartão_indicador de propriedade

#property indicator_buffers 1

#indicador de propriedade_cores1 Vermelho

#propriedade rigorosa

duplo tampão[];

init() vazio

{

SetIndexBuffer(0,buffer);

SetIndexStyle(0,STYLE_SOLID);

}

início nulo ()

{


double vbid_1 = MarketInfo("USDRUB",MODE_BID);

double vbid_2 = MarketInfo("EURUSD",MODE_BID);




double a = vbid_1;

duplo b = vbid_2;

duplo x = a / b ;

tampão[0] = x;

Comentário (x);

}


 
gonsharov:

O que eu preciso acrescentar ao tribunal para que o indicador funcione a cada segundo em vez de cada carrapato?

Você precisa lerhttps://docs.mql4.com/ru/basis/function/events

e escreva seu manipulador de eventosOnTimer()

Функции обработки событий - Функции - Основы языка - Справочник MQL4
Функции обработки событий - Функции - Основы языка - Справочник MQL4
  • docs.mql4.com
В языке MQL4 предусмотрена обработка некоторых предопределенных событий. Функции для обработки этих событий должны быть определены в программе MQL4: имя функции, тип возвращаемого значения, состав параметров (если они есть) и их типы должны строго соответствовать описанию функции-обработчика события. Именно по типу возвращаемого значения и по...