エラー、バグ、質問 - ページ 3039

 
Nikolai Semko:
ちょっとしたヒント - 必要なグラフ以外を閉じれば、松葉杖を実施した場合とほぼ同じ消費量になります。
 
Andrei Trukhanovich:
ヒント:必要なグラフ以外を閉じれば、松葉杖を使ったときと同じような消費量になります。

旧態依然とした論理

VPSで持って いるのですが、すみません。何にもとらわれたくないんです。
 
Igor Makanu:

もし今メモリ消費について話しているなら、数ヶ月前に@fxsaberが 同じ問題を抱えていたのを覚えています、しかし、ティックをロードするとき、ティックを含む配列を解放した後、ターミナルはメモリを解放せず、これらのティックをキャッシュとして(10秒?

あなたのリクエストも同じ問題になる可能性が高いです。メモリ消費量は減らないどころか、逆に増えるでしょう(大量に)。

その理由がわからない。
ArrayFree関数の使い方は知っています。
特に、お願いしている機能は一度だけ使うつもりです。でも、同時にアンリミテッドの電源を入れる必要もないんです。
1つのツールの全容は、約80〜100MBに収まります(RAMとディスクの両方)。今はディスクに500Mbほど入っています。
ターミナルの電源を入れ、ファイルから構造体の配列をメモリにロードして、安心して作業しています。ピークが全くない。
私なら普通のデータ構造を使います。スペースが広いなんてとんでもない。でも、ハイとローの時間が必要なんです。
私はすでにデータ構造を形成する上でティックをフルに使っていますが、ヒストリーの深さをすべて持っているわけではなく、分足バーとのミスマッチが起きがちです。ティックがあってバーがない、あるいはバーがあってティックがない。


 
Nikolai Semko:


max_bars =Unlimited と設定するだけで、メモリ消費量は劇的に増加します。
以下はmax_bars = 5000
と設定したときの端末の例です。

ここで、max_bars = Unlimitedに変更し、ターミナルを再読み込みしてください。

同じウィンドウを開いた状態で、メモリ消費量がGB 以上増加しています。私の場合、11倍!!!!(笑
これは普通です ))
ご自身でご確認ください。
max_bars = 無制限は、とても厳しい贅沢 です。
私の要求が

通ればmax_bars = Unlimitedは 絶対に使えません。
そして、RAMのメモリを節約する以外にも、今31GBほどあるこのフォルダを大幅に減らすことができます。その5倍くらいかな。しかも、30GBではなく、6GBになる。

つまり、全員をアンリミテッドにしろということですか!?

もし、あるプログラムがすべてのバーにアクセスできるのであれば、誰もがそれを手にすることができるのです。

100万本にアクセスできるインジケータがあるのに、なぜチャートは1000本のバーを表示しなければならないのでしょうか?


もう一つの質問は、hcc形式と履歴ファイルのあるフォルダーへのアクセスを可能にすることです。しかし、そこでもすべてが単純ではありません。キャッシュ、経済的なリセット、正しさのチェック、何かと......。

 

2940

インジケーターのコードは、チャート上でもテスター上でもすべて正常に動作しました。

この変更を加えた新しいバージョンのインジケータを作成しました。チャートでは正常に動作しますが、テスターでは動作しません(データウィンドウにバッファが表示され、それが空であるにもかかわらず、何も描画されません)。

数時間かけて理解し、前のバージョンのコードをロールバックしましたが、何も解決しませんでした。 ターミナルナビゲーターの更新だけが役に立ち、新しいコードはチャート上だけでなく、テスターでも動きます。

テスターが見ているコンパイラの自動更新で 何かが壊れていると思うのですが、他に理由はないでしょうか。

 
Nikolai Semko:

私なら、通常のデータ構造を使います。くそっ、スペースはたっぷりあるじゃないか。でも、ハイとローの時間が必要なんです。
私はすでにデータ構造を形成する上でティックをフルに使っていますが、ヒストリーの深さをすべて持っているわけではなく、分足バーと同期が取れなくなりがちなのです。ティックがあってバーがない、そしてバーがあってティックがない。

20年前からダニがいたら使うか?理由を聞いてはいけないのでしょうか?)

まあいいや、超賢い自己適応戦略を設定して、興味本位で20年のティック 履歴で一度だけ動かしてみるのもいい。興味本位で。一度だけ。

でも、仕事ではありません、レギュラーではありません。


そして、タイミングがずれているのに、なぜバーを信じるのでしょうか?それはナンセンスだ。

 
Andrey Khatimlianskii:

つまり、全員をアンリミテッドにしろということですね!?

もし、あるプログラムがすべてのバーにアクセスできるのであれば、誰もがそれを持つことになります。

100万本にアクセスできるインジケータがあるのに、なぜチャートは1000本のバーを表示しなければならないのでしょうか?


もう一つの質問は、hcc形式と履歴ファイルのあるフォルダーへのアクセスを可能にすることです。しかし、そこではすべてがシンプルなわけではなく、キャッシュ、経済的なリセット、正しさのチェック、何か別のもの......。

hcc形式と履歴ファイルのあるフォルダにアクセスする必要はありません。第一にMQは絶対にそんなことはしないし、第二にその必要はない。このファイルからM1アレイを取得するだけで十分です。

そこがポイントで、アンリミテッドを 絶対に有効にできないようにしたいのです。なぜなら、そのようなインクルージョンは、すべての機器のデータをポンピングすることから始まるからです。でも、全部が必要なわけではなく、その時々で1つでいいんです。なぜ、何のコントロールもなく何百MBもの履歴データを追加でダウンロードし、システムに過大な負荷をかけようとするのでしょうか。

 
Andrey Khatimlianskii:

20年後にチックがあったら、使っていたでしょうか?不思議に思わないでいられるだろうか。)

まあいいや、超賢い自己適応戦略を設定して、興味本位で20年のティック 履歴で一度だけ動かしてみるのもいいかもしれない。興味本位で。一度だけ。

でも、仕事ではありません、レギュラーではありません。


そして、タイミングがずれているのに、なぜバーを信じるのでしょうか?まったくナンセンスな話だ。





また、「オンザフライ」での内部テストの可能性のためです。 いい意味で戦略の精度に影響を与えるかもしれませんが。




または



日足で考えようとすると、max_bars = 50,000で、あるバー時間に対してより低いタイムフレームをロードできる保証はありませんし、ティックも同様です。

 
実行中にエラーが発生しました。
void OnStart()
{
    uchar  array[];
    const string text = "All Files\0*.*\0\0";
    const int start = 0, count = StringLen( text );
    Print( StringToCharArray( text, array, start, count ), ":", count );
}

結果:10:15

期待値 15:15

WinAPI関数GetSaveFileNameAで結果を使用したかったのですが、バグのため使用できません。


 
A100:

mqlの文字列は、文字列の中やリテラルの中、関数の中にもNULL文字があるのがとても嫌なのです。

唯一正常な方法は、終端がNULLの3つの文字列を配列に変換することです。

つまり、今のような行動は、何年か前に意図的に 行われたものなのです。なぜかわからないけど。