bool RefreshRates( )
Refreshing of data in pre-defined variables and series arrays. This function is used when expert advisor has been calculating for a long time and needs data refreshing. Returns TRUE if data are refreshed, otherwise returns FALSE. The only reason for data cannot be refreshed is that they are the current data of the client terminal.
定義済み変数と直列配列内のデータを更新します。この関数は、エキスパート アドバイザーが長時間の計算をして、データの更新が必要なときに使用されます。データが更新された場合、TRUE を返します。それ以外の場合は FALSE を返します。データを更新することができない唯一の理由は、ターミナル クライアントが現在データである場合です。
Experts and scripts operate with their own copy of history data. Data of the current symbol are copied at the first launch of the expert or script. At each subsequent launch of the expert (remember that script is executed only once and does not depend on incoming ticks), the initial copy will be updated. One or more new ticks can income while the expert or script is operating, and data can become out of date.
エキスパートとスクリプトは自身の履歴データのコピーで動作します。現在通貨ペアのデータは、最初にエキスパート、または スクリプトが起動した時にコピーされます。それぞれの次に起動するエキスパート(スクリプトはただ一度だけ実行され、受信ティックに依存しないことに留意してください)によって、最初のコピーは更新されます。エキスパート、もしくはスクリプトが動作している間に、1つ以上の新しいティックを受信すると、データが期限切れになることがあります。
Sample:
サンプル:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | int ticket; while(true) { ticket=OrderSend(Symbol(),OP_BUY,1.0,Ask,3,0,0,"expert comment",255,0,CLR_NONE); if(ticket<=0) { int error=GetLastError(); //---- not enough money if(error==134) break; //---- 10 seconds wait Sleep(10000); //---- refresh price data RefreshRates(); break; } else { OrderSelect(ticket,SELECT_BY_TICKET); OrderPrint(); break; } } |