任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 496

 
artmedia70:
不客气。

别谦虚了,不客气,你为我节省了很多时间......
我祝愿你一切顺利,并祝你好运。
 
artmedia70:
并询问int b


为什么要用int?根据手册,ObjectGet应该是 double 类型 ,而在iBarShift函数中 b 应该是datetime类型
 
rustein:

谢谢,所以把ErrNum 改为ErrNumber,就这样了?警告消失了,一切都会正常工作?


string ErrorDescription(int ErrNumber)
{
  switch (ErrNumber)
  {
你可以看到你是 "在罐子里"...:)))
 
如何在两点之间画一条水平线 和一条垂直线?..... 我告诉你,我需要在给定的价格和时间间隔内画一个矩形
 

帮助我找到一个错误...函数的名称说它应该做...

extern double LOT         = 0.1;
extern int Magic          = 77;
extern double MartinStep  = 1.5;


double GetLastOrderProfit()
{
  int time = 0; double profit = 0; 
  for(int i = OrdersHistoryTotal()-1; i>=0; i--)
  {
    if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
    {
      if(OrderSymbol() == Symbol()&& OrderMagicNumber() == Magic)
      {
        if(time<OrderCloseTime())
        {
          time=OrderCloseTime();
          profit=OrderProfit();
        }
      }
    }
  }
  return(profit);
}

//+------------------------------------------------------------------+
double GetLastLot()
{
  int time = 0; double Lot = 0; 
  for(int i = OrdersHistoryTotal()-1;i>=0;i--)
  {
    if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
    {
      if(OrderSymbol() == Symbol()&& OrderMagicNumber() == Magic)
      {
        if(time<OrderCloseTime())
        time=OrderCloseTime();
        Lot = OrderLots(); 
      }
    }
  }

  if(Lot <= 0) Lot = LOT;

  return(Lot);
}

//+------------------------------------------------------------------+
double GetLastTenOrdersProfit()
{
  double profit = 0; int count = 0; 
  for(int i = OrdersHistoryTotal()-1;i>=0;i--)
  {
    if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
    {
      if(OrderSymbol() == Symbol()&& OrderMagicNumber() == Magic)
      {
        if (count<10)
        {
          profit=profit+OrderProfit();
          count++;
        } 
      }
    }
  }

  return(profit);
}
//+------------------------------------------------------------------+
double GetLot()
{
  double Lot = 0; double n = GetLastLot();
  
  if (GetLastTenOrdersProfit() < 0 || GetLastOrderProfit() < 0)
  Lot = NormalizeDouble (n * MartinStep,2);
  
  if (GetLastTenOrdersProfit() >= 0 && GetLastOrderProfit() >= 0 )
  Lot = LOT;
  
  return (Lot);
}

 

为什么我不能显示EA的评论?我根本就看不到任何东西。

void OnTick()
{
//---
Comment
("\n ",TimeToStr(Time[1]));
}

 
Alexandr24:

为什么我不能显示EA的评论?我根本就看不到任何东西。

空白的OnTick()
{
//---
评论
("\n",TimeToStr(Time[1])。
}


在测试器中还是在图上?
 
在测试器中,它显示出来,但图表是空的,我怀疑这是因为它被关闭了,但这很奇怪。
 
确切地说,休息了一天,没有虱子,没有什么奇怪的。
 
Alexandr24:

为什么我不能在EA中显示评论?根本就没有显示什么。

空白的OnTick()
{
//---
评论
("\n",TimeToStr(Time[1])。
}


我输出所有的东西,但我不使用函数,我在开始时使用一个单一的循环,在其中定义和计算所有的东西。

评论 中,一切通过DoubleToStr()!而且,这些功能不必要地放慢了速度!