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

 
MakarFX:


谢谢你的回答。但我还是搞不清楚计算这个的正确公式串,我对很多东西都不熟悉。你能不能在这里把它拼出来,比如。

***

 
Порт-моне тв:

谢谢你的回答。但我还是搞不清楚计算这个的正确公式串,我对很多东西都不熟悉。你能不能在这里把它拼出来,比如。

***

正确插入代码:在编辑文章时,点击 编码 ,在弹出的窗口中插入你的代码
MQL5.community - Памятка пользователя
MQL5.community - Памятка пользователя
  • www.mql5.com
Вы недавно зарегистрировались и у вас возникли вопросы: Как вставить картинку в сообщение на форуме, как красиво оформить исходный код MQL5, где находятся ваши Личные сообщения? В этой статье мы подготовили для вас несколько практических советов, которые помогут быстрее освоиться на сайте MQL5.community и позволят в полной мере воспользоваться доступными функциональными возможностями.
 

我在这里计算错误,除了当天的盈亏,我还需要当天开始时的账户余额。:(((帮助))

帐户余额() - 不断变化,如何修复它,例如在Hour==1时?

 
Порт-моне тв:

谢谢你的回答。但我还是搞不清楚计算这个的正确公式串,我对很多东西都不熟悉。你能不能在这里把它拼出来,比如。

***

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.02.2008                                                     |
//|  Описание : Возвращает суммарный профит в валюте депозита                  |
//|             закрытых с определённой даты позиций                           |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента             (""   - любой символ,         |
//|                                               NULL - текущий символ)       |
//|    op - операция                             (-1   - любая позиция)        |
//|    mn - MagicNumber                          (-1   - любой магик)          |
//|    dt - Дата и время в секундах с 1970 года  ( 0   - с начала истории)     |
//+----------------------------------------------------------------------------+
double GetProfitFromDateInCurrency(string sy="",int op=-1,int mn=-1,datetime dt=0)
  {
   double p=0;
   int    i,k=OrdersHistoryTotal();

   if(sy=="0") sy=Symbol();
   for(i=0; i<k; i++) 
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) 
        {
         if((OrderSymbol()==sy || sy=="") && (op<0 || OrderType()==op)) 
           {
            if(OrderType()==OP_BUY || OrderType()==OP_SELL) 
              {
               if(mn<0 || OrderMagicNumber()==mn) 
                 {
                  if(dt<OrderCloseTime()) 
                    {
                     p+=OrderProfit()+OrderCommission()+OrderSwap();
                    }
                 }
              }
           }
        }
     }
   return(p);
  }

利润计算...

如果你想要当天的利润,那么

datetime dt=iTime(_Symbol,PERIOD_D1,0);
 
Порт-моне тв:

我在这里计算错误,除了当天的盈亏,我还需要 当天开始时 账户余额。:(((帮助))

帐户余额() - 不断变化,如何修复它,例如在Hour==1?

AccountBalance()-GetProfitFromDateInCurrency(.....)
 
Tatiana Zyrianova:
下午。请您告诉我们,一个指标是否可以通过按下图表上的按钮 来强行启动计算事件,该事件在OnChartEvent中处理?

具有 相同符号和时间框架的ChartSetSymbolPeriod 可以用来更新图表(类似于终端中的Refresh命令)。更新图表反过来又会触发对附属于图表的指标的重新计算。因此,你可以在图表上重新计算指标,即使在没有刻度的情况下(例如,在周末)。

 
MakarFX:

计算利润...

如果你想要当天的利润,那么

不完全是我想要的。我想要 "如果当天的利润超过了当天开始时余额 的某个百分比(已经计算过),那么就停止交易,反之亦然,直到它没有超过--然后交易(功能也已经存在)。我真的希望有一些想法。

有必要在一天的开始时找到账户余额!!。帐户余额一直在变化,因此不能使用,你需要一个公式,它可能被设置为某个时间,如00:01。

 
Порт-моне тв:

在这里,但它给出了一个错误,请帮助我修复它

错误

  datetime TimeCheck_sb = StrToTime("1:00");
  if(TimeCurrent()==TimeCheck_sb)
     {
      AccountBalance() = sb1; sb1 = AccountBalance();
     }
 
Порт-моне тв:

这不是我在寻找的东西。我需要 "如果当天的利润已经超过了当天开始时余额 的某个百分比(已经计算过),那么就停止交易,反之亦然,如果没有超过--就进行交易(这个功能也已经存在)。我真的希望有一些想法。

有必要在一天的开始时找到账户余额!!。帐户余额一直在变化,所以不能使用,你需要一个公式,它可能被设置为某个时间,如00:01。

我告诉过你

AccountBalance()-GetProfitFromDateInCurrency(.....)

你需要一个公式,给你提供一天开始时的账户余额

 
MakarFX:

我告诉过你。

从当前的余额中减去当天的利润,你就可以得到当天开始的余额。

看,问题是我想设置的百分比,例如(1%),是以数字形式变化的,如果

AccountBalance()-GetProfitFromDateInCurrency(.....)

在每笔新的交易中,余额会增加,1%也会增加。 所以我的函数不会工作,因为没有固定的设定点。

原因: