错误、漏洞、问题 - 页 3005

 
档案中的 "所有信息 "链接怎么了?
 
fxsaber:
简介中的 "所有信息 "链接到哪里去了?
.
 
Alexey Viktorov:

谢谢你!

 

关于交易、自动交易系统和交易策略测试的论坛

在MT4中没有正常化的价格

fxsaber, 2021.04.30 10:42

两个不同的数字以同样的方式转换为字符串。这是一个错误吗?

void OnStart()
{
  const double Num = 1.07299;
  const double Norm = NormalizeDouble(Num, 5);
   
  Print(Num);  // 1.07299
  Print(Norm); // 1.07299

  Print(Num - Norm); // 2.220446049250313e-16
}

情况与 类似。

 

子窗口中的自定义指标,震荡器类型。
如何隐藏默认的零线?
从GUI中给零线上色,使之与背景颜色相匹配,但并不奏效。

i

在指标中设置属性,不工作

#property indicator_level1  0.0
#property indicator_levelcolor C'35,35,35'
 
fxsaber:

这些数字是不同的,但差别是小数点后17位,而Print 只处理小数点后15位,所以从Print的角度来看,它们是一样的

 
A100:

这些数字是不同的,但区别在于小数点后第17位,而Print 只处理小数点后15位,所以从Print的角度看,它们是一样的。

只不过不是打印,而是将双数转换为字符串。

 

图一

注意到这个。如果正向测试数据重复(相同),当查看所有三个变体的Backtest时,只有变体(10384.88)会首先显示。

图2

结果=10435或10843的变体的数据是未知的(变体=10384的报告中的一切)?

 

你能告诉我如何正确地从指针中复制数据吗?

你需要将数据从一个对象复制到另一个对象。然后删除初始对象。当你删除原始对象时,复制对象中的数据就无法访问了。

#include <Arrays\ArrayObj.mqh>

CArrayObj ArrCur;       // массив с объектами, каждый объект содержит структуру с полями ордеров и его id
CArrayObj ArrPrev;  // массив с объектами, каждый объект содержит структуру с полями ордеров и его id

class CID : public CObject
{
  public:  int id;
};


void OnStart()
{
  // -----------------------------------------------------------------
    CID* pCur = new CID;        // создаем объект для текущих параметров
    pCur.id = 25;               // вносим текущие данные
    ArrCur.Add(pCur);           // помещаем в массив объектов
    
    CID* pPrev = ArrCur.At(0);  // копируем данные??? Указатель???
    ArrPrev.Add(pPrev);         // помещаем в массив объектов
    
    ArrCur.Clear();             // чистим текущий массив
  // -----------------------------------------------------------------
  
   // --- для вывода в журнал
  int sizeCur = ArrCur.Total();       // размер = 0
  int sizePrev = ArrPrev.Total();     // размер = 1
  
  ENUM_POINTER_TYPE pTypeCur = CheckPointer(ArrCur.At(0));    // POINTER_INVALID
  ENUM_POINTER_TYPE pTypePrev = CheckPointer(ArrPrev.At(0));  // POINTER_INVALID
  
  Print(__FUNCTION__, " sizeCur=", sizeCur, " pTypeCur=", EnumToString(pTypeCur));
  Print(__FUNCTION__, " sizePrev=", sizePrev, " pTypePrev=", EnumToString(pTypePrev));

}
 
那里的指针复制了