新しいMetaTrader 4クライアントターミナルビルド402

 

MetaTrader 4 クライアントターミナル ビルド 402

  1. ターミナル:History Centerへの履歴アップロード(F2キー)時のタイムゾーン補正を修正しました。
  2. ターミナル:目盛り1-1のグラフを5桁の文字で固定表示する。
  3. フォーラムとクレシュログのメッセージを修正しました。
ライブアップデートは、LiveUpdateシステムを通じて提供される予定です
 

問題点2

これがその機能です。

void MonitorTick()
{   
   string s;
   
   datetime dt=TimeCurrent();
   int y1=TimeYear(dt);
   int m1=TimeMonth(dt);
   int d1=TimeDay(dt);
   string fn=y1+"_"+m1+"_"+d1+"_Monitor_Tick_"+Symbol()+".mon";
         
   {
      handleM=FileOpen(fn,FILE_BIN|FILE_WRITE|FILE_READ);
      if (handleM<0) 
      {
         handleM=FileOpen(fn,FILE_BIN|FILE_WRITE);
      }
      else
      {
         s="Time;;Shift "+Symbol()+"\n";
         FileWriteString(handleM,s,StringLen(s));
      }
   }

   s=TimeToStr(TimeCurrent(),TIME_DATE|TIME_MINUTES|TIME_SECONDS)+";;";
   
   s=s+DoubleToStr((Bid-iOpen(NULL,PERIOD_D1,0))/Point,0)+"\n";
   
   {      
      FileSeek(handleM,0,SEEK_END);
      FileWriteString(handleM,s,StringLen(s));
   
      FileClose(handleM);
   }
      
}

つまり、1ティックごとに、現在の価格とその日の始値の 差をファイルに書き込むのです。

あるとき、ファイルにゴミを書き込むようになった。以下、コンテンツ。

2011.05.12 15:40:50;;2
2011.05.12 15:40:50;;1
2011.05.12 15:40:51;;0
2011.05.12 15:40:51;;1
2011.05.12 15:40:52;;2
2011.05.12 15:40:53;;2
2011.05.12 15:40:55;;3
2011.05.12 15:53:54;;15692
2011.05.12 15:53:54;;15688
2011.05.12 15:54:05;;15692
2011.05.12 15:54:28;;15696
2011.05.12 15:54:42;;15694
2011.05.12 15:54:56;;15698
2011.05.12 15:55:40;;15697
2011.05.12 15:56:40;;15698
2011.05.12 15:56:47;;15696
2011.05.12 15:57:17;;15696
2011.05.12 15:57:34;;15699 

どう説明するんだ?

Expertはこの関数で他に何もしておらず、コードは3行です。端末をリセットすることだけが有効です。ちなみに、インジケーター(多通貨)も無意味に表示されるようになりました。

 
dimonsky:

問題点2

どう説明するんだ?


というような構文にした場合。

Bid-iOpen(NULL,PERIOD_D1,0))

は、D1履歴にバーがあり、それが期待されるものに対応しているかどうかを確認することです。

すなわち、現在の日足バーの 値を使用する場合、その始値を まさに現在の日足バー.

追伸

多通貨のコードでも同じなのでは?

 

では、画面にデータが表示されるだけではダメなのですね。

画面には数ヶ月分の履歴が残っています。 また、履歴が「突然」消えたとき、再起動直後と同様に、端末の電源を入れた瞬間に「突然」現れ、不具合なくさらに刻みが書き込まれたとき、1秒前の刻みが現在の刻みとどう違うのかを説明してください。

ゼロバーでも、すべてのペアの履歴がある場合、それらは特別に他のウィンドウで開かれ、100%の履歴を持つようになります。

 
PapaYozh:


I.e. 現在の日中のバーの始値を使用する場合は、始値 まさに日棒.

チャートは開いていて、当然現在が表示されている。1秒前に始値があったのに、消えてしまった?

そして、その差が15000pipsになるのは何日目なのか...。?

 
dimonsky:
奇妙な状況です。オープン・チャートがあり、当然ながらその日は表示されています。1秒前に始値があったのに、それが消えた?


私は端末の開発者ではないので、開いているウィンドウのバーと利用可能な履歴の関連性については推測するしかないのですが。

曖昧さを避けるために、正しいプログラミングの方法を書きました。

 
PapaYozh:


私はターミナルの開発者ではないので、開いているウィンドウのバーとプログラムで利用できる履歴の関連性については推測するしかないのですが。

曖昧さをなくすために、正しいプログラミングの方法を書きました。


当日の 値にアクセスする際に、どのような曖昧さがあり得るか? 他にどのようなチェックが必要か?

GBPCADのペアの場合、15000ピップスというのは、今日を含めて数日単位ですべての履歴が消えてしまったということです。しかも、たった今、突然消えてしまったのですからね。

 
GBPCADの 場合 15000pipsは、RefreachRates()で相場を更新しなかったか、MarketInfo(Symbol(),MODE_BID)を使わなかったため、Bid price = 0となることを意味します。
 
xrust:
GBPCADの15000pipsは、RefreachRates()で相場を更新しなかったか、MarketInfo(Symbol(),MODE_BID)を使わなかったため、Bid price = 0となったことを意味します。


いいえ、この場合、得られる値はマイナスになるからです(計算式を参照)。

問題は、まさにBidがあったのに履歴がなかったことです。そして、履歴があったのは一瞬前なのに、プログラムコードに利用できない理由を考えています。

 

- そして私は、今日現在(2011年5月13日)、何の更新もありません。私のDCが新しいビルドを無視しているのでしょうか?

とりあえず、アップデート警告や定期的な再起動はなかった。

 
brici:

- そして私は、今日現在(2011年5月13日)、何の更新もありません。私のDCが新しいビルドを無視しているのでしょうか?

とりあえず、アップデート警告や定期的な再起動はなかった。

明日にはアップデートが完了するはずです。これは速報値です。
理由: