[ARCHIVE!] フォーラムを散らかさないように、どんなルーキーの質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしではどこにも行けない - 4. - ページ 198

 

ある指標の中で、次のような構図に出会いました。

int R; //グローバルレベルで変数が宣言されています。

同じ変数に&記号を付けて、ユーザー定義関数にするとこんな感じになりました。

voidFunction(int A, int B, int &R) {R = A*B}.

なぜこのようなことが行われるのか、どこで詳しく読めるのか、どなたか教えてください。

 
AndEv:

ある指標の中で、次のような構図に出会いました。

int R; //グローバルレベルで変数が宣言されています。

同じ変数に&記号を付けて、ユーザー定義関数にするとこんな感じになりました。

void Function(int A, int B, int &R) {R = A*B}.

なぜこのようなことが行われるのか、どこで詳しく読めるのか、どなたか教えてください。


チュートリアルはこちら です。
 
Roman.:

チュートリアルはこちらグーグルの ルールです


こうなったら何が変わるのか理解できない。

void Function(int A, int B) {R = A*B}.

R変数はグローバルに宣言され、いずれにせよ関数内で見えるようになります。パラメータを参照渡しする必要があるのは、どのような場合ですか?

 
AndEv:


こうなったら何が変わるのか理解できない。

void Function(int A, int B) {R = A*B}.

R変数はグローバルに宣言され、いずれにせよ関数内で見えるようになります。パラメータを参照渡しする必要があるのは、どのような場合ですか?


教科書を読む、ドキュメントを読む、ググる、ここ です。

"swap "関数を呼び出すと、新しい変数a、bが作成され、値3と5が代入 されます。これらの変数は変数pやqとは全く関係がなく、これらを変更してもpやqの値は変わりません。このようなパラメータ渡しの方法をバリューパッシングと呼びます。

ある関数が他の関数で宣言された変数の値を変更できるようにするには、渡されるパラメータが単なる定数値ではなく、変数であることを指定する必要があり、参照渡しで値を渡さなければならないのです。そのためには、swap関数を次のように宣言しておく必要があります。
void swap(int & a, int & b)

変数名の前のアンパサンドは、この変数がローカル変数ではなく、関数呼び出し時にパラメータとして指定した変数への参照であることを意味します。さて、swap(p,q)を呼び出すと、変数aとbは変数pとqと同義であり、その値を変更するとpとqの値が変更されます。しかし、関数を swap(3,5) と呼ぶことはできません。なぜなら、3 と 5 は定数であり、変数を定数と同義に
することはできないからです」。

 
Vinin:

できますが、EAを起動させる必要があります

はい、了解しました :)ただ、アイデアがうまくいくかどうかを確認するために、テスター版とでもいうべき何らかの作戦を試すことはよくありますね。そこにある間違いが、まったく別の角度から見えてくることもあるのです。それに、急いで作曲して見なければならない場合、時間がありません。

彼がログファイルに書き込んだものをコピーしないように、露骨に閉じる方法はないでしょうか?それについて質問します。

 
Pyro:

それは理解できる:)ただ、テスター版という作戦を試すだけで、アイデアがどうなるかわからないことが多いんです。失敗が全く違う形で出てくることもある。それに、急いで作曲して見なければならない場合、時間がありません。

彼がログファイルに書き込んだものをコピーしないように、露骨に閉じる方法はないでしょうか?それについて質問します。



エラーで動くEAを信用できるわけがない
 
alsu:

インジケータを描画する基準点であるプログラム内部変数を変更し、キーコンビネーションが押された後に再計算してラインを再描画するという、別のものが必要なのです。

ところで、なぜMTはフックを欲しがらないのでしょうか?


ご理解いただきありがとうございます!)。
 
テスターでインジケーターを 動かす方が簡単かもしれませんが...。
 
nlp2311:

ご理解いただきありがとうございます!)。

それで...2つのスクリプトを作成し、必要なキーにぶら下げ、その中にターミナルのグローバル変数(Expert Advisorが定期的に読み取る)を追加し、バーシフトを変更する...:-)

もし可能なら - グラフィカルなオブジェクトを介して同じことができる ...例えば、EAの初期化中に、2つのテキストマークが表示されます - そして、それらのいずれかが失われた場合(EAの作業中にマウスでそれらのいずれかを選択 - Delキーを押した) - あなたのBarsheiftのカウンタは、いずれかの方法で有罪になります:-)。- 削除したマークを画面上に復元する......。