どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 264

 
が、そのような感じです。もし、配列のサイズがあらかじめ設定されて いない場合は、間違いなくArrayResizeが必要です。そして、ArrayResize(array,0)の最後;はい、その通りです、思いつきませんでした.........ウチュウ。ありがとうございました))))
 
ティック 毎にArrayResizeをするのは無理がある!!!!!!!そうしないと、計算が面倒になる............。そして、どんなマルチコアプロセッサーもあなたを救ってはくれません......。
 
2013.11.11 07:54に公開した記事「ShowCandleSize」が、原因不明のまま正しく表示されず、編集もできない状態になっています。
11月15日にこの問題でサポートに問い合わせたところ、noreply@metaquotes.net、返信はありませんでした。
このような質問に対して、正しいアドレスを教えていただけないでしょうか。
謹んで申し上げます。
--
ウラジスラフ・シュルキンです。
2013年11月20日のこと。
 
artmedia70:
決済した取引の結果は、すべて口座履歴で確認することができます。ソフトウェアでアレイに常に詰め込む必要があるのでしょうか?多いかもしれませんね。必要な歴史の深さを制限し、本当にそれがないと生きていけないのであれば、アレイを埋めた方がいいのです。

分かりやすい説明ありがとうございました

"クローズド・トレード "の結果は、すべて口座履歴で確認することができます。ソフトウェアで」 「どうやって?
 
VladislavVG:


プログラム終了時には、メモリリークを防ぐために、動的に割り当てられたメモリを解放する必要があります。MKLの開発者がこれに従うかどうかは分かりませんが



そのため、配列は静的に作られています。配列は一箇所に集められ、後で解放されます。プログラムの最後のArrayResize(a,0)は、自己満足だけならあまり意味がない。
 
Leo59:
分かりやすい説明ありがとうございました"決済した取引の結果は、すべて口座履歴で確認できます。プログラム的に」 - どうやって?



OrderSelect(ticket,SELECT_BY_TICKET,MODE_HISTORY)です。

または

OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)

 
alsu:

OrderSelect(ticket,SELECT_BY_TICKET,MODE_HISTORY)です。

または

OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)




ありがとうございました!


コバレフのチュートリアルのどこがいいのか?プログラムコードの簡単な例を使って、簡単な問題の解き方を学べるので良いと思います。

実は、プログラミングの勉強を始めたのは、Vladislav Goshkov氏のインジケーターコードからでした。そのインジケータをディマークのサポートレイとレジスタンスレイで描きました。
ObjectMove(buff_str, 1, UpBT[0], UpP[0]);
ObjectMove(buff_str, 0, UpBT[1], UpP[1]);
という行がありました。これを配置しました。テスターで見て、その効果を確認。フラクタルで光線を描きますが、未来ではなく過去を見ています... ))))質問するようになり、うまくいきましたウラジスラフにリスペクト!!!!
後でコバレフの教科書に出会いました。もっと多くの質問にこの形式で答えてほしい。

そしてもうひとつ。
"自分の専門家を書きたいけど、何から始めたらいいのかわからない?アルパリのウェブサイトにRoshの記事が掲載されることで、エキスパート作成の最初の一歩が簡単に、そして苦もなく踏み出せるようになりました。
Roshは、EAライターの誰もが経験するステップを、わかりやすく説明しています。長年の経験から得た知識であるプログラミングのニュアンスの多くは、今や誰もが手に入れることができるのです。
基礎から一歩一歩、FXプログラミングの 複雑さを学んでいきます。"

この記事の概要がどのリンク先で読めるかご存じでしょうか?
 
VladislavVG:


正確には配列ではないからです。詳細が知りたければ - Cの記述を参照してください。私が参照しているのは、最初から開発者が、明確でないもの、不完全に提示されているものすべてについて - 標準Cを参照してくださいと言ったからです。

変数double buffer[] を宣言すると、C 言語ではポインタと呼ばれる、配列を開始するメモリセルの アドレスを格納する整数型の変数 1 つ分のメモリを確保することになります。MCLで変数の次元を確認すると、値0となる。つまり、配列自体にはメモリが割り当てられず、値を代入しようとしても書き込む場所がないのです。MCLではアドレス演算ができないので、ポインタが扱えません。C言語では書くことができますが、「未割り当て」のメモリでは通常システムクラッシュにつながります。AreiResize(array,N), (N>0)を適用すると、配列(少なくとも1つの要素)のメモリが確保され、値を書き込むためのスペースが作られます。そして、チェックすると、配列の次元が0と異なることになります。

C言語から見た静的配列の概念には、いくつかの意味があります。

1. 静的配列(静的変数/型も同様)は、コンパイル段階(MKL4ではプリコンパイル)で次元が分かっている変数/配列である。例えば、double buff[10000];と記述すると、コンパイラに変数のサイズが伝わり、すぐにメモリを確保することができる。これに対して、コンパイル時にはサイズが分からず、実行時に初めてサイズが分かるような「動的配列」という概念があり、これらはすべて可変サイズ配列である。このような配列にアクセスする場合、あらかじめメモリを確保する必要があります。メモリはスタティック・プログラム・メモリの外側に確保される。

C/C++では、ブロック内に配列が記述されている場合、静的配列であれ動的配列であれ、その可視性はブロックによって制限される。プログラムにおける「メモリリーク」などのエラーは、ローカルに定義された動的配列、すなわちメモリポインタが可視領域から外れて破壊されても、それに割り当てられたメモリは占有されたままである場合に発生する。

2 static修飾子で記述された変数である「static」配列の概念は、ブロックのスコープを離れても破棄されず、別のメモリ領域に配置されるため、その中の値は保持されます。メモリリークのリスクを低減することができます。p.1の意味で動的と宣言された配列(すなわち、コンパイル時に配列のサイズがわからない)は、p.2の意味で静的、すなわち、修飾子 "static" を付けて宣言することも可能である。

プログラム終了時には、メモリリークを防ぐため、動的に確保されたメモリを解放する必要があります。MKLの開発者がこれに従うかどうかは知りませんが、私のプログラムでは常にメモリを解放しています - C言語からの習慣 - ArreyResize(array,0);

MKLでは、ポイント2の意味で、すべての配列は静的である。

さて、ご質問の件ですが。"静的配列double buffer[]; に値を割り 当てることができないのはなぜですか?なぜなら、そのためにメモリが割り当てられないからです(実際には、静的修飾子を持つ動的配列です)。値を代入する前に、メモリを確保する必要がある。すなわち、0より大きいサイズのArrayResizeをこの配列に適用する必要がある。アレイの場合は、メモリオーバーラン(アレイの外側)を制御する必要があります。

SZ 納得していただけたでしょうか?なるべくシンプルにすることを心がけました。

"職人魂 "を失わないために!
ありがとうございました!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
VladislavVG:

正確には配列ではないからです。もっと詳しく知りたい人は、C言語の記述をご覧ください。 不明な点や不完全な点は、C言語の規格を参照してくださいと、開発者が最初から言っているので、それを参考にしています。
........

ありがとうございました。目が詰まって目が覚めたが、全部読めてとても嬉しい、本当にありがとう。
 
Leo59:


この記事のレビューを読むことができるリンクをご存知ですか?


https://www.mql5.com/ru/articles/mt4


あかん、もう開かへん((((;゚Д゚)))))))))