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

 
Fast235:

这是给我的。

将会有一个额外的滞后,直到所有的点在编译过程中被图表设置。

如果有必要(例如,重新编译),在OnDeinit中创建一个终端变量expetname.deinitreason.ChartId(),并给它一个临时标志,把原因代码放在那里。相关数据也是如此(你可能需要它)。

在OnInit中--查看变量是否存在,对其值采取行动。

并在任何情况下删除此类变量...

---

提示--异常终止是以同样的方式捕捉的,但要反过来 :-)在OnInit中,一个变量被检查和创建,而在OnDeinit中,它被删除。如果发生了严重的错误,EA/终端刚刚崩溃,该变量将保留。

 
Maxim Kuznetsov:

如果有必要(例如重新编译),在OnDeinit中创建一个终端变量expetname.deinitreason.ChartId(),并给它设置临时标志,将原因代码放在那里。相关数据也是如此(你可能需要它)。

在OnInit中--查看变量是否存在,对其值采取行动。

并在任何情况下删除此类变量...

---

提示--异常终止是以同样的方式捕捉的,但要反过来 :-)在OnInit中,一个变量被检查和创建,而在OnDeinit中,它被删除。如果发生了严重的错误,EA/终端刚刚崩溃,该变量将保留。

我对文件和全局变量很熟悉,不值得创建这个,也许开发者会从编译中删除-0,甚至添加一个终端已经开始的状态,例如我可能为多符号添加一个历史加载器,而不是输入。

 

大家好!我们的想法是根据蜡烛的方向(向上或向下),制作不同颜色的蜡烛,体积,。然而,最后一根蜡烛得到不同的颜色,因为随着时间的推移,蜡烛的方向发生了变化。而随着时间的推移,所有的蜡烛都会有不同的颜色。问题是如何改变最后一支蜡烛的颜色而不改变其他蜡烛。或者是另一个想法。



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

重置不必要的缓冲区

iVolume_UP[i]=EMPTY_VALUE;
 

链接到一个单独的主题 -SERIES_LASTBAR_DATE 的新条。

打印机显示错过了信号,因为--信号来自于自定义事件的指标,它使用SERIES_LASTBAR_DATE 检查了一个新的条形图,并 将其打印出来。

在打印前一栏的数据时,没有新的......, 大约50个交易中共有7个字符,滑动这样,你能看什么,有什么想法吗? 坪150。

Ryzen 3700x处理器16线程

----

如果我使用类似的多符号方案,我已经在2或3个终端上进行了实时尝试,以M1为例,我等待几个小时到半天的时间来进行这样的跳转,每天有40-50次交易。

处理器的负载为机器人的百分之几,几乎是在睡觉。

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

一笔交易在30-50美元,好吧,它可以在黑色或黑色中收盘,但

我有一个计算总利润的系统,这是相当棘手的,它应该涉及现在的交易,而不是在下一个信号时。

你可以深挖5年。

如果事件模型 是歪的,请让开发者知道,这样就可以舍弃了,从最初在spy上的帖子来看,不同的变体被测试,也有分散和遗漏?
 
Aleksei Stepanenko:

重置不必要的缓冲区

很好。一切正常)。谢谢你!
 
伙计们,请指教,我对mql5指标缓冲区中的索引感到困惑。
,如果ArraySetAsSeries(Buffer,true)函数被应用
,只有索引被展开?或者缓冲区的值也被扩大了?
 
Roman:
伙计们,请指教,我对mql5指标缓冲区中的索引感到困惑。 ,如果
ArraySetAsSeries(Buffer,true)函数被应用 ,只有索引被展开?或者缓冲区的值也被扩大了?
当为真时,指标缓冲区的零条是图表上最右边的一条。如果是假的,就是最左边的栏。
没有别的了。
 
Artyom Trishkin:
当为真时,指标缓冲区的零条在图表中处于最右边。在假的时候,它是最左边的。
这就是它的全部内容。

谢谢你。
Artem请再告诉我一件事。
职能

ChartSetInteger(ChartID(), CHART_SHOW, false)
隐藏主图表窗口和所安装指标的子窗口。
怎样才能只隐藏主图表窗口?同时,指标子窗口应保持可见。
原因: