[SERVICE DESK】タイマーでシニアTFの時刻を取得する際にエラーが発生!? - ページ 13

 
Alexey Kozitsyn:

ポイント1をお読み ください。

バーの開始時間を得るためにタイマーは全く役に立ちませんし、他のデータも、チャートとは異なる別のシンボルからでなければ、役に立ちません。現在のチャートと異なるシンボルに関連するものではなく、現在のシンボルの別のTFに関連するものであれば、それは興味深い。新しいデータが届くまで更新されません。しかし、あなたの仕事はすべて現在の記号に基づいているのです。だから、わざわざタイマーを使わなくてもいいのです。このように残りは何度か咀嚼しています。話題は堂々巡りになった。

 
Konstantin Nikitin:

バーの開始時間を得るためにタイマーは全く役に立ちませんし、他のデータも、チャートとは異なる別のシンボルからでなければ、役に立ちません。現在のチャートと異なるシンボルに関係なく、現在のシンボルの別のTFに関係する場合は、1ミリ秒ごとにチェックするのが面白いです。新しいデータが届くまで更新されません。しかし、あなたの仕事はすべて現在の記号に基づいているのです。だから、わざわざタイマーを使わなくてもいいのです。このように残りは何度か咀嚼しています。話題が堂々巡りになってしまった。

マテさん、あなたは明らかにこの状況を理解していませんね。もうタイマーは関係ない、忘れてくれ。タイマーは、私が本当に困っていることを指しています。今問題になっているのは、受信するデータのエラーです。アドバイスしたポイント1には、IsConnected()がある場合、2番目のイベントOnCalculate() の時だけインジケータがサーバに接続すると書いてあります。だから、今までのアドバイスは無駄なんだ。

 
Alexey Kozitsyn:

マテさん、あなたは明らかにこの状況を理解していませんね。もうタイマーは関係ない、忘れてくれ。タイマーは、私が本当に困っていることを指しています。今問題になっているのは、受信するデータのエラーです。アドバイスしたポイント1には、IsConnected()がある場合、2番目のイベントOnCalculate()の時だけインジケータがサーバに接続すると書いてあります。だから、今までのアドバイスは無駄なんだ。

実験的に確認されたのでしょうか?確認することをお勧めします。そこで、テストを行った端末を再起動します。

int OnCalculate(
   const int rates_total,
   const int prev_calculated,
   const datetime &time[],
   const double &open[],
   const double &high[],
   const double &low[],
   const double &close[],
   const long &tick_volume[],
   const long &volume[],
   const int &spread[]
)
{
   static int num = 1;
   
     
     if( IsConnected() )
          if( num == 1 )
               Comment( "Test: ", num );
     num++;
     return(rates_total);
}

そして、何が見えるか?

最初のパスでは、サーバーへの接続があれば、すべてが機能します。

 
Konstantin Nikitin:

経験的に検証したのでしょうか?そうすることをお勧めします。そこで、テストを行った端末を再起動します。

そして、何が見えるか?

最初のパスでは、サーバーへの接続があれば、すべてが機能します。

市場が機能していないときに、まともな頭で考えてテストする人がいるのだろうか?

そして、そう、経験的に検証してみた、ということを書いて います。

 
Alexey Kozitsyn:

市場が機能していないときに、まともな頭で考えてテストする人がいるのだろうか?

そうそう、実験的にテストしてみた、ということを書きました

これは、市場が機能しているかどうかとは関係ない。インジケータが動作し、その解析が開始されました。1パス目の結果は解説にあります。あなたは言った

アレクセイ・コジツィン

IsConnected()が存在する場合、インジケータは2番目の イベントOnCalculate()の時だけサーバに接続するという事実について書かれています。だから、今までのアドバイスは無駄なんだ。

 
Konstantin Nikitin:

市場が機能しているかどうかと、何か関係があるのでしょうか?指標が始まり、分析が進む。1パス目の結果は解説にあります。とおっしゃいましたね。

そうですね。わかりました。ここで、このインジケータをチャートにインストールした端末の電源を切り、再度実行してください。

 
Alexey Kozitsyn:

うっそー。よし、それならここで、あなたのこのインジケータをチャートに取り付けた端末の電源を切り、再度立ち上げてください。

そこで、このチャート

は、初公開のほんの数分前に作られたものです。つまり、今日です。しかも、端末を再起動した後である。
週末もサーバーとの接続は確立されています。同じ天秤で確認しても、セッションが終了する前に切断されていれば、最新のデータを取得することができます。

 
Konstantin Nikitin:

そこで、このグラフィック

と、初公開のほんの数分前に作られたものです。つまり、今日です。しかも、端末を再起動した後である。
週末もサーバーへの接続は確立されている。同じ天秤で確認しても、セッションが終了する前に切断されていれば、最新のデータを取得することができます。

#property strict
#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
   if( !IsConnected() )
     {
        Print( __FUNCTION__,": IsConnected = false" );
        return( 0 );
     }
   //---
   Print( "Connected!" );
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+

結果が出ています。

2018.10.06 18:24:32.261 test_isConnected GBPUSD,M1: initialized
2018.10.06 18:24:32.313 test_isConnected GBPUSD,M1: OnCalculate: IsConnected = false
2018.10.06 18:24:33.080 test_isConnected GBPUSD,M1: Connected!
また、あなたのコードでは、読み込み時にコメントが表示されません。
 
Alexey Kozitsyn:

結果が出るんです。

そして、あなたのコードは、読み込まれたときにコメントが表示されないのです。

まあ、可能性はありますね。私のサーバーは、日曜日にメンテナンスのために時々停止しますが、長い時間ではありません。繋がらない原因の一つかもしれません。
インジケータが起動する前にターミナルがサーバーに接続できないのは、別の理由によるものだと思われます。
私の端末はすぐに接続されます。

 
Konstantin Nikitin:

確かにそうかもしれませんね。日曜日はメンテナンスのためサーバーがダウンするかもしれませんが、長くは続かないでしょう。つながらない原因の一つかもしれません。
インジケータを起動する前に端末がサーバに接続する時間がないのは、別の理由によるものと思われます。
私の端末はすぐに接続されます。

そして、シンプルに、今チャート上にあなたの編集を加えた私のインジケータをロードして ください。端末の電源を切る。月曜日に電源を入れなおして、その結果をご覧ください。これ以上の議論は無駄です。