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

 
如何做一个正确的马丁格尔?
我的理解是正确的。
在开启每笔交易之前,你需要用这个魔术师检查这个符号的所有交易,如果最后一笔交易的日期有亏损,分别增加手数?
 
Roman Sharanov:
什么是正确的马汀格尔方式?
我的理解是正确的。
在开启每笔交易之前,你需要用这个魔术师检查这个符号的所有交易,如果最后一笔交易的日期有亏损,分别增加手数?

它是这样的

 
Sergey Gritsay:

它是这样的

只是不明白如何计算出所有交易中的最近一次交易

 
朋友们,有没有人遇到过,需要在另一个指标 的基础上获得指标 数据,比如RSI叠加在RSI上。
 
Roman Sharanov:

我只是不明白如何在所有的交易中计算出最近的交易。

情况是这样的。

double  ProfitLastDeals()
  {
   double m_profit=0;
   int total=OrdersTotal();

   for(int i=0; i<total; i++)
     {
      if(!OrderSelect(i,SELECT_BY_POS))continue;
      if(OrderMagicNumber()!=m_magic)continue;
      if(OrderSymbol()!=m_symbol)continue;
      if(OrderType()==m_type)
        {
         m_profit=OrderProfit();
        }
     }
   return(m_profit);
  }
 
Sergey Gritsay:
朋友们,有没有人遇到过,我需要在另一个指标 的基础上获得指标 数据,比如RSI叠加在RSI上。

都整理好了,这个问题已经不重要了

 
Roman Sharanov:

我只是不明白如何计算出所有交易中的最后一笔交易。

对不起,最后一个例子是在开放中选择,在关闭中选择,应该是这样的

double  ProfitLastDealsHistory()
  {
   double m_profit=0;
   int total=OrdersHistoryTotal();

   for(int i=0; i<total; i++)
     {
      if(!OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))continue;
      if(OrderMagicNumber()!=m_magic)continue;
      if(OrderSymbol()!=m_symbol)continue;
      if(OrderType()==m_type)
        {
         m_profit=OrderProfit();
        }
     }
   return(m_profit);
  }
 

iBarShift()的 奇怪行为。返回索引(-1),并明确检查确切的=false标志。

错误在任何时候都会随机发生,没有办法手动抓住它。

当得到一个负的索引时,代码会在控制台中写下所执行的请求的参数和结果

2019.01.04 10:40:24.047 CCC (GBPUSD,M1) Neg index: NZDUSD TimeCurrent: 2019.01.04 09:40:23 Request: 2019.01.04 09:40:23 TimeLastTick: 2019.01.04 09:40:23.44
2019.01.04 10:40:24.047 CCC (GBPUSD,M1) LastError: 0

请求--请求条形图索引的时间

TimeLastTick是所请求的符号的最后一个tick的时间;MqlTick[]是在出错后立即进行的。

这种行为的原因可能是什么,也许有人遇到过?

 
SemenTalonov:

iBarShift()的 奇怪行为。返回索引(-1),并明确检查确切的=false标志。

错误在任何时候都会随机发生,没有办法手动抓住它。

当得到一个负的索引时,代码会在控制台中写下所执行的请求的参数和结果

请求--请求条形图索引的时间

TimeLastTick是所请求的符号的最后一个tick的时间;MqlTick[]是在出错后立即进行的。

这种行为的原因可能是什么,也许有人遇到过这种情况?

关于exact == false,文件是怎么说的?
 
Artyom Trishkin:
关于exact == false,文档中是怎么说的?

如果在指定的时间没有找到酒吧,则返回值。当exact=false iBarShift 返回开盘时间 小于指定时间time_open<time 最近的柱子的索引 如果没有找到这样的酒吧(在指定时间之前没有历史),该函数将返回-1。

但我们有历史,这是一个事实。一切都发生在最新的(按时间序列计算为0)条。

原因: