intCopyBuffer(
int indicator_handle, // handle индикатораint buffer_num, // номер буфера индикатораint start_pos, // откуда начнем int count, // сколько копируемdouble buffer[] // массив, куда будут скопированы данные
);
インジケータのハンドル(あなたの場合、これは変数ma_handle とバッファ番号 '0' - ゼロ、なぜなら Moving Average インジケータはバッファを1つしか持たないからです)を受け取る関数があります。
Отсчет элементов копируемых данных (индикаторный буфер с индексом buffer_num) от стартовой позиции ведется от настоящего к прошлому, то есть стартовая позиция, равная 0, означает текущий бар (значение индикатора для текущего бара). При копировании заранее неизвестного количества данных в качестве массива-приемника buffer[] желательно...
このように移動平均の現在のデータを取得するのですが、これでよいのでしょうか?
2つの質問です。
1.インジケーターバッファの 番号を関連付けないことについては、特にありません。インジケータは1つなので、自動的にバッファ0が取得され、それを指定しました。
2.初期化でインジケーターのハンドルを持っている場合、インジケーターに渡されるパラメータを変更すると、初期化イベントが来て新しいパラメータが適用されるように、EAをチャートに入れ直す必要があるのでしょうか?
このように移動平均の現在のデータを取得するのですが、これでよいのでしょうか?
2つの質問です。
1.インジケーターバッファの 番号を関連付けないことについては、何もありません。インジケータは1つなので、自動的にバッファ0が取得され、それを指定しました。
2.初期化でインジケーターハンドルを持っている場合、インジケーターに渡されるパラメータを変更すると、初期化イベントが来て新しいパラメータが適用されるように、EAをチャートに再ロードする必要がありますか?
1.協会」は存在しない。そんなことはなかった。
CopyBufferの ヘルプを読んでみましょう。
インジケータのハンドル(あなたの場合、これは変数ma_handle とバッファ番号 '0' - ゼロ、なぜなら Moving Average インジケータはバッファを1つしか持たないからです)を受け取る関数があります。
2.EAの入力パラメータを変更した場合、再度EAを初期化し、OnInitで入力したパラメータでインジケータハンドルが作成されます。
1.協会」は存在しない。今までもそうだった。
...
SetIndexBuffer()の呼び出しを意味する。
SetIndexBuffer()の呼び出しを意味する。
そうですね、インジケータ・バッファの番号とは何か、このバッファはどのように作られるのか、特定のインジケータに属するのか、それとも一般的な番号付けがされているのか、わかりません。ドキュメントにはSetIndexBuffer()と書いてありますが、Moving Averageの例では書かずに書いています。参考文献を読み、追加で記事を検索したが、まだ不明である。プリプロセッサーでバッファを指定する必要があるのか、また、なぜプリプロセッサー指令で バッファを1つ少なくして、同じにしないのか。
もし、形而上学的な意味を求めるなら...。となると、いろいろなことが分からなくなる。そうでなければ、ただの数字に過ぎない。特定の指標に属するものです。
エキスパートアドバイザーにはインジケーターバッファがないため、SetIndexBufer()を呼び出すことはできません。
1つも減らず、まったく同じ。ゼロから数えると、最後の数字は総数より1少なくなる。
差し支えなければ、もう少し質問に答えてください。
1.どうせ後で何か代入するのなら、宣言した変数 に0を代入する必要があるのか、理解できません。ましてや、0が割り当てられないこともあれば、割り当てられることもある。
また、初期化時にオブジェクトを削除する必要があると言われていますが(理由が分かりません)、インジケータハンドルはオブジェクトですが、通常は削除されませんが、なぜでしょうか?
3.MqlTradeRequest request={0}; どういう意味ですか?おそらく、構造体全体に0が代入されているのでしょうが、数値型だけが含まれているわけではありません。
4. そして、なぜここに論理演算があるのでしょうか?
差し支えなければ、もう少し質問に答えてください。
1.どうせ後で何か代入するのなら、宣言した変数 に0を代入する必要があるのか、理解できません。ましてや、0が割り当てられないこともあれば、割り当てられることもある。
また、初期化時にオブジェクトを削除する必要があると言われていますが(理由が分かりません)、インジケータハンドルはオブジェクトですが、通常は削除されませんが、なぜでしょうか?
3.MqlTradeRequest request={0}; どういう意味ですか?おそらく、構造体全体に0が代入されているのでしょうが、数値型だけが含まれているわけではありません。
4. なぜ、ここで論理演算が必要なのか?
1.癖で。
2.他のオブジェクトである。単体ではアンロードされますが、関数IndicatorRelease()で高速化することができます。
3.クリアして終了です。
4. これは論理演算ではなく、参照による変数の転送です。
1.癖で。
2.これは別物です。その後、自動的にアンロードされますが、IndicatorRelease()によって加速することができます。
3.クリアして終了です。
4. これは論理演算ではなく、参照による変数の転送です。