は、実行ポリシーを返します。 - ページ 8

 

このように移動平均の現在のデータを取得するのですが、これでよいのでしょうか?

input int      ma_period = 10;
 int ma_handle = 0;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
    ma_handle = iMA(_Symbol,_Period,ma_period,0,MODE_SMA,PRICE_MEDIAN);
   if(ma_handle == INVALID_HANDLE)
     {
      Print("ma_handle == INVALID_HANDLE");
      return(INIT_FAILED);
     }

   return(INIT_SUCCEEDED);


  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  { 
  double   ma[1] ;
   if(CopyBuffer(ma_handle,0,0,1,ma)==1)
     {
     
     
     }
 }

2つの質問です。

1.インジケーターバッファの 番号を関連付けないことについては、特にありません。インジケータは1つなので、自動的にバッファ0が取得され、それを指定しました。

2.初期化でインジケーターのハンドルを持っている場合、インジケーターに渡されるパラメータを変更すると、初期化イベントが来て新しいパラメータが適用されるように、EAをチャートに入れ直す必要があるのでしょうか?

 
Ivan_Invanov:

このように移動平均の現在のデータを取得するのですが、これでよいのでしょうか?

2つの質問です。

1.インジケーターバッファの 番号を関連付けないことについては、何もありません。インジケータは1つなので、自動的にバッファ0が取得され、それを指定しました。

2.初期化でインジケーターハンドルを持っている場合、インジケーターに渡されるパラメータを変更すると、初期化イベントが来て新しいパラメータが適用されるように、EAをチャートに再ロードする必要がありますか?

1.協会」は存在しない。そんなことはなかった。

CopyBufferの ヘルプを読んでみましょう。

int  CopyBuffer(
   int       indicator_handle,     // handle индикатора
   int       buffer_num,           // номер буфера индикатора
   int       start_pos,            // откуда начнем 
   int       count,                // сколько копируем
   double    buffer[]              // массив, куда будут скопированы данные
   );

インジケータのハンドル(あなたの場合、これは変数ma_handle とバッファ番号 '0' - ゼロ、なぜなら Moving Average インジケータはバッファを1つしか持たないからです)を受け取る関数があります。


2.EAの入力パラメータを変更した場合、再度EAを初期化し、OnInitで入力したパラメータでインジケータハンドルが作成されます。

Документация по MQL5: Доступ к таймсериям и индикаторам / CopyBuffer
Документация по MQL5: Доступ к таймсериям и индикаторам / CopyBuffer
  • www.mql5.com
Отсчет элементов копируемых данных (индикаторный буфер с индексом buffer_num) от стартовой позиции ведется от настоящего к прошлому, то есть стартовая позиция, равная 0, означает текущий бар (значение индикатора для текущего бара). При копировании заранее неизвестного количества данных в качестве массива-приемника buffer[] желательно...
 
Vladimir Karputov:

1.協会」は存在しない。今までもそうだった。

...

SetIndexBuffer()の呼び出しを意味する。

 
Dmitry Fedoseev:

SetIndexBuffer()の呼び出しを意味する。

そうですね、インジケータ・バッファの番号が何なのか、このバッファはどのように作られるのか、あるインジケータに属するのか、同じ番号付けなのか、はっきりしませんね。ドキュメントにはSetIndexBuffer()と書いてありますが、Moving Averageの例では書かずに書いています。参考文献を読み、追加で記事を検索したが、まだ不明である。プリプロセッサーでバッファを指定する必要があるのか、また、なぜプリプロセッサー指令で バッファを1つ少なくして、同じにしないのか。
 
Ivan_Invanov:
そうですね、インジケータ・バッファの番号とは何か、このバッファはどのように作られるのか、特定のインジケータに属するのか、それとも一般的な番号付けがされているのか、わかりません。ドキュメントにはSetIndexBuffer()と書いてありますが、Moving Averageの例では書かずに書いています。参考文献を読み、追加で記事を検索したが、まだ不明である。プリプロセッサーでバッファを指定する必要があるのか、また、なぜプリプロセッサー指令で バッファを1つ少なくして、同じにしないのか。

もし、形而上学的な意味を求めるなら...。となると、いろいろなことが分からなくなる。そうでなければ、ただの数字に過ぎない。特定の指標に属するものです。

エキスパートアドバイザーにはインジケーターバッファがないため、SetIndexBufer()を呼び出すことはできません。

1つも減らず、まったく同じ。ゼロから数えると、最後の数字は総数より1少なくなる。

 
ありがとうございます。
 

差し支えなければ、もう少し質問に答えてください。

1.どうせ後で何か代入するのなら、宣言した変数 に0を代入する必要があるのか、理解できません。ましてや、0が割り当てられないこともあれば、割り当てられることもある。

また、初期化時にオブジェクトを削除する必要があると言われていますが(理由が分かりません)、インジケータハンドルはオブジェクトですが、通常は削除されませんが、なぜでしょうか?

3.MqlTradeRequest request={0}; どういう意味ですか?おそらく、構造体全体に0が代入されているのでしょうが、数値型だけが含まれているわけではありません。

4. そして、なぜここに論理演算があるのでしょうか?

bool  OrderSend(
   MqlTradeRequest&  request,      // структура запроса
   MqlTradeResult&   result        // структура ответа
   );
 
Ivan_Invanov:

差し支えなければ、もう少し質問に答えてください。

1.どうせ後で何か代入するのなら、宣言した変数 に0を代入する必要があるのか、理解できません。ましてや、0が割り当てられないこともあれば、割り当てられることもある。

また、初期化時にオブジェクトを削除する必要があると言われていますが(理由が分かりません)、インジケータハンドルはオブジェクトですが、通常は削除されませんが、なぜでしょうか?

3.MqlTradeRequest request={0}; どういう意味ですか?おそらく、構造体全体に0が代入されているのでしょうが、数値型だけが含まれているわけではありません。

4. なぜ、ここで論理演算が必要なのか?

1.癖で。

2.他のオブジェクトである。単体ではアンロードされますが、関数IndicatorRelease()で高速化することができます。

3.クリアして終了です。

4. これは論理演算ではなく、参照による変数の転送です。

 
Dmitry Fedoseev:

1.癖で。

2.これは別物です。その後、自動的にアンロードされますが、IndicatorRelease()によって加速することができます。

3.クリアして終了です。

4. これは論理演算ではなく、参照による変数の転送です。

おかげさまで)
 
何かと混乱する。SYMBOL_TRADE_EXECUTION_MARKETが 実行されたとき。 即時約定の ように、ある価格で注文を開くようなことはできますか?未決済注文は必要ですか?保留中の注文の成行注文のフォーマットを書いてください。