初学者的问题 MQL5 MT5 MetaTrader 5 - 页 1040

 
亲爱的同事们,有必要以编程方式定义在哪个时间间隔内进行优化。你能否告知是否有这种可能性?在OnInit中。
 
Anzhela Sityaeva:

逗号在公式中没有作用,你是对的,它只是把值和类型分开,为了便于理解,没有别的。五年级是很久以前的事了:),而且我从来都不擅长数学,这也是事实。但我确实记得行动的顺序。

问题是,在两个版本的计算结果都是一样的,哪个选项是正确的?

我敢说你出生的时候,我不仅已经读完了五年级,而且还读完了接下来的一些年级。所以它对我来说就像昨天一样...如果你记得操作的顺序,为什么这个问题会在你的脑海中出现?如果计算的结果相同,一个选项是否可以比另一个更正确?那么很明显,没有任何区别。
 
Alexey Viktorov:
我敢说你出生时,我不仅已经读完了五年级,而且还读完了接下来的几年。所以它对我来说就像昨天一样...如果你记住了操作的顺序,为什么在你的脑海中会有这样一个问题?如果计算的结果相同,一个选项是否可以比另一个更正确?嗯,显然没有什么区别。
问一个女孩的年龄是不习惯的,而且这也无关紧要。我想要一个人的意见,他是在这个问题上,除了我自己,怀疑,你知道:)
 
Anzhela Sityaeva:
问一个女孩的年龄是不习惯的,而且这也无关紧要。我想要一个人的意见,他是在这个问题上,除了我自己,怀疑,你知道:)

我没有问你的年龄。我只是建议你还很年轻,只是假装你已经不记得什么了。

 
Decromor:

大家好...

我试图从一个EA中删除我添加的一个指标。我正在做以下工作。

在指标。

指示器已添加,子窗口编号和短名称正确,但删除时出现错误。

2019.05.08 12:01:10.068 2019.04.03 12:39:31 从2号窗口删除指标blablabla失败。错误代码 4014

4014 - "系统函数不允许被调用"。你能不能告诉我这是什么意思,如何删除指标?

其中一个指标在短时间内被专家顾问使用,其余时间不需要,其设置也变得无关紧要。这就是为什么我考虑的第一个方案--在不需要的时候删除该指标,在适当的时候用新的设置添加它。但由于某些原因,我无法做到这一点。

另一个变体是:全局变量。假设该指标将一直在窗口中,但我将在必要时通过全局变量改变其输入参数。

对吗?还有其他的变体吗?

 
Decromor:

其中一个指标在短时间内被专家顾问使用,其余时间不需要,其设置也变得无关紧要。出于这个原因,我考虑的第一个方案是在不需要该指标的时候将其删除,并在适当的时候用新的设置添加它。但由于某些原因,我无法做到这一点。

另一个变体是:全局变量。假设该指标将一直在窗口中,但我将在必要时通过全局变量改变其输入参数。

对吗?还有其他的变体吗?

图表上的 专家指标 就像狗的支点。

 
Alexey Viktorov:

图表上的指标 就像狗的转向。

这对设置专家来说是完美的。

我就是这样添加的,但我不能删除它。

关于交易、自动交易系统和策略测试的论坛

初学者的问题 MQL5 MT5 MetaTrader 5

Decromor, 2019.05.08 09:17

大家好...

试图从EA中删除我自己添加的一个指标。我正在做以下工作。

//Объявляю переменные
int win_ind=-1,
    handle_ind = INVALID_HANDLE;

//Создаю
   handle_ind= iCustom(NULL,0,"ind");
   if(handle_ind== INVALID_HANDLE){
      Print("Не удалось создать индикатор. Код ошибки: ",GetLastError());
      return(false);
   }
   win_ind=(int)ChartGetInteger(0,CHART_WINDOWS_TOTAL); //--- получим номер нового подокна, в которое добавим индикатор 
   if(!ChartIndicatorAdd(0,win_ind,handle_ind)){
      Print("Не удалось добавить индикатор на окно графика. Код ошибки: ",GetLastError());
      return(false);
   }

//Удаляю
   string name = ChartIndicatorName(0, win_ind, 0);
   bool res = ChartIndicatorDelete(0, win_ind, name); 
   if (!res) PrintFormat("Не удалось удалить индикатор %s с окна №%d. Код ошибки %d", name,win_ind,GetLastError());

在指标。

int OnInit(){
   IndicatorSetString(INDICATOR_SHORTNAME,"blablabla");

指示器已添加,子窗口编号和短名称正确,但删除时出现错误。

2019.05.08 12:01:10.068 2019.04.03 12:39:31 从2号窗口删除指标blablabla失败。错误代码 4014

4014 - "系统函数不允许被调用"。请告知这意味着什么,如何去除指标?


 
Decromor:

对于建立一个专家,这很好。


这不是对我问题的回答。更准确地说,它是一种反驳。然后我把我的想法以一个问题的形式提出来:为什么EA需要在图表上有一个指标

如果我们想从未使用的指示器手柄中拒绝,有另一个函数可以实现。而图表上的指标本身有什么作用?

 
是否有现成的解决方案,以避免重新发明车轮?
我们需要回答一个简单的问题--历史上有多少次平仓交易(姑且称之为平仓)(对于特定的货币对或时期并不重要,主要的是原则)。据我所知,在mql5中这并不是一个微不足道的任务。我甚至没有这个实体的名字))。
 
Evgeny Dyuka:
你是否有现成的解决方案,而不需要重新发明车轮?
我们需要回答一个简单的问题--历史上有多少次平仓交易(姑且称之为平仓)(对于某个货币对或某个时期并不重要,主要的是原则)。据我所知,在mql5中这并不是一个微不足道的任务。我们甚至没有这个实体的名字))。

为什么不呢?

bool  HistorySelect(
   datetime  from_date,     // с даты
   datetime  to_date        // по дату
   );

然后在一个循环中,我们筛选出我们需要的东西。

或为某一特定职位。

bool  HistorySelectByPosition(
   long   position_id     // идентификатор позиции - POSITION_IDENTIFIER
   );
Документация по MQL5: Торговые функции / HistorySelect
Документация по MQL5: Торговые функции / HistorySelect
  • www.mql5.com
Функция HistorySelect() создает в mql5-программе список ордеров и список сделок для дальнейшего обращения к элементам списка посредством соответствующих функций. Размер списка сделок можно узнать с помощью функции HistoryDealsTotal(), размер списка ордеров в истории можно получить с HistoryOrdersTotal(). Перебор элементов списка ордеров лучше...