新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 96

 
Vadim Podoprigora:

你好!

请帮助我写一个EA

专家顾问的精髓:打开4个1手的订单。

2卖出:美元兑加元;欧元兑美元。

2买。GBPUSD;USDJPY。

在达到5个点的总利润后,关闭所有交易。并重新开始。

一共有4块地?

如果没有利润怎么办?

 
Vadim Podoprigora:

你好!

请帮助我写一个EA

专家顾问的精髓:打开4个1手的订单。

2卖出:美元兑加元;欧元兑美元。

2买。GBPUSD;USDJPY。

在达到5个点的总利润后,关闭所有交易。并重新开始。

没有必要在不同的主题中重复你的问题。

请联系自由职业者

 
Andrey Sokolov:

问候。

你能告诉我如何编写条件,以便在当前图表上的新蜡烛 开盘时执行该动作吗?

https://www.mql5.com/ru/articles/159
Обработчик события "новый бар"
Обработчик события "новый бар"
  • 2010.10.04
  • Konstantin Gruzdev
  • www.mql5.com
Язык программирования MQL5 позволяет решать задачи на совершенно новом уровне. Даже те задачи, которые уже вроде имеют решения, благодаря объектно-ориентированному программированию могут подняться на качественно новый уровень. В данной статье специально взят простой пример проверки появления нового бара на графике, который был преобразован в достаточно мощный и универсальный инструмент. Какой? Читайте в статье.
 

你好!请帮助我理解数组

我需要用MASD指标来填充一个数组。按照我的理解,有数据:条形索引、MODE_MAINMODE_SIGNAL,也就是说,数组应该是三维类型的(a [] [] [] ),还是什么?如果你能举出一个例子。

 

谢尔盖,你自己使用过这个代码吗?

文章总体上是好的,但它是

datetime lastbar_time=SeriesInfoInteger(Symbol(),Period(),SERIES_LASTBAR_DATE);

非常危险。为了使其发挥作用,你必须按照鼓手的建议,定期 "撸 "一下历史。我没有说明什么地方。

总的来说,在经历了许多痛苦之后,我得出的结论是,最好使用CopyRates()函数

关于可能的错误的信息,如果我们愿意,可以由我们每个人填写。

bool newBar()
{
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);
}/*******************************************************************/
 
Alexey Viktorov:

谢尔盖,你自己使用过这个代码吗?

文章总体上是好的,但它是

datetime lastbar_time=SeriesInfoInteger(Symbol(),Period(),SERIES_LASTBAR_DATE);

非常危险。为了使它发挥作用,你必须像鼓手建议的那样,定期 "撸 "一下历史。哪个地方没有具体说明。

阿列克谢,告诉我,你什么时候使用它遇到过错误?你有过这样的经历吗?

我自己就是用这种方法,没有遇到过麻烦。好吧,也许我还是要?

我希望得到一些解释--可以这么说......:)

鼓手在哪里说的?

 
Artyom Trishkin:

阿列克谢,告诉我,你什么时候遇到过这种用法的错误?你有过吗?

因为我自己也使用这种方法,而且还没有遇到任何麻烦。好吧,也许我仍然必须这样做。

我希望得到一些解释--可以这么说......:)

德鲁巴什卡在哪里说过这样的话?

https://www.mql5.com/ru/forum/89213

有八页的争吵。不仅是drubashka,Slawa也说

斯拉瓦

你在哪里看到这个功能的不充分行为?你仔细阅读过文件 吗?

返回有关历史数据状态的信息不更新信息,不启动数据分页。只是返回目前有的东西。

 
Artyom Trishkin:

阿列克谢,告诉我,你什么时候遇到过这种用法的错误?你有过吗?

因为我自己也使用这种方法,而且还没有遇到任何麻烦。好吧,也许我仍然必须这样做。

我希望得到一些解释--可以这么说......:)

鼓手在哪里说的?

而这里是抽搐的地方。

弗拉基米尔-卡尔普托夫
它在一个终端的一个符号上不起作用(在M15时间框架上)--我99%确定问题在于使用另一个时间框架,我需要一直 "撸 "着历史。 我认为通过CopyTime()来做会更好。
这个问题不是由猫的因地制宜来解决的。
 
Artyom Trishkin:

阿列克谢,告诉我,你什么时候遇到过这种用法的错误?你有过吗?

在我的记忆中,如果TF大于当前的TF,它可能不会返回预期的结果。
 
你好,我有一个关于MT5的问题。

例如,在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)。
}