bool scaleFix=false;
//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+intOnInit()
{
//--- indicator buffers mappingChartSetInteger(ChartID(),CHART_SCALEFIX,true);
scaleFix=ChartGetInteger(ChartID(),CHART_SCALEFIX);
//---return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+//| Custom indicator iteration function |//+------------------------------------------------------------------+intOnCalculate(constint rates_total,
constint prev_calculated,
constint begin,
constdouble &price[])
{
//---if(rates_total!=prev_calculated)
{
double max=iHigh(_Symbol,_Period,iHighest(_Symbol,_Period,MODE_HIGH,Period));
double min=iLow (_Symbol,_Period, iLowest(_Symbol,_Period,MODE_LOW, Period));
if(scaleFix && ChartSetDouble(ChartID(),CHART_FIXED_MAX,max))
printf("Chart fixed max is %f, should be %f",ChartGetDouble(ChartID(),CHART_FIXED_MAX),max);
if(scaleFix && ChartSetDouble(ChartID(),CHART_FIXED_MIN,min))
printf("Chart fixed min is %f, should be %f",ChartGetDouble(ChartID(),CHART_FIXED_MIN),min);
}
//--- return value of prev_calculated for next callreturn(rates_total);
}
//+------------------------------------------------------------------+2018.09.0612:54:55.7572018.09.0412:00:00 Chart fixed max is 1.171770, should be 1.1627402018.09.0612:54:55.7582018.09.0412:00:00 Chart fixed min is 1.158410, should be 1.1557602018.09.0612:54:55.7652018.09.0413:00:00 Chart fixed max is 1.171770, should be 1.1626702018.09.0612:54:55.7652018.09.0413:00:00 Chart fixed min is 1.158410, should be 1.1555902018.09.0612:54:55.7722018.09.0414:00:00 Chart fixed max is 1.171770, should be 1.1622802018.09.0612:54:55.7722018.09.0414:00:00 Chart fixed min is 1.158410, should be 1.1549402018.09.0612:54:55.7812018.09.0415:00:00 Chart fixed max is 1.171770, should be 1.1620702018.09.0612:54:55.7812018.09.0415:00:00 Chart fixed min is 1.158410, should be 1.1549402018.09.0612:54:55.7892018.09.0416:00:00 Chart fixed max is 1.171770, should be 1.1620202018.09.0612:54:55.7892018.09.0416:00:00 Chart fixed min is 1.158410, should be 1.1549402018.09.0612:54:55.7992018.09.0417:00:00 Chart fixed max is 1.171770, should be 1.1619802018.09.0612:54:55.8002018.09.0417:00:00 Chart fixed min is 1.158410, should be 1.153890
2018.09.0616:25:44.238 TestArrayFill (EURUSD,H1) Время заполнения через ArrayFill = 942018.09.0616:25:44.238 TestArrayFill (EURUSD,H1) Время заполнения через ArrayInitialize + ArrayCopy = 147
我刚想回答,但你回答了自己的问题。
谢谢你的确认)
下午好。
你能让这些函数调用 在策略测试中发挥作用吗,谢谢?谢谢!
同时,待定的也接近于平局。在演示中出现这种偏差的原因是什么?
当我在市场上更新产品时,我在英语/俄语页面上填写了对变化的描述,并发布了新版本,但我的描述中没有任何内容出现在产品的 "新内容 "部分。
我甚至不能编辑这个描述,因为根本就没有针对最新版本的文件。
当我在市场上更新产品时,我在英语/俄语页面上填写了对变化的描述,并发布了新版本,但我的描述中没有任何内容出现在产品的 "新内容 "部分。
甚至没有可能编辑这个描述,因为没有针对最后版本的文件。
同样的事情,我以为是个小故障。
选择菜单项 "运行单一测试 "后
没有任何迹象表明正在进行和已经运行适当的单一测试。如果单次运行成功,最好切换到 "图表 "标签,如果运行失败,则切换到 "日志 "标签。
这可能看起来是一个小的外观问题。
当我需要用一个单一的Z值来填充一个大数组的一部分时,我使用一个结构。
许多人会说--为什么这么复杂,它可以更简单。
但由于某些未知的原因,使用中间数组的第一个变体比第二个变体表现得快得多
几年前,我已经就这个问题给SD写过信。我得到的答复是,我已经发现并解决了这个问题,在下一个版本中就可以了。
但问题依然存在。
我在MT4中也做了同样的测试。
你在Windows中遇到了一个特殊的内存操作
这启动了物理内存的实际分配,因此在测试期间不会发生这种情况。,在ArrayResize 添加后的右键
以下是我的电脑上的结果
你在Windows中遇到了一个内存的特殊性
这启动了物理内存的实际分配,因此在测试期间不会发生这种情况。在ArrayResize后立即添加
那么,ME内置的剖析器 在ArrayResize上测量什么?
那么,ME内置的剖析器 在ArrayResize上测量什么?
它测量ArrayResize函数的运行时间。
TestArrayFill测试代码是这样构建的:为数组分配 "冷 "内存,没有机会获得 "热 "内存。
说白了,ArrayResize分配的是虚拟内存(或进程内存),但不能保证虚拟内存会立即得到(或已经拥有)物理页。
Windows,将根据需要分配物理内存,在第一次访问虚拟内存页的时候。
页面大小为4KB,也就是说,为了 "预热",并不是所有的元素都可以通过ArrayFill(如我所写)归零,而只是从零开始每隔4096 / sizeof(array element type)归零。
由于在MQL4中保证了变量的归零,MT4中的ArrayResize通过数组运行归零,所以没有 "冷 "内存效应。
然而,微妙的是。谢谢你!该文件可能早就该有一个 "微妙 "的破坏者了。