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

 
很明显,竞价已经老化,但我希望这种设计能让我在当前的条形图上以不同的竞价开盘价开 几个仓。在测试器中工作正常,但在演示中,它打开一个位置后立即关闭。
 
rapid_minus:
我不明白答案在哪里。我是说这个。"该功能集成了每0.1秒对专家顾问的停止标志状态的检查"?如果是这样,如何才能去除这个标志?

不,如果你读到最后,你会看到这个问题的答案。

注意事项

Sleep()函数不能从自定义指标中调用,因为指标是在界面线程中执行的,不能拖累它。该功能每隔0.1秒对专家的停止标志状态进行一次嵌入式检查。策略测试器中 的Sleep()函数并没有造成任何延迟




 
LRA:

首先把这个粘在指标的末端。一旦你看到屏幕上的标记,就想办法把你想要的东西放进去。 在这里你会得到建议,但你必须自己去做。

对不起,我不知道接下来该怎么做(
int Number=25。

如果(H==H1&&H1==H2)
{if(J == true) {ObjectCreate(PatternText[shift],
OBJ_TEXT, 0, Time[shift1], High[shift1] + Range*5)。
ObjectSetText(PatternText[shift], "pattern", 10, "Arial", Red);
downArrow[shift1] = High[shift1] + Range*0.5;}if(setalert == 0 && Alert == true) {pattern = "pattern"; setalert = 1;}}




如果(ObjectFind(0, "Text")<0) // 检查输出标签
{
ObjectCreate("Text",OBJ_LABEL, 0, 0, 0); // 创建
ObjectSet("Text", OBJPROP_CORNER, 1); // 右上角。
ObjectSet("Text", OBJPROP_XDISTANCE, 10); //X
ObjectSet("Text", OBJPROP_YDISTANCE, 10); //Y
}
ObjectSetText("Text", string(number), 14, "Arial",Black); // Output to label

}
return(0);
}
 
AlexeyVik:    你让我吃惊......数学日志10

这个问题更容易解决。

用他....,当然更容易。也许它当时失踪了,或者丢失了......。在我心爱的TurboPascal中,它绝对是缺失的。我做了对数乘法。
 
谢谢你!
 
LRA:
有了它当然更容易....也许它当时失踪了,或者丢失了......。在我最喜欢的TurboPascal中肯定缺少这个东西。我曾做过对数乘法。

在切换到更新的mql4之后,有一段时间,文档中出现了一个错误。点击MathLog10 打开MathLog帮助

我给servicedesk写过信,但他们修复了一半,留下了另一半......

 
我有一个指标,它完全重复主窗口中的条形图,其价格和时间比例相同。问题:是否有一个CHARTSET CHARTGET,当你滚动图表时,指标窗口的缩放方式与主窗口的相同?
 
AlexeyVik:

log(10)确实不是1,但mql没有十进制对数的事实让我感到惊讶...

那么是什么呢?https://docs.mql4.com/ru/math/mathlog10,虽然文中有一个错误。

这个问题更容易解决。

我从最后一个帖子中直接回答。

什么是对数我明白了,我不明白它在那个代码里是干什么用的,但经过你和那个同志的通信,我明白了,它是用于小数位的,对吗?

难道不能以其他方式进行吗?为什么我在代码中需要它(int)?为什么你的方法比我提供的线路好?)

非常感谢)

 
Igemon:

我从最后一个帖子中直接回答。

我明白什么是对数,我不明白那段代码中的原因,但经过你和那位同志的通信,我明白了,它是用来确定小数点后的数字的,对吗?

难道不能以其他方式进行吗?为什么在代码(int) 中这样写?为什么你的方法比我提供的线路好?)

非常感谢)

是的,以确定小数点后 的数字。如果批量是由一些公式定义的,并且结果可能有更多的小数位,则需要对批量值进行标准化。在某些情况下,你可能只放一个两点,但这样你可能会遇到错误,所以最好以编程方式定义。

还有另一种方法可以做到这一点。有两种方法解决这个问题,一种是将数字转换成字符串,定义字符串长度,找到点字符的索引,字符串长度和点字符的索引之间的差值将被评估为数字的小数部分。而在mql5论坛上,你可以找到几种变体,有些更薄,有些更容易。

这里还有一个变体。

int fun(double ch)
{
 int i = 0;
 double res = 0, ostatok = fmod(ch, 1);
 while(ostatok != 0 && i < 16) // число взято от фонаря для прерывания зацикленности
  {
   res = ostatok * 10;
   ostatok = NormalizeDouble(fmod(res, 1), 8); // Вроде 8 максимально
   i++;
  }
 return(i);
}/*******************************************************************/

该函数定义了绝对任何数字的小数位数。

这个算法简单得令人发指,我们应该考虑除以1的残余物有多少次会大于0。

我并没有说我的方法更好。每个程序员都按照他看到的问题解决方案来写。

双数类型的数字,即使它的小数部分没有有效数字,也像,例如,2.0,这是不太正确的,为了得到一个正常的整数,它被隐式转换为int类型。

 

注意事项

Sleep()函数不能从自定义指标中调用,因为指标是在界面线程中执行的,不能拖累它。该函数每0.1秒对专家的停止标志状态进行一次嵌入式检查。策略测试器中 的Sleep()函数并没有造成任何延迟

每个人都是如此聪明,以至于看着他们就觉得很可怕。我写道,在策略测试器中,滑点被忽略了(这很清楚),但所有的头寸都是按照我的规定开放的。但在演示滑块上却不起作用,只开了一个头寸,而且立即关闭。这是我无法解决的问题。