'i_fastMATF' - variable not defined E:\Insall'd soft's\Forex\MetaTraderForProgramming\experts\libraries\Scalper_M1_lbr.mq4 (17, 38)
'i_fastMAPeriod' - variable not defined E:\Insall'd soft's\Forex\MetaTraderForProgramming\experts\libraries\Scalper_M1_lbr.mq4 (17, 50)
'i_fastMAShift' - variable not defined E:\Insall'd soft's\Forex\MetaTraderForProgramming\experts\libraries\Scalper_M1_lbr.mq4 (17, 66)
'i_fastMAMethod' - variable not defined E:\Insall'd soft's\Forex\MetaTraderForProgramming\experts\libraries\Scalper_M1_lbr.mq4 (17, 81)
'i_fastMAApplied' - variable not defined E:\Insall'd soft's\Forex\MetaTraderForProgramming\experts\libraries\Scalper_M1_lbr.mq4 (17, 97)
'i_fastMAIndex' - variable not defined E:\Insall'd soft's\Forex\MetaTraderForProgramming\experts\libraries\Scalper_M1_lbr.mq4 (17, 114)
'i_slowMATF' - variable not defined E:\Insall'd soft's\Forex\MetaTraderForProgramming\experts\libraries\Scalper_M1_lbr.mq4 (18, 38)
'i_slowMAPeriod' - variable not defined E:\Insall'd soft's\Forex\MetaTraderForProgramming\experts\libraries\Scalper_M1_lbr.mq4 (18, 50)
'i_slowMAShift' - variable not defined E:\Insall'd soft's\Forex\MetaTraderForProgramming\experts\libraries\Scalper_M1_lbr.mq4 (18, 66)
'i_slowMAMethod' - variable not defined E:\Insall'd soft's\Forex\MetaTraderForProgramming\experts\libraries\Scalper_M1_lbr.mq4 (18, 81)
'i_slowMAApplied' - variable not defined E:\Insall'd soft's\Forex\MetaTraderForProgramming\experts\libraries\Scalper_M1_lbr.mq4 (18, 97)
'i_slowMAIndex' - variable not defined E:\Insall'd soft's\Forex\MetaTraderForProgramming\experts\libraries\Scalper_M1_lbr.mq4 (18, 114)
'i_filtrMATF' - variable not defined E:\Insall'd soft's\Forex\MetaTraderForProgramming\experts\libraries\Scalper_M1_lbr.mq4 (19, 38)
'i_filtrMAPeriod' - variable not defined E:\Insall'd soft's\Forex\MetaTraderForProgramming\experts\libraries\Scalper_M1_lbr.mq4 (19, 51)
'i_filtrMAShift' - variable not defined E:\Insall'd soft's\Forex\MetaTraderForProgramming\experts\libraries\Scalper_M1_lbr.mq4 (19, 68)
'i_filtrMAMethod' - variable not defined E:\Insall'd soft's\Forex\MetaTraderForProgramming\experts\libraries\Scalper_M1_lbr.mq4 (19, 84)
'i_filtrMAApplied' - variable not defined E:\Insall'd soft's\Forex\MetaTraderForProgramming\experts\libraries\Scalper_M1_lbr.mq4 (19, 101)
'i_filtrMAIndex' - variable not defined E:\Insall'd soft's\Forex\MetaTraderForProgramming\experts\libraries\Scalper_M1_lbr.mq4 (19, 119)
18 ошибок, 0 предупреждений
:))))))))是的--这就对了。所有的责备都接受!"。- 为此我再次表示歉意。- 这都是(通过特殊练习)强烈发展的后果
创造性、想象力、诗意等方面--都一样,人有两个半球:创造性和理性。我的错是我看到了,却没有纠正它。
所以你所有的说法都是对的,我是有罪的。
但只有问题仍未解决......。
最后如何解决?
如果你认为我没有听到什么,请澄清一下。我理解反馈技术(为了能够 "听到"),但我还没有看到解决方案。
如何获得正确的数字,而不用四舍五入,直到小数点后第三位,例如Ask=1,20667的值?- 像 "StrToDouble(DoubleToStr(Ask,3))的解决方案= 1,2100 // 1,2100是结果(即四舍五入)"没有用。
提前感谢您的宽容和理解。
DoubleToStr(Ask,3) !!!- 那是值得一看的东西。
而解决方案就在文件中(这是一个测试脚本)。
看了你的代码....你太糊涂了))))
我不太明白,为什么我们需要积累ticks,因为在内存中存储(甚至不存储,因为当前条形必须写在HST中--否则图表将不会被更新)当前条形的参数--六个数字TOHLCV,并在tick接收时根据需要更新它们,并通过给定的条件(TimeCurrent()-O>1)使条形截止。
尝试这样重写代码,它将减少8倍,我保证(我已经检查过了:)。
像这样吗?重新设计了算法,删除了累加器,将其转换为专家顾问,将刻度的渐变添加到看跌-看涨,使用不同的算法添加了蜡烛图的尾部,评论了所有内容。我没有什么可以检查的,周末没有虱子。至于音量--在我看来,它是在FileFlush 中,它与缓冲区一起工作。对于未来,我拒绝在FileSeek和FileFlush之间放置任何东西...
DoubleToStr(Ask,3) !!!- 这应该被看到。
而解决方案就在文件中(这是一个测试脚本)。
非常感谢你。
我还是不明白这个机制--为什么在我的版本中它不工作,为什么 "DoubleToStr(Ask,3) != DoubleToStr(Ask,Digits)"--显然,不是所有的功能都在手册中披露。
你的函数被解析了--我理解它的解决方式。但我确信一定有一个 "更简单 "的方法来解决这个问题,因为编程语言中的函数集是为用它们解决典型问题而设计的,而不是为每个用户自己创造这些典型函数。我天真地以为DoubleToStr()正好解决了这个问题。- 我不明白当时使用它的意义(它的细微差别是什么)。我是一个普通的用户,不是一个程序员,要 "深入了解这种细节"。在这种情况下,如果所有的时间都将花在详细的编程上,什么时候使用创造产品。
再次感谢。我现在将尝试把它全部放入代码中。希望这一切都能成功。
非常感谢你。
我仍然不明白这个机制--为什么我的版本不能工作,为什么 "DoubleToStr(Ask,3)!=DoubleToStr(Ask,Digits)" --显然,参考书中没有披露函数的所有特性。
你的函数被解析了--我理解它的解决方式。但我确信一定有一个 "更简单 "的方法来解决这个问题,因为编程语言中的函数集是为用它们解决典型问题而设计的,而不是为每个用户自己创造这些典型的函数。我天真地以为DoubleToStr()正好解决了这个问题。- 我不明白当时使用它的意义(它的细微差别是什么)。我是一个普通的用户,不是一个程序员,要 "深入了解这种细节"。在这种情况下,如果所有的时间都将花在详细的编程上,什么时候使用创造产品。
再次感谢。我现在将尝试把它全部放入代码中。希望这一切都能成功。
为您的案件而努力
double x =MathFloor(y*1000)/1000;
DoubleToStr()分两步完成对数字的转换:首先它将数字四舍五入(根据数学规则),然后将其转换为字符串。
谢谢你的澄清。当然,我不知道,在这种情况下,我在责备StrToDouble()。但经过你的澄清,我现在认为它们都是四舍五入的:(
为什么四舍五入并不清楚。如果需要四舍五入,在这种情况下,最好首先使用一些四舍五入函数(根据需要)--同样的归一化。那么就会有四舍五入和不四舍五入的两种可能性。否则,我们会有不必要的杂乱。此外,我不明白为什么当我只需要把一个现有的数字变成不同的类型时,它就会出现圆圈。我已经得到了它(一个数字),为什么还要再补上它。
为您的案件而努力
double x = MathFloor(y*1000)/1000;
正是如此!这是个不错的解决方案。我以前见过,但在我的情况下错过了一些东西。谢谢你,亚历山大,也非常感谢你!- 现在,我将有2个解决方案!: ))(为动画片 "Prostokvashino "准备)
这样一个理论问题。收盘价,以点为单位,是蜡烛中最后一个点的出价还是要价?我注意到,如果出价写在Close[0]中,那么转轮上的报价就和会议上的报价一样。
想过了...竞标中的想法...
大量的错误。也许你应该看一个例子,以此类推?
基本上是同样的事情。我的理解是,虽然在教程中根本没有提到,但包含的内容只需要作为专家顾问和库之间的链接。
在内联中导入函数,并声明要导入的函数。你在声明之间加一个. 符号。
在这里我写了一个inlude和一个库(只有一个函数,但它只是为了测试)。
包含在这里。
当所有必要的(特定猫头鹰使用的)函数被声明后,在结尾处加上#import。
这里是图书馆本身。
它甚至不能编译。
你没有在库中声明任何东西,也没有错误,但我由于某些原因而有错误。我没有看到任何区别。
维克多,你的函数中有很多变量,但都没有被声明。
编译者说。
未定义的变量
一个变量没有被定义。其中有18人。
==============
从该功能的设计来看,它是一个高度专业化的功能。你为什么要把它放在图书馆里?特别是因为它可能会在每个小节的循环中被调用。
你说的是关于速度和优化的事情。你正在创建一个非常缓慢的代码。在MQL4中,你不应该把函数放在一个循环中。循环中的函数调用越少,代码运行越快。
==============
很久以前,当我开始用MQL4写作时,我写了我的第一个外汇指数指标。那里也有一些函数,对字符串的操作...真是一团糟...我花了5分钟来切换TFs。
然后我坐下来思考,消除了所有的函数,并在循环块中直接打开。消除了与字符串有关的工作,用标识符代替了它们。一切可以提前计算的,而且没有变化的--就是这样计算的(优化)。将代码移至专家顾问。因此,切换TF时,最重的计算是15秒。然后我把计算结果转移到DLL。现在,它需要大约5秒钟。