关于落实议员的讨论。 - 页 8

 
altec3:

下午好!

我想写一个函数来确定当前一天的利润。

你能告诉我如何在函数

指定从当前日期开始的期限。很明显,to_date的结束时间=TimeCurrent(),如何正确指定from_date的开始时间,使其从当前日期的00h:00m:00c开始?

选择品尝。

datetime  iTime(
   const string        symbol,          // символ
   ENUM_TIMEFRAMES     timeframe,       // период PERIOD_D1
   int                 shift            // сдвиг
   );
int  CopyTime(
   string           symbol_name,     // имя символа
   ENUM_TIMEFRAMES  timeframe,       // период PERIOD_D1
   int              start_pos,       // откуда начнем 0
   int              count,           // сколько копируем 1
   datetime         time_array[]     // массив для копирования времени открытия. Объявить заранее

或最多,最多。这已经被建议了。

 
Vladimir Karputov:

假设今天至少有一个刻度,算法如下:当前时间被发送到MqlDateTime 结构中。然后在这个结构中把时、分、秒设置为零。剩下的就是将编辑好的结构转换为时间。


结果。

谢谢你!另一个问题,如果我添加一个函数

//+------------------------------------------------------------------+
//|Функция возвращает прибыль за текущие сутки                       |
//+------------------------------------------------------------------+
double Day_Profit()
  {
//--Запрашиваем историю сделок за последнии сутки
   HistorySelect(TimeCurrent()-PeriodSeconds(PERIOD_D1),TimeCurrent());
   uint     total       =HistoryDealsTotal();   // количество сделок в истории
   ulong    ticket      =0;                     // тикет сделки в истории
   long     type        =0;                     // тип сделки
   double   profit      =0.0;                   // финансовый результат сделки
   double   commission  =0.0;                   // коммиссия по сделке
   double   DayProfit   =0.0;                   // прибыль за текущие сутки
//--- for all deals
   for(uint i=0; i<total; i++)
     {
      if((ticket=HistoryDealGetTicket(i))>0)       //--- если имеются сделки, то...
        {
         profit      =HistoryDealGetDouble(ticket,DEAL_PROFIT);
         commission  =HistoryDealGetDouble(ticket,DEAL_COMMISSION);
         if(HistoryDealGetInteger(ticket,DEAL_TYPE)!=DEAL_TYPE_BALANCE)
           {
            DayProfit+=(profit+commission);
           }
        }
     }
   return (DayProfit);
  }
//+------------------------------------------------------------------+

到专家顾问,如何更新分析交易的时期?例如,如果我的专家顾问工作了几天,那么当第二天到来时,期间会不会被更新?

在专家顾问中实现上述功能。

void OnTick()
  {
   if(Day_Profit()<ProfitMax)
     {
      ExtExpert.OnTick();
     }
   return;
  }
 
altec3:

谢谢你!另一个问题,如果我添加了这个函数。

到专家顾问,如何更新分析交易的时期?例如,如果专家顾问工作了几天,那么随着第二天的到来,这个时期将被更新?

在专家顾问中实现上述功能。

时间应从一天的开始到当前时间+一天 或+三天来设置。

你已经知道如何确定一天的开始。

 

下午好!

在对某一符号下单之前,有必要确定该符号的点差。标准的 MQL5库包括CSymbolInfo类。这时我就开始想,哪种方式能更好地实现这种检查--通过CSymbolInfo或使用一个函数?请专家给我建议,该怎么做?如果这个问题已经被提出来了,我将非常感谢你指引我的方向。

 

下午好!

我需要一些建议。如果一个EA包含不同时间段的信号模块,如何考虑条数?

例如,我有一个简单的专家顾问,它有两个基于随机指数的信号模块(当主线在0和1条的信号线以上时--买入,在0和1条的信号线以下--卖出)--一个在H1,另一个在M15。两个模块的权重是相同的,在专家顾问中,开启交易的阈值是以这样的方式设置的,即来自两个模块的信号应被同时考虑。专家顾问在时间框架H1的图表上工作。如果你看一下H1的截图,一切都很清楚--主线高于最后和倒数第二条的信号线,这就是我们购买的原因。但在M15的图表上,我无法理解哪个柱子应该被视为0,哪个柱子应该被视为1?交易是开放的--这意味着在M15日,交易的条件也应该得到满足。

附加的文件:
H1.png  43 kb
M15.png  21 kb
 
altec3:

例如,有一个简单的专家顾问,包括两个基于随机指数的信号模块(当主线在0和1条的信号线以上时--买入,在0和1条的信号线以下--卖出)--一个用于H1,另一个用于M15。

零点酒吧是邪恶的!你所看到的历史上的指标是按照1条杠计算的--关闭(好吧,简化了,如果没有考虑到重新交叉的可能性)。因此,该策略建立在一个封闭的条形图上,在测试器中,MT4中的旧TF指标将显示即使是一个零条形图的结果,也是一个封闭的条形图--即来自未来。
其结果是失望:一件事在测试器中是不同的,而在实时中是相反的。
相信我的话--在试图找出系统错误所在时,我已经失去了一半的生命。为了正确地将较高的TFs指标映射到较低的TFs指标上,需要采取特殊的方法。 通常,以Pushka为例,一切都很简单--将周期乘以TF比率和顺序,但是如果有非线性计算,那么就只能模仿0条的计算。
我为了让RSI正确地在图表上显示主要的TF,破费了一年时间。
我不坚持,我建议至少使用已关闭的条形图的信号,特别是与当前时间框架有关的更高的信号,还可以检查特别是 自定义指标 的重新评级。
 
altec3:

下午好!

我需要一些建议。如果一个EA包含不同时间段的信号模块,如何考虑条数?

例如,我有一个简单的专家顾问,它有两个基于随机指数的信号模块(当主线在0和1条的信号线以上时--买入,在0和1条的信号线以下--卖出)--一个在H1,另一个在M15。两个模块的权重是相同的,在专家顾问中,开启交易的阈值是以这样的方式设置的,即来自两个模块的信号应被同时考虑。专家顾问在时间框架H1的图表上工作。如果你看一下H1的截图,一切都很清楚--主线高于最后和倒数第二条的信号线,这就是我们购买的原因。但在M15的图表上,我无法理解哪个柱子应该被视为0,哪个柱子应该被视为1?交易是开放的,这意味着在M15日,交易的条件也应该得到满足。

在历史上,你会看到已经关闭的条形图,零条形图不是邪恶的,但它是流动的,我们必须考虑到它,因为它的形成取决于当前的价格,当价格跳跃时,随机的方向变化是可能的,所以 更敏感,例如它可以关闭。

试着多加一个栏,只是为了打开0&1&2。也许李子会减少。

Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Приказы на проведение торговых операций оформляются ордерами. Каждый ордер имеет множество свойств для чтения, информацию по ним можно получать с помощью функций Идентификатор позиции, который ставится на ордере при его исполнении. Каждый исполненный ордер порождает сделку, которая открывает новую или изменяет уже существующую позицию...