我正在尝试在MQL4中创建一个数组,并且在每个刻度上我想向array [0]添加一个新值并将其余项推回去,所以旧的array [0]变成array [1 ]和array [1]变成array [2],依此类推。我希望能够无限制地执行此操作,每个刻度一次。然后,我可以使用array [1]访问上一个刻度的值,但是我也可以访问其当前值array [0]。谢谢!
答案 0 :(得分:0)
在MQL4中可能有一个原语数组,这里的问题是,您必须将它们复制到每个刻度上,这是浪费时间和资源的。如果要保存一些更高级的数据(例如{
"_id" : ObjectId("5be9eaeedb9c7a2836cdd49e"),
"name1" : "St. John's Wort",
"name2" : "Lepirudin",
"description" : "The metabolism of Lepirudin can be increased when combined with St. John's Wort."
}
),则必须将其存储为结构或创建一个类并保存类。复制所有对象确实毫无意义,这就是为什么您应该考虑应用ods select none; /*do not display output - faster processing*/
proc means data=sashelp.cars /*input data set*/
stackods /*stack ods to have the table appear with statistics across the top*/
N NMISS Min P10 P20 P30 P40 P50 P60 P70 P80 P90 Max /*stats to show*/;
var mpg_city mpg_highway invoice msrp; /*variables included in analysis*/
ods output summary = want; /*capture output into a data set*/
run;
ods select all; /*reset output options*/
或MqlTick
并将对象添加到末尾的原因。简单的魔术将有助于调用索引为0的元素:
CList
如果您确实需要无限数量的操作-可能2 ^ 31-1对您来说足够了,为加快速度,您可能会想到CArrayObj
拥有1000个空插槽并且不调整大小(=全部复制到新位置)每隔一个滴答声。