错误、漏洞、问题 - 页 886

 
Yedelkin:
可能有任何数量的原因...最著名的是除以0,离开数组。

谢谢你。

阵列外的 输出是什么?我为我的无知感到抱歉。

我只有3个师。

TradeLot=AccountInfoDouble(ACCOUNT_BALANCE)*(PercentSize/100)/(100); 
MaxLotAllowed=MathFloor((MeansFree/MeansOneLot)*100)/100;
(PositionVolume()+Volume())*(100)*(100))/AccountInfoDouble(ACCOUNT_BALANCE)
 
G001: 我只有3个师。

这就是有可能发生除以零的地方。

/AccountInfoDouble(ACCOUNT_BALANCE)

需要进行基本的检查。

G001 : 阵列外的输出是什么?我为我的无知感到抱歉。

例如,它是当。

double array[3];
for (int i=0; i<=3; i++) array[i];

在最后一次迭代中,将有一个出口在数组之外

 
Yedelkin:

这就是有可能发生除以零的地方。

需要进行基本的检查。

比如说,这时。

在最后一次迭代时,将有一个出口在数组之外。

谢谢你。

酷,我们应该检查该功能是否正常工作?

AccountInfoDouble(ACCOUNT_BALANCE)

 
G001: 酷,你必须检查该功能是否正常工作?
那么,当天平归零,功能正常工作时,会发生什么?:)
 

这样的仪表没有问题吗?

int TotalBullStopOrders()
{
  int BullCounter=0;
  int Total = OrdersTotal();
  for(i = 0; i < Total; i++)
  {
    if(OrderSelect(OrderGetTicket(i)))
    {
      if(OrderGetString(ORDER_SYMBOL)==Symbol() && OrderGetInteger(ORDER_MAGIC)==Magic)
      {
        if(OrderGetInteger(ORDER_TYPE)==ORDER_TYPE_BUY_STOP)
        {
          BullCounter++;
        }
      }
    }
  }
  return(BullCounter);
}
 
Yedelkin:
那么,当天平归零,功能正常工作时,会发生什么?:)
你是对的,我会在那里修复它。
但现在我的余额不为零,我的EA露出绿色的微笑,但却停止了工作,异常的,没有任何警告,最好不要微笑......:)
 
G001: 这个计数器没有问题吗?

for语句中 没有定义变量i的类型。变量Magic未被定义。在行。

if(OrderSelect(OrderGetTicket(i)))
OrderSelect() 函数是不必要的我没有注意到其他事情。
Документация по MQL5: Основы языка / Операторы / Оператор цикла for
Документация по MQL5: Основы языка / Операторы / Оператор цикла for
  • www.mql5.com
Основы языка / Операторы / Оператор цикла for - Документация по MQL5
 
AndreyS:

错误的问题(Error CopyBuffer - 错误号:4806)--我把它删除了,我用Sleep(1000)治疗它;--我把它归结为指标没有足够的时间来创建。

错误(4194304字节不可用)的问题仍然存在。

它很可能会被创建。但在复制数据之前,我们必须检查我们想要接收的数据(指标是否有时间进行计算?)BarsCalculated函数 应该有帮助。

然后你按符号要求所有的时间框架。如果这些数据准备好了--就从磁盘下载到内存中,如果没有--就开始建立(内存也被消耗了)+100个指标,每个TF的周期不同,所有这些都在内存中。数据不会立即从内存中卸载(以防你想再次请求它)...

减少图表上的条形图的数量。

Документация по MQL5: Доступ к таймсериям и индикаторам / BarsCalculated
Документация по MQL5: Доступ к таймсериям и индикаторам / BarsCalculated
  • www.mql5.com
Доступ к таймсериям и индикаторам / BarsCalculated - Документация по MQL5
 
Yedelkin:

for语句中 没有定义变量i的类型。变量Magic没有被定义。在行

OrderSelect()是 多余的。我没有注意到其他事情。

谢谢你。

运营商外面有一个。

input int    Magic          = 55;

MqlTradeRequest request={0};
MqlTradeResult result={0};
MqlTradeCheckResult check={0};
//-----
int LotsDigits;
int Indicator;
double IndicatorVal[5];
double Ask;
double Bid;
int i;
int pos;
double TradeLot;
ulong StopLevel;
double MeansFree;
double MaxLotAllowed;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
 
alexvd:

它很可能已经被创造出来了。只有在复制数据之前,你应该检查数据是否可用(指标已结算?)BarsCalculated函数 应该有帮助。

然后你按符号要求所有的时间框架。如果数据准备好了--就从磁盘下载到内存中,如果没有--就开始建立(内存也被消耗了)+100个指标,每个TF的周期不同,所有这些都在内存中。数据不会立即从内存中卸载(以防你想再次请求它)...

减少图表上的条形图的数量。

        while(BarsCalculated(m_handle)==-1 && !IsStopped()) Sleep(1); // Спасибо alexvd - откоректировал строку с учётом замечаний

酒吧的数量并没有改变什么。

问题隐藏在各期中,因为变体

for(int iperiod=5; iperiod<=19; iperiod++) 

不起作用,19-5=14--不同时期。

例如,如果它们被减少到4个,那么一切都会正常。

for(int iperiod=16; iperiod<=19; iperiod++)

尽管foru IndicatorRelease(m_handle) - 确实被错误地使用。

我认为,即使你不使用IndicatorRelease函数释放句柄,它也应该工作。

因此,问题出在不同时期的数量上。

或者...