This script allows you to assemble a zip-file of your MQL5-program with all dependencies automatically. The dependencies are: included source files via #include directive (both modes of absolute () and relative ("") references are supported); icons linked by #property icon directive; resources (images, sounds, and other types) embedded by...
//--- загрузка данных М1 таймфрейма для поминутной экспирации в оптимизаторе if(FirstStartFlag)
{
int count = cnt_bars*5;
int copied=CopyRates(_Symbol,PERIOD_M1,0,count,rates);
if(copied>0)
{
if(debug) Print("Скопировано баров: "+IntegerToString(copied)+", надо было "+IntegerToString(count));
if(copied<count)
{
Print("Не удалось получить достаточно исторических данных, ждем");
return(0);
}
}
else
{
Print("Не удалось получить исторические данные, ждем");
return(0);
}
ArraySetAsSeries(rates,true);
}
//--- загрузка актуальных данных М1 таймфрейма для поминутной экспирации в оптимизаторе int count = cnt_bars*5;
copied=CopyRates(_Symbol,PERIOD_M1,0,count,rates);
if(copied>0)
{
Print("cnt_Statist() Скопировано баров: "+IntegerToString(copied)+", надо было "+IntegerToString(count));
if(copied<count)
{
Print("cnt_Statist() Не удалось получить достаточно исторических данных");
}
}
else
{
Print("cnt_Statist() Не удалось получить исторические данные");
}
ArraySetAsSeries(rates,true);
Константы, перечисления и структуры / Торговые константы / Информация об исторических данных по инструменту - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
你为什么要打架?我们为什么不一起做一些有用的事情呢?
Stanislav在KB中发布了 一个非常有用的脚本。它很容易创建带有MQL文件和资源的档案。
我有一个有数百个mqh文件的EA。使用该脚本,我现在可以轻松地将我的EA转移到源代码,控制版本并与他人分享。
谢谢你。我会试着把它分解,用图表事件检查选项。
请看一下这个主题,最近详细地处理了这个问题 -https://www.mql5.com/ru/forum/327888
Anton Shpilyuk: 2) Циклом-перебором до тех пор пока дата не будет совпадать(минус - скорость работы) это так?
关于 "按时间拷贝获取酒吧指数 "的问题
恐怖,它真的是!?任务是在指标中获得M1时间框架的条形图,尽管指标本身在M5时间框架上工作。
1.我们不得不在OnCalculate()中初始化所需的时间框架,以便在指标开始之前加载它(初始化之后,FirstStartFlag = false;)。记住,在指标中,如果没有加载,它将给出-1或没有完全加载,所以我们检查有多少是加载的,如果不够,我们去开始返回(0)。
声明数组MqlRates rates[]; 在开始时,其中cnt_bars*5; - 重新计算M1中M5的条数。
之后,每次进行计算时,我们都会在所需函数的主体中更新M1的历史数据。
此外,在M5条的循环中,我们做了一个搜索相应M1条的索引的嵌入式循环,time[s]是正在处理的时间框架的当前M5条。
然后我们用这个索引来寻找必要的M1条形数据,在我的例子中,它是 rates[IndexRates-5].time 和 rates[IndexRates-k-4].close。
谢天谢地,这个嵌套循环很快就通过了,即使是在90天的历史上。但我希望能够像二进制搜索一样,使用ArrayBsearch函数在rate[].time数组中搜索条形索引。
该错误 的简要要点。
当有类的继承性时,A <= B <= C <= D
并实现了两个重载函数,例如,一个带参数A*,一个带参数B*。
当把一个C*或D*对象传入这样一个函数时,MQL会导致 "对重载函数的模糊调用 "的编译错误。
问题:对于这个愚蠢的错误,是否有比上面提出的更合理的解决方法?
在这里,我们会有更多的 "为什么MQL !=C++"...
如果你没有弄清事情的真相,为什么要发表评论?
如果你没有弄清事情的真相,为什么要发表评论?
因为我早就为这种澄清开了一个话题(因为没有人像你一样可以自己做)。
然后,语言的差异与错误或bug毫无关系!
MQL正在一点一点地削弱士气。
该错误 的简要要点。
当有类的继承性时,A <= B <= C <= D
并实现两个函数,例如,一个用于A*,一个用于B*。
当把一个C*或D*对象传递给这样的函数时,MQL会引起 "对重载函数的模糊调用 "的编译错误。
问题:对于这个愚蠢的错误,是否有比上面提出的更合理的解决方法?
嗯,STL不是一对一的转置。你必须仔细看一下这里的具体情况。最简单的方法是将所有可能的功能写在基类或接口的抽象方法中,而在子类中--要么实现,要么=delte。在这种情况下,你需要向基类的方法传递相同类型的指针或引用。虽然在虚拟表的形式上有一个不可避免的弊端,但最好是以这样的方式安排架构,在任何地方都不会有昂贵的dynamic_cast分支。