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

 

下午好。

我有一个奇怪的问题。

MT4终端。每个图表上有大约15个指标(标准和自编)。在某些情况下,如果我试图通过指标列表(Ctrl + i)删除一个指标 - 终端挂起。同时,如果你试图删除同一个指标,在指标通过缓冲区画出的线或箭头上按下鼠标右键,选择 "删除指标 "菜单项--它被立即删除,没有任何问题。最恼人的是,问题是浮动的:有时一个指标在删除时挂起,有时另一个....。同样的指标会挂上终端,有时则不会。

在这方面,我有两个问题。

1)通过指标列表删除指标时,终端挂起会有什么后果?

2)我上面描述的两种删除指标的方法有什么区别?

 
satorifx:

我有一个奇怪的问题

先试着把7个指标放在一起运行,如果没有问题,再把其余8个指标分开运行。如果有问题,再把它们分成两半。这将找到一两个罪魁祸首。如果什么都没有发现,就从15号文件中一个一个地删除。 如果你有技巧和耐心,黑匣子的试错方法会奏效。
 
MT5事件处理程序,CHARTEVENT_CUSTOM OnChartEvent()知道它处理多线程。

你能在OnChartEvent()处理程序中创建线程安全的逻辑吗?

你到底能不能在MQL5中编写面向线程的代码?
 
请指教!如果我在专家顾问中通过iCustom调用一个自定义指标,如何使该指标的输入参数显示在专家顾问中?我有指标的源代码。它甚至复杂吗?
 
Sayberix:
请指教!如果我在专家顾问中通过iCustom调用一个自定义指标,我怎样才能使它在专家顾问中显示其输入参数?我有指标的源代码。它甚至很难吗?

按照指标中的列举属性的顺序来写

doubleiCustom(
stringsymbol,// 符号名称
inttimeframe,//时间框架
字符串名称//指标文件夹/用户名称
。..//指标输入参数的列表
intmode,// 数据源
intshift// shift
)。


在指标中打开 "输入参数",依次复制所需数值

一定要看清楚变量的类型,如果是字符串,要用引号表示,我们不能跳过任何东西。

double val=iCustom(NULL,0,"SampleInd","",240,3,"",clrNONE,clrNONE,1,0);
 
下午好,为什么会出现这些假象?紧急关闭代码不是应该在第一个路口关闭吗?没有发生关闭错误。
if(MathAbs(Ima-Ima2) <= c && OrdersTotal() != 0)
        {
         OrderSelect(ticket, SELECT_BY_TICKET);
         int a = OrderType();
         RefreshRates();
         if(a == 0)
           {
            OrderClose(ticket, lots, Bid, 20, clrBlack);
           }
         if(a == 1)
           {
            OrderClose(ticket, lots, Ask, 20, clrBlack);
           }
         ticket = 0;
}
附加的文件:
test.png  22 kb
 
RefreshRates在这里能起作用吗?

在函数 OrderSend ,我们有一个塞纳,但塞纳 是在循环之前设置的。


double cena=Ask;

for (int i=0; i<=10; i++)
   {
   RefreshRates();
   int t=OrderSend(OrderSymbol(),OP_BUY,0.1,cena,10,0,0); 
   if (t!=-1) break;
   }
 
igrok333:
RefreshRates在这里能起作用吗?在函数

OrderSend中,我们有一个塞纳,但塞纳 是在循环之前设置的。


不会

 
Igor Makanu:

不会

他之前拿着价格的时候, asc还是旧的,
,然后只有refreshrates改变了 asc,对吗?
 
你猜对了。cena变量与RefreshRates无关。
原因: