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
と返信しようとしたら、あなた自身が自分の質問に答えていました。
確認ありがとうございました)
こんにちは。
ストラテジーテストでこれらの関数呼び出しが 動作するようにしてもらえませんか?ありがとうございます。
同時に、保留されているものはPingに近い状態です。このデモの歪みの原因は何でしょうか?
マーケットプレイスで商品を更新した際、英語/ロシア語のページに変更した内容を記入し、新しいバージョンを公開しましたが、私の説明文からは何も出てきません。
最新版に対する資料が全くないので、この説明文を編集することもできない。
マーケットプレイスで商品を更新した際、英語/ロシア語のページに変更した内容を記入し、新しいバージョンを公開しましたが、私の説明文からは何も出てきません。
最終バージョンに対する文書がないため、この記述を編集する可能性もない。
同じく、不具合かと思いました。
メニューの "Run single test "を選択した後
は、適切な単一テストが進行中であり、実行されたことを示すものがない。一回の実行が成功した場合は「グラフ」タブに、失敗した場合は「ログ」タブに切り替えるとよいでしょう。
それは、化粧品としての些細なニガテに思えるかもしれません。
大きな配列の一部を1つのZ値で埋める必要がある場合、私はコンストラクションを使用します。
多くの人は、「なんでこんなに複雑なんだ、もっとシンプルにできるだろう」と言うでしょう。
しかし、理由は不明ですが、中間配列を使った最初の変形は、2番目のものよりはるかに高速に動作します。
この質問については、すでに数年前にSDに書いている。問題を発見して修正したので、次のビルドでは大丈夫だとの返信がありました。
しかし、問題は解決しない。
MT4で同じテストをしています。
Windows
これは、テスト中にこのようなことが起こらないように、実際の物理メモリの割り当てを開始します。ArrayResize add直後のメモリ操作に不具合が発生しました。
以下は、私のパソコンでの結果です。
Windows
これは、テスト中にこのようなことが起こらないように、実際の物理メモリの割り当てを開始します。でメモリに関する問題が発生しました。
では、ME内蔵のプロファイラが ArrayResizeで測定した結果はどうでしょうか。
では、ME内蔵のプロファイラが ArrayResizeで測定した結果はどうでしょうか。
ArrayResize関数の実行時間を測定する。
TestArrayFillのテストコードは、配列に対して「冷たい」メモリが割り当てられ、「熱い」メモリを取得する機会がないように作られています。
はっきり言って、ArrayResizeは仮想メモリ(またはプロセスメモリ)を割り当てますが、仮想メモリがすぐに物理ページを取得する(またはすでに持っている)保証はありません。
Windowsでは、仮想メモリページに最初にアクセスしたときに、必要に応じて物理メモリを割り当てます。
ページのサイズは4KBです。つまり、「ウォームアップ」のために、(私が書いたように)ArrayFillを介してすべての要素をゼロにすることはできず、ゼロから始まる4096 / sizeof(配列要素タイプ)ごとにのみゼロにすることができました。
MQL4では変数のゼロ化が保証されているため、MT4のArrayResizeは配列をゼロ化して実行するので、そこに「コールド」メモリの効果はありません。
しかし、微妙なところ。ありがとうございました。ドキュメンテーションは、「微妙」なネタバレをするのは、もうずいぶん先の話でしょう。