任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 250

 
Crosswert:


哈哈...这里有一个谎言...

结果发现问题出在OpenOrders()函数中。我完全忘记了取消对蜡烛(柱)分解时的订单开仓控制。

if (Volume[0] > 1) return;

因此,在专家顾问测试的TF上,它是在这些分钟内开出订单的。

一般来说,愚蠢的人,在一个艰难的...

谢谢...

它发生了))))。很高兴能帮上忙))))。
 
Crosswert:


if (Volume[0] > 1) return;


不要用这种检查方法来检测新条形的开口,它在账户中不能很好地工作,只能在测试器中工作。你需要按条形时间或按图表上的条形数 来检查。

 
Crosswert:


哈哈...这里有一个谎言...

结果发现问题出在OpenOrders()函数中。我完全忘记了取消对蜡烛(柱)分解时的订单开仓控制。

if (Volume[0] > 1) return;

因此,在专家顾问测试的TF上,它是在这些分钟内开出订单的。

一般来说,愚蠢的人,在一个艰难的...

谢谢...

最好像这样(https://www.mql5.com/ru/forum/138609/page482)
bool CheckOpenM15() // Функция возвращает истину при появлении нового бара на М15 (Использовать только в советние)
{
   static int PrevTime=0;
   if (PrevTime==iTime(NULL, PERIOD_M15,0)) return(false);
   PrevTime=iTime(NULL, PERIOD_M15,0);
   return(true);
}
 
更好的办法是,将所需的TF的名称传给函数
 
artmedia70:
更好的办法是,将所需的TF的名称传到函数中。

这只是一个例子。
 


你知道,与/PrevTime/我曾经尝试过一些东西,但从未成功。我想我没能把这个代码放到正确的地方。

有了/如果(Volume[0]>1)返回;/一切就简单多了。在这里,正如我所相信的,一切都在为选定的TF工作。我不知道它是否在演示中工作,但我没有注意到任何错误、bug和其他开单时的细节。

但我已经很久没有在新栏上使用过控制订单开仓的方法了。我们已经成功地建立了开放职位控制的功能。再加上特定时间的开仓单,我们不需要栏位控制这种方式。

该代码只是旧的。显然,我忘记了限制,直截了当地插入了它并继续使用它......。

 

你能告诉我如何获得斐波那契水平的价格值吗?

根据条件,一旦价格越过指定的斐波那契水平,买入或卖出交易就会开启。

专家顾问使用Kim的函数绘制了一个斐波那契对象:https://www.mql5.com/ru/forum/107476/page107#606564

它画得很流畅,没有任何问题。但那样的话,我们如何知道指定级别的价格值?

这个功能似乎不起作用。

OBJPROP_FIRSTLEVEL+n 210+n 䵮䵮 获取/设置索引为n 的Fibonacci对象的水平值。索引n 可以从0到(级别数-1),但不能超过31


这有可能吗?或者,我们应该从OBJPROP_PRICE1和OBJPROP_PRICE2开始分别计算每个级别的价格?

这是无稽之谈。我半夜起来绞尽脑汁......。当然,夜间可能不是寻找解决方案的最佳时机。

请帮助我们,好心人!

 
Lazarechek:

你能告诉我如何获得斐波那契水平的价格值吗?

根据条件,一旦价格越过指定的斐波那契水平,买入或卖出交易就会开启。

专家顾问使用Kim的函数绘制了一个斐波那契对象:https://www.mql5.com/ru/forum/107476/page107#606564

它画得很流畅,没有任何问题。但那样的话,我们如何知道指定级别的价格值?

这个功能似乎并不适合。

OBJPROP_FIRSTLEVEL+n 210+n 䵮䵮 获取/设置索引为n 的Fibonacci对象的水平值。索引n 可以从0到(级别数-1),但不能超过31


这有可能吗?或者,我们应该从OBJPROP_PRICE1和OBJPROP_PRICE2开始分别计算每个级别的价格?

这是无稽之谈。我半夜起来绞尽脑汁......。当然,晚上可能不是寻找解决方案的最佳时机。

救命啊,好心人!

已经有一个类似的问题。

我想在23.6%的费波水平上获得价格。
double flevel236 = ObjectGetDouble(0, "Fibo",OBJPROP_LEVELVALUE,1); 这个给出0.236,即不是价格,而是水平。
你能告诉我如何获得该级别的价格吗?谢谢你!

而答案也已经给出。

只是两个算术运算。乘法(0.236乘以零级和一级的价格之差),然后加法(将乘法的结果加到零级的价格上)。

 
我写了一个指标,运行它,一切都冻结了,并出现了这样的信息--等待更新(没有无尽的循环)。我重新启动mt,结果还是一样。很明显,我可以在启动前删除这些指标,然后再插入这些指标,但每次要解决这个问题,这种方式都不是办法。也许有一个键可以从命令行启动,进入默认界面?
 
artmedia70:

类似的问题已经有人问过了。

我想在23.6%的费波水平上获得价格。
double flevel236 = ObjectGetDouble(0, "Fibo",OBJPROP_LEVELVALUE,1); 这个给出0.236,即不是价格而是水平。
你能告诉我如何获得该级别的价格吗?谢谢你!

而答案也已经给出。

只是两个算术运算。乘法(0.236乘以零级和一级的价格之差),然后加法(将乘法的结果加到零级的价格上)。




谢谢你的好意!)这是我原则上的想法。)


"0.236乘以零级和一级价格之间的差额" - 只是说 "零级和最后一级 价格之间 "可能更正确。