Язык программирования MQL5 позволяет решать задачи на совершенно новом уровне. Даже те задачи, которые уже вроде имеют решения, благодаря объектно-ориентированному программированию могут подняться на качественно новый уровень. В данной статье специально взят простой пример проверки появления нового бара на графике, который был преобразован в достаточно мощный и универсальный инструмент. Какой? Читайте в статье.
你好!
请帮助我写一个EA。
专家顾问的精髓:打开4个1手的订单。
2卖出:美元兑加元;欧元兑美元。
2买。GBPUSD;USDJPY。
在达到5个点的总利润后,关闭所有交易。并重新开始。
一共有4块地?
如果没有利润怎么办?
你好!
请帮助我写一个EA。
专家顾问的精髓:打开4个1手的订单。
2卖出:美元兑加元;欧元兑美元。
2买。GBPUSD;USDJPY。
在达到5个点的总利润后,关闭所有交易。并重新开始。
没有必要在不同的主题中重复你的问题。
请联系自由职业者。
问候。
你能告诉我如何编写条件,以便在当前图表上的新蜡烛 开盘时执行该动作吗?
你好!请帮助我理解数组
我需要用MASD指标来填充一个数组。按照我的理解,有数据:条形索引、MODE_MAIN 值、MODE_SIGNAL值,也就是说,数组应该是三维类型的(a [] [] [] ),还是什么?如果你能举出一个例子。
https://www.mql5.com/ru/articles/159
谢尔盖,你自己使用过这个代码吗?
文章总体上是好的,但它是
非常危险。为了使其发挥作用,你必须按照鼓手的建议,定期 "撸 "一下历史。我没有说明什么地方。
总的来说,在经历了许多痛苦之后,我得出的结论是,最好使用CopyRates()函数
关于可能的错误的信息,如果我们愿意,可以由我们每个人填写。
{
static datetime timeLastBar;
MqlRates mqlRates[];
int s = 0;
do
{
s++;
}
while(CopyRates(_Symbol, PERIOD_CURRENT, 0, 1, mqlRates) < 0 && s < 7);
bool ret = timeLastBar != mqlRates[0].time;
if(ret)
timeLastBar = mqlRates[0].time;
return(ret);
}/*******************************************************************/
谢尔盖,你自己使用过这个代码吗?
文章总体上是好的,但它是
非常危险。为了使它发挥作用,你必须像鼓手建议的那样,定期 "撸 "一下历史。哪个地方没有具体说明。
阿列克谢,告诉我,你什么时候使用它遇到过错误?你有过这样的经历吗?
我自己就是用这种方法,没有遇到过麻烦。好吧,也许我还是要?
我希望得到一些解释--可以这么说......:)
鼓手在哪里说的?
阿列克谢,告诉我,你什么时候遇到过这种用法的错误?你有过吗?
因为我自己也使用这种方法,而且还没有遇到任何麻烦。好吧,也许我仍然必须这样做。
我希望得到一些解释--可以这么说......:)
德鲁巴什卡在哪里说过这样的话?
https://www.mql5.com/ru/forum/89213
有八页的争吵。不仅是drubashka,Slawa也说
你在哪里看到这个功能的不充分行为?你仔细阅读过文件 吗?
返回有关历史数据状态的信息。不更新信息,不启动数据分页。只是返回目前有的东西。
阿列克谢,告诉我,你什么时候遇到过这种用法的错误?你有过吗?
因为我自己也使用这种方法,而且还没有遇到任何麻烦。好吧,也许我仍然必须这样做。
我希望得到一些解释--可以这么说......:)
鼓手在哪里说的?
而这里是抽搐的地方。
它在一个终端的一个符号上不起作用(在M15时间框架上)--我99%确定问题在于使用另一个时间框架,我需要一直 "撸 "着历史。 我认为通过CopyTime()来做会更好。
阿列克谢,告诉我,你什么时候遇到过这种用法的错误?你有过吗?
例如,在MT5终端有一些专家顾问(MACD样本和移动平均线),但如果我试图在他们的代码中放入一个特定的TF,例如PERIOD_H4,而不是"_Period",那么在对较高TF的开盘价进行测试时,会出现以下指标加载 错误:无法加载指标'MACD' [4805] ,结果是:测试器因OnInit失败而停止。你有什么看法?也许我做错了什么?是否有可能对专家顾问进行编码,使其对任何TF的开盘价进行测试?
我曾尝试将该指标作为一个自定义指标使用,错误是一样的。
提前感谢您的反馈。
int OnInit(void)
{
ExtHedging=((ENUM_ACCOUNT_MARGIN_MODE)AccountInfoInteger(ACCOUNT_MARGIN_MODE)==ACCOUNT_MARGIN_MODE_RETAIL_HEDGING) 。
ExtTrade.SetExpertMagicNumber(MA_MAGIC)。
ExtTrade.SetMarginMode()。
//---- 移动平均线指标
ExtHandle=iMA(_Symbol,PERIOD_H4,MovingPeriod,MovingShift,MODE_SMA,PRICE_CLOSE)。
如果(ExtHandle==INVALID_HANDLE)
{
printf("创建MA指标错误")。
return(INIT_FAILED)。
}
//-- 确定
return(INIT_SUCCEED)。
}