#include <Arrays\ArrayObj.mqh>
CArrayObj ArrCur; // массив с объектами, каждый объект содержит структуру с полями ордеров и его id
CArrayObj ArrPrev; // массив с объектами, каждый объект содержит структуру с полями ордеров и его idclass CID : public CObject
{
public: int id;
CID() {}
CID(CID* pt) {this = pt;}
};
voidOnStart()
{
// -----------------------------------------------------------------
CID* pCur = new CID; // создаем объект для текущих параметров
pCur.id = 25; // вносим текущие данные
ArrCur.Add(pCur); // помещаем в массив объектов CID* pTemp = ArrCur.At(0); // вытягиваем объект по указателю
CID* pPrev = new CID(pTemp); // в дин.объект копируем в конструкторе данные с предыд.указателя
ArrPrev.Add(pPrev); // помещаем в массив объектов
ArrCur.Clear(); // чистим текущий массив// -----------------------------------------------------------------// --- для вывода в журналint sizeCur = ArrCur.Total(); // размер = 0int sizePrev = ArrPrev.Total(); // размер = 1ENUM_POINTER_TYPE pTypeCur = CheckPointer(ArrCur.At(0)); // POINTER_INVALIDENUM_POINTER_TYPE pTypePrev = CheckPointer(ArrPrev.At(0)); // POINTER_DINAMYCPrint(__FUNCTION__, " sizeCur=", sizeCur, " pTypeCur=", EnumToString(pTypeCur));
Print(__FUNCTION__, " sizePrev=", sizePrev, " pTypePrev=", EnumToString(pTypePrev));
ArrPrev.Clear(); // чистим массив
}
那里的指针复制了
那你怎么能复制数据呢?那么,除了逐个元素外?
我不知道这是否正确,但额外的构造函数解决了这个问题。它可能对某人有用。
ChartScreenShot 在可视化测试器模式下不能正确工作。
你好,亲爱的开发者。请问ChartScreenShot()何时能在测试器中工作?
你能告诉我在这种EA中如何改变输入参数(F7)或改变全局变量(F3)的值?
即使把它从图表中拿出来也是有问题的。
以前,Debug不能完全使用,但用F5运行脚本有时很方便(尽管不清楚为什么它在新 图表上 运行而不是在当前图表上)。
而我无意中在日志中发现了这样的记录。
同时,脚本本身也在运行。我试图在代码中插入以下一行。
{ DebugBreak(); Print( "DebugBreak" ); }打印了 "DebugBreak "行,但没有停止。
(虽然不清楚为什么它在新 图表上 运行而不是在当前图表上 运行)。
在编辑器 "服务"->"设置"->"调试/归档 "
,你可以设置哪个符号将被用于调试,但它仍将在一个单独的图表上运行。
如果没有指定符号,它将在市场观察的第一个(顶部)符号上运行。
我一般都有断点,每隔一段时间就会被触发。我把点设置在构建2875
,点击开始在真实数据上进行调试,它不间断地闪过,已经完成调试。
我用编辑器重新启动终端,然后它开始看到断点,直到其他一些启动/停止调试,然后又开始跳过。
在历史数据上运行调试,它完全调用测试器窗口,并在完成调试的同时跳过断点。
它从来没有在历史数据的断点上停过,它在完成调试 时一直跳过。
但是, 为什么测试器是根据历史数据 调用的,而保存的参数是从历史数据 中提取的,我不知道这是什么原因,是设计成这样还是歪打正着。
在编辑器 "服务"->"设置"->"调试/归档 "
,你可以设置哪个符号将被用于调试,但它仍将在一个单独的图表上运行。
如果这里没有指定符号,它将在市场观察的第一个(顶部)符号上运行。
在我看来,这是极不方便的。当前的图表有指标、程序应该与之互动的图形对象、设置等。一个新的 "空 "图表被启动。此外,正常模式下的程序(非调试)是从当前图表的导航器中 启动的,而不是在新的图表上--这是一个明显的不一致。
https://www.mql5.com/ru/forum/368597
结果:2
预期的结果:0