MQL4プログラミングに関するオンラインブックのベータ版 - Sergey Kovalev (SK.)著 - ページ 11

 

からSK

1.このチュートリアルは、ベータ版として、つまり批判を覚悟で投稿されたものです。
2.さて、文章を強調したところ、「すべての配列は定義により静的である」という行が見つかりました))) つまり、これは私の問題ではありません。
3.定義上すべての配列は静的であるとする教科書の批判的な1行に任意に従うと、トレーサーで「ArrayMinimum 関数の開始位置0が正しくない」というアドレスエラーが発生することがあります。
(この一行で教科書の良さが損なわれることはない、SKさんに拍手)
4)だから静的配列は、まず、メモリ確保の意味で
の場合、各要素の初期化が新たに発生する可能性があります。
MQL4で見えてくるものは?各呼び出し時に、各要素は、定義から明示的にデフォルトのゼロできちんと初期化されます。
すなわち、サブプログラムのデータは、静的な事前定義がなければ保存されない。
MQL4のサブプログラムは、可変メモリーの動的割り当てで実行されることを意味します。
MQL4サブプログラムのすべての変数とサイズが明示されていないすべての配列は、デフォルトで動的です。そうでない場合は、静的な記述で修正する必要があります。
5.例えば、動的メモリ割り当ての場合は、double a[][]...[];を空次元で宣言するチャンスです。
しかし、プログラマがアドレス指定に責任を持つべきであることを言及する必要があります。
(上記の例では,標準関数は古い参照でアドレス指定されており,配列の境界には該当しません).

 
Korey:

からSK


OKです。
 
質問は以下の通りです。

この本はロシア語で書かれています。開発者によると、英語への翻訳は現在進行中で、その後に中国語が登場するそうです。 きっと説明文だけが翻訳され、誰もソースコードには触らないのでしょう。

もともとプログラマーは、その言語の変数にわかりやすい名前をつける人が多く、例えばこのサイトでは、massiv (マシヴ)、Koef、 さらにはMuH_IIIuPuHa_KaHaJIaに出会いました。 そこで、教科書をめくっていたら、次のようなコードに出会いました。




チャイナタウンの住人は、チップの 変数を見て何を言うのだろう? 私たちはそれが であるかを知っていますが、他の人たちは何を知っているのでしょうか?

( Found here:https://book.mql4.com/ru/trading/orderclose)
 
Parabellum:
質問は以下の通りです。

この本はロシア語で書かれています。開発者によると、英語への翻訳は現在進行中で、その後に中国語が登場するそうです。 きっと説明文だけが翻訳され、誰もソースコードには触らないのでしょう。

もともとプログラマーは、その言語の変数にわかりやすい名前をつける人が多く、たとえばこのサイトでは、massiv (マシヴ)、Koef、 さらにはMuH_IIIuPuHa_KaHaJIaに出会いました。 そこで、教科書をめくっていたら、次のようなコードに出会いました。




チャイナタウンの住人は、チップの 変数を見て何を言うのだろう? 私たちはそれが であるかを知っていますが、他の人たちは何を知っているのでしょうか?

( Found here:https://book.mql4.com/ru/trading/orderclose)

ご指摘ありがとうございます。
例の変数の名前は、もちろん、触れません - 中国語では、例えば、ソースコードは象形文字を使用していない、彼らはどのような場合でも、ラテンアルファベットに対処する必要があります。この変数の意味を理解するために、「チャイナタウンの住人」はコメントを見るだけでいい。また、英語圏の住民もTipを「タイプ」とは認識しないでしょう。なぜなら、「タイプ」を英語で言うとtypeになるからです。また、Tipは「チップ」、あるいは「ヒント」です。 しかし、ロシア語圏の開発者のコードを理解することを妨げるものではありません。 ))
 

でも、ネイティブはやっぱり変数名を見るべきだと思うんです。熊手を踏まないように。Tipという変数が、ロシアの3文字の単語と同じ音で、真ん中にU(.u.)という文字がある場合はどうでしょう。そうでない場合は?これでは、本の見栄えが悪くなってしまいます。

もっとシンプルで正しいかもしれません。

int _OrdetType=OrderType()。

if ( _OrdetType > 1 ) ....

 

読者はやはり少しは考えてくれるだろうという前提で...。

 

こちらhttps://book.mql4.com/ru/build/lots 分割記号が抜けています

あるある

Lots_New=MathFloor(Free*Percent100One_Lot/Step)*Step;//計算します。

必要なのは

Lots_New=MathFloor(Free*Percent/100/One_Lot/Step)*Step;//計算します。


ちょっとぎこちないですね、コードが見えているような気がします。一切れは欲しいけど、全部は無理。つまり、バッファに表示されたものをコピーして、自分のプログラムのテキストに貼り付けるのです。しかし、正しく挿入されていない。コード全体が1行になる。書籍の行末コードとMQLエディターの行末コードは一致していない可能性が高い

 

ここにも小さな編集があります。

https://book.mql4.com/ru/build/trading

があります。

switch()制御がケース10ラベルに渡される(ブロック2-3)。


必要性

....(ブロック2)。

 
Prival:

こちらhttps://book.mql4.com/ru/build/lots 分割記号が抜けています

あるある

Lots_New=MathFloor(Free*Percent100One_Lot/Step)*Step;//計算します。

必要なのは

Lots_New=MathFloor(Free*Percent/100/One_Lot/Step)*Step;//計算します。


ちょっとぎこちないですね、コードが見えているような気がします。一切れは欲しいけど、全部は無理。つまり、バッファに表示されたものをコピーして、自分のプログラムのテキストに貼り付けるのです。しかし、正しく挿入されていない。コード全体が1行になる。書籍の行末コードとMQLエディターの行末コードは一致していない可能性が高い


はい、同じフォーマットの問題です。明日には直します。

エラーを発見していただき、ありがとうございました。

すべての完成品コードの認証ファイルがあります。ファイル内のコードは正しいものと思われます。ちなみに、誤字・脱字を探す参考にもなります。

 
Prival:

ここにも小さな編集があります。

https://book.mql4.com/ru/build/trading

があります。

switch()制御がケース10ラベルに渡される(ブロック2-3)。


必要性

....(ブロック2)。



ここで訂正する必要はありません。すべてのブロックには、始点と終点があります。この場合、2がスタート、3がエンドになります。

とにかくありがとうございます:)