新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 638

 
Alexey Viktorov:

所以要把它限制在中间。谁禁止了它?

如果他不是男性,那么显然PMS综合症禁止阅读和提出充分的问题,到目前为止只有尖叫声让我...我真的想这样,而不是那样......。

ZS: 我在4个论坛上,如果可能的话,我每月做大约20个免费的MT4工作,以及大约10个单独的TK订单,但定期每1.5-2个月出现一个童话般的人物,他会让我大吃一惊,因为他不需要了解MT4或做订单下的具体任务...他只需要让人头晕目眩,这是他的工作......

我愿意在有生之年给阿蒂姆立一座纪念碑,以表彰他在这么长的时间里与这样的人物打交道的耐性。

 
Alexey Viktorov:

这是很容易做到的。

选项1是使用你的大脑。

如果你不能做到这一点,你可以使用选项2。

不要大惊小怪,特别是不要侮辱开发者和论坛用户,在论坛上寻求帮助。

否则,你将被送到.NET网站。邮件。

我知道如何绕过这个 "功能"。

我不像这个论坛的 "有头有脸的人",我不会把它作为一个秘密。

这种方式看起来像这样。

如果你用最大值填充我们不感兴趣的数组的剩余部分,那么指标就会停止画线

这正是我们在标准MT4指标(例如,SMA、EMA、SMMA等)中看到的对这一问题的 "白痴 "解决方案。

但是,你必须同意,这完全是白痴行为。而且我怀疑,正是因为这种愚蠢的做法,在描述中没有一个字提到这种 "解决 "问题的方式。

也许我错了,但我在标准指标中没有发现任何其他方法。

 
Alexey Viktorov:

正是这样。你开一个新账户,通过内部转账将钱从旧账户转到新账户,完全没有任何费用。

我一点也不明白。阿列克谢,你怎么知道你在说什么?这与8个指示器缓冲区有什么关系,一些翻译器无法翻译?我不知道...
 
Igor Makanu:

如果他不是男性,那么显然PMS综合症禁止阅读和提出充分的问题,到目前为止只有尖叫声让我...我真的想这样,而不是那样......。

ZS: 我在4个论坛上,如果可能的话,我每月做大约20个免费的MT4工作,以及大约10个单独的TK订单,但定期每1.5-2个月出现一个童话般的人物,他会让我大吃一惊,因为他不需要了解MT4或做订单下的具体任务...他只需要让人头晕目眩,这是他的工作......

我愿意在有生之年给阿蒂姆立一座纪念碑,以表彰他在这么长的时间里处理这些人物的耐心。

你可能需要休息一下。

 
你必须清醒地做孩子,这样将来就不会有问题。
 

我做错了什么?

//+------------------------------------------------------------------+
//|                                                      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:
我根本就不明白什么。阿列克谢,你怎么知道我们在说什么?这与8个指示器缓冲区有什么关系,一些翻译器无法翻译?这很难理解...

Artem,你是一个程序员...M. Botvinnik曾经说过,计算机是一个白痴。因此,每个程序员都知道如何与一个白痴交谈。

我以前已经读过关于8或512个缓冲区的文章,这篇文字是关于投诉经纪人拒绝将账户从 MT4转到MT5。


伊戈尔-马卡努

我愿意在阿特姆有生之年为他在处理这种人物时的耐心而给他立碑。

我已经有了...


 
Roman Sharanov:

我做错了什么?

//+------------------------------------------------------------------+
//|                                                      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);
  }
//+------------------------------------------------------------------+
 

建议应该在法庭上添加什么,以便使指标每秒钟而不是每滴答都 工作?

#property indicator_chart_window

#property indicator_buffers 1

#property indicator_color1 Red

#属性严格

double buffer[]。

空白的init()

{

SetIndexBuffer(0,buffer)。

SetIndexStyle(0,STYLE_SOLID)。

}

空白启动()。

{


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

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




double a = vbid_1;

double b = vbid_2;

双倍x = a / b 。

buffer[0] = x;

评论(x)。

}


 
gonsharov:

我需要在法庭上添加什么来使指标每秒钟而不是每滴答都 工作?

你需要阅读https://docs.mql4.com/ru/basis/function/events

并编写你的事件处理程序OnTimer()

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