MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 1005 1...9989991000100110021003100410051006100710081009101010111012...1953 新しいコメント Seric29 2019.11.26 20:40 #10041 その仕組みはこうだ。 Artyom Trishkin 2019.11.26 21:04 #10042 Seric29: その仕組みはこうだ。 イリヤスはすでにかなり明確に説明している。彼の投稿の中から探してみてください。 Alexey Viktorov 2019.11.26 21:28 #10043 Seric29: その仕組みはこうだ。 ドキュメントに書かれていることはすべて読みましたか?こんなのまで読んでるんですね。 備考 この関数は動的配列にのみ適用可能である。 SetIndexBuffer()関数でインジケータバッファとして割り当てられた動的配列は、サイズ変更できないことに留意する必要があります。インジケータ・バッファのサイズ変更に関するすべての操作は、端末のエグゼクティブ・サブシステムによって実行される。 配列の要素数の合計が2147483647を超えることはできません。 頻繁にメモリが割り当てられる場合は、リザーブを指定する第3パラメータを使用して、物理メモリの割り当て量を減らすことが推奨されます。そ れ以降の ArrayResize関数の呼び出しでは 、 物理メモリの再割り当ては行われず、予約メモリ内の配列の1次元目のサイズが変更されるだけ です。 第3パラメータは、例えば物理メモリの割り当てが進行中の場合にのみ使用されることに留意してください。 ArrayResize(arr,1000,1000);for(int i=1;i<3000;i++)ArrayResize(arr,i,1000)。 この場合、2回のメモリ再割り当てが 行われます。1回目は配列の次元を1000に設定し、3000回反復するループに入る前、2回目はiが2000に等しくなったときです。第3パラメータを省略した場合、物理メモリの再割り当てが2,000 回発生し、プログラムの実行速度が低下します。 何がはっきりしないのか? Seric29 2019.11.26 22:51 #10044 Alexey Viktorov:ドキュメントに書かれていることはすべて読みましたか?これでも読んでください。何がはっきりしないんだ? まあ、そこは写真も例もなく、これらの再配布の意味や使い方は、説明がなければ100%開発者の考えで推測できるわけで、その点では安心です。ここに書かれている3行から判断すると、ArrayResize(arr,1000,1000); で2000要素の配列が作成されていると思われます。でも、ここがはっきりしないんです。例えばArrayResize(arr,1,1000); を実行すると、配列が1000になるまで1000はハングアップしてしまうのです。 for(int i=1;i<1001;i++)ArrayResize(массив,i,1000); または、プログラムはオーバークロックの前にこのフラグメントを使用し、カウンターをインクリメントするだけです。あるいは、この1000はCPUから素早くメモリを取得するために転がっているだけで、もしそうならバックアップメモリも転送する必要があり、それならバックアップがない方が作業がしやすいのです。一般的に、コードなし、情報なし、写真なし、どう動くかわからない。 Yevhenii Levchenko 2019.11.27 07:44 #10045 このように、何らかのSystemクラスによってハードディスクに100%負荷がかかっている状態(10kaの場合)はないのでしょうか?アルプス端子でも起こる...。通常、端末はテスト時にディスクを読み込むのですが、ここではカッブダだけ...。3〜5秒と長くないが、具体的 Igor Makanu 2019.11.27 08:15 #10046 Yevhenii Levchenko: ハードディスクが100%何らかのSystem classを起動している(10で)こんなことはありませんか?アルプス端子でも起こる...。通常、端末はテスト時にディスクを読み込むのですが、ここではカッブダだけ...。3〜5秒と長くないが、具体的 が発生するが、PC再起動後 PC再起動後10-15分でWindows Defenderが「ディスクをかみ砕き」、PCの使用統計が収集されます。 解決策 - PCをサスペンドする。私のPCは1ヶ月間再起動せずに使える。PCをシャットダウンする代わりに、キーボードのスリープボタンを押す。何度か電源が落ちたが、PCがスリープ状態であれば、Win10の起動に問題はない。 Alexey Viktorov 2019.11.27 09:03 #10047 Seric29: それが、写真も例もなく、これらの再配布の意味も、説明されていなければ100%開発者の考えに沿って使い方が推測できるのです。 ここに書かれている3行から判断 すると、ArrayResize(arr,1000,1000); で2000要素の配列が作成されていると思われます。でも、ここがはっきりしないんです。例えばArrayResize(arr,1,1000); を実行すると、配列が1000になるまで1000はハングアップしてしまいます。 または、プログラムはオーバークロックの前にこのフラグメントを使用し、カウンターをインクリメントするだけです。あるいは、この1000はCPUから素早くメモリを取得するために転がっているだけで、もしそうならバックアップメモリも転送する必要があり、それならバックアップがない方が作業がしやすいのです。一般的に、コードなし、情報なし、写真なし、どう動くかわからない。 3行のコードだけでなく、すべてを分かりやすく説明しているテキストも読んでみてください。 リザーブドメモリとアレイサイズは異なる概念です。ArrayResize(arr,1000,1000) で配列サイズをオーバーライドすると、 配列の 最後の要素は999になり、それ以上にはなりません。しかし、アレイのサイズを大きくする必要がある場合、メモリの再割り当ては行われません。このような配列サイズの確保が必要ない場合は、小さくするか、全く確保しないようにします。 Nauris Zukas 2019.11.27 10:25 #10048 こんにちは。関数 内に1つのパラメータを配列として 配置したい。 どうやったらうまくできるのかがわからない。例を訂正してもらえますか? void OnTick() { //--- int TestArr[]= {5,3,9,4}; TestFArr(TestArr[]); } //+------------------------------------------------------------------+ void TestFArr(int TestArr[]) { int size=ArraySize(TestArr); Print(" --------------- size: ",size); } //+------------------------------------------------------------------+ Artyom Trishkin 2019.11.27 10:32 #10049 Nauris Zukas: こんにちは。関数 内に1つのパラメータを配列として 配置したい。どうやったらうまくできるのかがわからない。例を訂正してもらえますか? void OnTick() { //--- int TestArr[]= {5,3,9,4}; TestFArr(TestArr); } //+------------------------------------------------------------------+ void TestFArr(int & TestArr[]) { int size=ArraySize(TestArr); Print(" --------------- size: ",size); } //+------------------------------------------------------------------+ Nauris Zukas 2019.11.27 10:51 #10050 Artyom Trishkin: ありがとうございました。 1...9989991000100110021003100410051006100710081009101010111012...1953 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
その仕組みはこうだ。
その仕組みはこうだ。
ドキュメントに書かれていることはすべて読みましたか?こんなのまで読んでるんですね。
備考
この関数は動的配列にのみ適用可能である。 SetIndexBuffer()関数でインジケータバッファとして割り当てられた動的配列は、サイズ変更できないことに留意する必要があります。インジケータ・バッファのサイズ変更に関するすべての操作は、端末のエグゼクティブ・サブシステムによって実行される。
配列の要素数の合計が2147483647を超えることはできません。
頻繁にメモリが割り当てられる場合は、リザーブを指定する第3パラメータを使用して、物理メモリの割り当て量を減らすことが推奨されます。そ れ以降の ArrayResize関数の呼び出しでは 、 物理メモリの再割り当ては行われず、予約メモリ内の配列の1次元目のサイズが変更されるだけ です。 第3パラメータは、例えば物理メモリの割り当てが進行中の場合にのみ使用されることに留意してください。
ArrayResize(arr,1000,1000);
for(int i=1;i<3000;i++)
ArrayResize(arr,i,1000)。
この場合、2回のメモリ再割り当てが 行われます。1回目は配列の次元を1000に設定し、3000回反復するループに入る前、2回目はiが2000に等しくなったときです。第3パラメータを省略した場合、物理メモリの再割り当てが2,000 回発生し、プログラムの実行速度が低下します。
何がはっきりしないのか?
ドキュメントに書かれていることはすべて読みましたか?これでも読んでください。
何がはっきりしないんだ?
まあ、そこは写真も例もなく、これらの再配布の意味や使い方は、説明がなければ100%開発者の考えで推測できるわけで、その点では安心です。ここに書かれている3行から判断すると、ArrayResize(arr,1000,1000); で2000要素の配列が作成されていると思われます。でも、ここがはっきりしないんです。例えばArrayResize(arr,1,1000); を実行すると、配列が1000になるまで1000はハングアップしてしまうのです。
または、プログラムはオーバークロックの前にこのフラグメントを使用し、カウンターをインクリメントするだけです。あるいは、この1000はCPUから素早くメモリを取得するために転がっているだけで、もしそうならバックアップメモリも転送する必要があり、それならバックアップがない方が作業がしやすいのです。一般的に、コードなし、情報なし、写真なし、どう動くかわからない。
ハードディスクが100%何らかのSystem classを起動している(10で)こんなことはありませんか?アルプス端子でも起こる...。通常、端末はテスト時にディスクを読み込むのですが、ここではカッブダだけ...。3〜5秒と長くないが、具体的
が発生するが、PC再起動後
PC再起動後10-15分でWindows Defenderが「ディスクをかみ砕き」、PCの使用統計が収集されます。
解決策 - PCをサスペンドする。私のPCは1ヶ月間再起動せずに使える。PCをシャットダウンする代わりに、キーボードのスリープボタンを押す。何度か電源が落ちたが、PCがスリープ状態であれば、Win10の起動に問題はない。
それが、写真も例もなく、これらの再配布の意味も、説明されていなければ100%開発者の考えに沿って使い方が推測できるのです。 ここに書かれている3行から判断 すると、ArrayResize(arr,1000,1000); で2000要素の配列が作成されていると思われます。でも、ここがはっきりしないんです。例えばArrayResize(arr,1,1000); を実行すると、配列が1000になるまで1000はハングアップしてしまいます。
または、プログラムはオーバークロックの前にこのフラグメントを使用し、カウンターをインクリメントするだけです。あるいは、この1000はCPUから素早くメモリを取得するために転がっているだけで、もしそうならバックアップメモリも転送する必要があり、それならバックアップがない方が作業がしやすいのです。一般的に、コードなし、情報なし、写真なし、どう動くかわからない。
3行のコードだけでなく、すべてを分かりやすく説明しているテキストも読んでみてください。
リザーブドメモリとアレイサイズは異なる概念です。ArrayResize(arr,1000,1000) で配列サイズをオーバーライドすると、 配列の 最後の要素は999になり、それ以上にはなりません。しかし、アレイのサイズを大きくする必要がある場合、メモリの再割り当ては行われません。このような配列サイズの確保が必要ない場合は、小さくするか、全く確保しないようにします。
こんにちは。
関数 内に1つのパラメータを配列として 配置したい。 どうやったらうまくできるのかがわからない。例を訂正してもらえますか?
こんにちは。
関数 内に1つのパラメータを配列として 配置したい。どうやったらうまくできるのかがわからない。例を訂正してもらえますか?
ありがとうございました。