//--- сбросим значение ошибки ResetLastError();
//--- создадим кнопку if(!ObjectCreate(chart_ID,name,OBJ_BUTTON,sub_window,0,0))
{
Print(__FUNCTION__,
": не удалось создать кнопку! Код ошибки = ",GetLastError());
return(false);
}
#property indicator_separate_window#property indicator_buffers1// Количество буферов#property indicator_color1 Blue // Цвет линии 0 буфера#property indicator_level11#property indicator_level2 -1//--------------------------------------------------------------- 2 --//---- indicator parameters externint History =5000; // Колич.баров в расчётной историиexternint Period_SMA =13;
double
Line_0[]; // Инд. массив ravi //--------------------------------------------------------------- 4 --int init() // Специальная функция init()
{
SetIndexBuffer(0,Line_0); // Назначение массива буферу
SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2);// Стиль линии
IndicatorShortName("KRI");
//--------------------------------------------------------------- 5 --return(0); // Выход из спец. функции init()
}
//--------------------------------------------------------------- 8 --int start() // Специальная функция start()
{
//--------------------------------------------------------------- 9 --double
SMA; // МА для расчета значений индикатора // формyла (PRICE-SMA/SMA)*100); int
i, // Индекс бара
n, // Формальн. параметр(индекс бара)
Counted_bars; // Количество просчитанных баров //-------------------------------------------------------------- 10 --
Counted_bars=IndicatorCounted(); // Количество просчитанных баров
i=Bars-Counted_bars-1; // Индекс первого непосчитанногоif (i>History-1) // Если много баров то ..
i=History-1; // ..рассчитывать заданное колич.//-------------------------------------------------------------- 11 --while(i>=0) // Цикл по непосчитанным барам
{
//-------------------------------------------------------- 12 --
SMA=iMA(NULL,0,Period_SMA,0,MODE_SMA,PRICE_CLOSE,i); // Значение SМА
Line_0[i] =0;
if (SMA>0) Line_0[i] = ((Open[0]-SMA)/SMA)*100; // Индик. массив линии KPI//-------------------------------------------------------- 13 --
i--; // Расчёт индекса следующего бара//-------------------------------------------------------- 14 --
}
return(0); // Выход из спец. ф-ии start()
}
//-------------------------------------------------------------- 15 --
你好。
假设我有两个指标,第一个有4个缓冲区,第二个有2个。我把它们放在图表上并打开数据窗口(CTRL+D)。 列表中包含6个缓冲区,从0到5。我怎样才能在MQL中从这个列表中读取缓冲区5的值呢?按要求的指标使用iCustom是不方便的。使用这个列表更方便。我知道他们这样做了,但怎么做呢?
研究帮助中的例子,对象的创建 总是通过检查来完成。
为什么对物体要这样做?一个物体未能被创造的概率是多少?
一般来说,我感兴趣的是在哪里可以读到关于mql编程中的良好礼仪的规则,知道在哪些灌木丛中躺着耙子,建议。
研究帮助中的例子,对象的创建 总是通过检查来完成。
为什么对物体要这样做?一个物体未能被创造的概率是多少?
一般来说,我感兴趣的是在哪里可以读到关于mql编程中的良好礼仪,要知道陷阱在哪里,请给我建议。
例如,一个具有此名称的对象已经存在。
当我在一个函数内创建一个按钮时,我得到了骂人的机会
'return' - 'void'函数 返回一个值 112 16
在这种情况下,我应该怎么做?
如何用格式为int Mas[1][2][2][2]的值填充4维数组,如何给数组的每个单元格赋值,在这种情况下,有一个2维数组int Arr[1][2]={3,4};如何填充4维?
多维数组通常在循环中填入正确的值--这使它更难出错,对于四维数组,应该是这样的,但我可能是错的。
当我在一个函数内创建一个按钮时,我得到了骂人的机会
'返回'-'无效'函数 返回一个值 112 16
在这种情况下,我应该怎么做?
开始阅读帮助,https://www.mql5.com/ru/docs/basis/function
如果你需要更多的帮助,你应该阅读任何一本C++书籍。 第一章应该解释函数
当我在一个函数内创建一个按钮时,我得到了一个骂人的声音
'return' - 'void'函数 返回一个值 breakeven_fish.mq5 112 16
在这种情况下该怎么做?
同志们--看看这个指标是否正确。有一个公式值=(Open[0]-SMA(P,n))/SMA(P,n))*100%。
我把它放在图表上--它计算和绘制一切。我开始检查计算器上的一些条形图--它的值与所画的不一致......。
下面是一个例子--我用公式((1,0178-1,0182)/1,0182)计算出开盘价为1,0178,MA(13)为1,0182。* 100% - 计算器上的结果是-0.0393。而MT4图表显示为-0.0929。是代码中的错误还是计算器没有正确计算那里的一些数值?请帮助。我在此附上指标。
如果你要从函数中返回bool类型的值,那么函数类型不应该是void,但你猜猜看是哪一种。
如果你想从一个函数中返回数据怎么办?
是否有可能只对某一特定符号的头寸进行循环,而不必每次都使用PositionsTotal?
到目前为止,我想出的唯一办法是把票据写进一个数组,然后分别处理它们,但也许有更简单的办法?
如果你想从一个函数中返回数据怎么办?
是否有可能只对某一特定符号的头寸进行循环,而不必每次都使用PositionsTotal?
到目前为止,我想出的唯一办法是把票据写入一个数组,然后分别处理它们,但也许有更简单的办法?
最后不清楚需要什么--一些不连贯的想法。