エラー、バグ、質問 - ページ 2096

 
elibrarius:

ふむ、よくぞ見つけた ))))

int OnInit()
  {
   return(INIT_SUCCEEDED);
}

void OnTick()
  {
  int s[];
  CopySpread(_Symbol,_Period,0,1,s);
  Print(s[0]);
  }

では、現在のバーのスプレッドフィールドが現在のスプレッドに等しいとか、例えば最小値であるとか、誰が言ったのでしょうか?

SymbolInfoTickを 使用し、バーは歴史的な初歩です。

 
fxsaber:

では、現在のバーのスプレッドフィールドが、現在のスプレッドや最小値などに等しいと誰が言ったのでしょうか?

SymbolInfoTickを使用し、バーは歴史的な初歩です。

CopySpreadは - 最小限のものを覚えている - ほとんどの場合、真実の基準であることが判明した練習と述べた。そこから、ティックに対して確認すると少なくなかったので、bar 2017.10.23 01:00 CopySprea=-3と確定します。

私は、バーと呼んでいます。過去を分析するのに非常に必要なツールです。

SymbolInfoTickは 正しいのですが、CopySpreadを間違ったままにしておく理由は本当にあるのでしょうか?1pt.は理解できる。- は些細なことだと思いますので、素数s=s-1に直してください。以上 )

 
elibrarius:

SymbolInfoTick - 正しく表示されますが、このためにCopySpreadを間違ったままにする必要が本当にあるのでしょうか?1pt.は理解できる。- は、s=s-1に修正するのが初歩的だと、私は思っています。以上 )

テスターを実行する前に、バーの履歴を見て、負のスプレッドがあるかどうかを確認します。何もないところが曲者なんです。

今の開発者がMqlRatesを 思いついたら、こんなくだらないものでなく、普通のフィールドがあるはずです。しかし、彼らはこの構造を再考する暇もなく、すでにいろいろな無意味なものを作ってしまっている。そんな歴史の初歩の初歩を手に入れたわけです。そして、今度はこの重荷をずっと引っ張っていくことになるのです。

 
elibrarius:

CopySpread - 最小限のことを記憶する- ほとんどの場合、真実の基準であることが証明される練習を言った。そこから、ティックで確認すると少なくなかったので、bar 2017.10.23 01:00 CopySprea=-3と確定します。

私は、バーと呼んでいます。過去を分析するのに非常に必要なツールです。

SymbolInfoTickは正しいのですが、CopySpreadを間違ったままにしておく理由は本当にあるのでしょうか?1pt.は理解できる。- は些細なことだと思うので、素数s=s-1に直してください。以上 )

注意深く見ていると、新しいバーが 表示されたときに、最後のスプレッドの値が記憶されていることがわかります。

 
Alexey Viktorov:

注意深く見ていると、新しいバーが 表示されたときに、最後のスプレッド値が記憶されていることが分る。

もっとよく見てみると......そうですね、でも部分的には。

専門家のコード

void OnTick() { 
  int s[];
  CopySpread(_Symbol,_Period,0,1,s);
  Print(s[0]);
  MqlTick last_tick;
  if(SymbolInfoTick(Symbol(),last_tick)) { Print(last_tick.time,": Bid = ",last_tick.bid, " Ask = ",last_tick.ask,"  SP = ",DoubleToString(last_tick.ask-last_tick.bid,5)); }
}

1分間のプリントアウトです。まずCopySpreadから見開きを。その後、Ask-Bidから算出

2018.01.01 11:55:00.478 2017.10.23 01:00:00 14
2018.01.01 11:55:00.478 2017.10.23 01:00:00 2017.10.23 01:00:00: ビッド = 1.17715 アスク = 1.17729 SP = 0.00014
2018.01.01 11:55:00.494 2017.10.23 01:00:00 9
2018.01.01 11:55:00.494 2017.10.23 01:00:00 2017.10.23 01:00:00: ビッド = 1.17715 アスク = 1.17724 SP = 0.00009
2018.01.01 11:55:00.510 2017.10.23 01:00:00 9
2018.01.01 11:55:00.510 2017.10.23 01:00:00 2017.10.23 01:00:00: ビッド = 1.17716 アスク = 1.17726 SP = 0.00010
...........
2018.01.01 11:55:01.023 2017.10.23 01:00:30 1
2018.01.01 11:55:01.023 2017.10.23 01:00:30 2017.10.23 01:00:30: ビッド = 1.17704 アスク = 1.17705 SP = 0.00001
2018.01.01 11:55:01.876 2017.10.23 01:00:30 -1
2018.01.01 11:55:01.876 2017.10.23 01:00:30 2017.10.23 01:00:30: ビッド = 1.17707 アスク = 1.17705 SP = -0.00002
2018.01.01 11:55:01.893 2017.10.23 01:00:31 -3
2018.01.01 11:55:01.893 2017.10.23 01:00:31 2017.10.23 01:00:31: Bid = 1.17707 Ask = 1.17703 SP = -0.00004

2018.01.01 11:55:01.909 2017.10.23 01:00:31 -3
2018.01.01 11:55:01.909 2017.10.23 01:00:31 2017.10.23 01:00:31: ビッド = 1.17707 アスク = 1.17704 SP = -0.00003
2018.01.01 11:55:01.925 2017.10.23 01:00:32 -3
...........
2018.01.01 11:55:02.293 2017.10.23 01:00:48 -3
2018.01.01 11:55:02.293 2017.10.23 01:00:48 2017.10.23 01:00:48: ビッド = 1.17702 アスク = 1.17707 SP = 0.00005
2018.01.01 11:55:02.309 2017.10.23 01:00:48 -3
2018.01.01 11:55:02.309 2017.10.23 01:00:48 2017.10.23 01:00:48: ビッド = 1.17703 アスク = 1.17707 SP = 0.00004
2018.01.01 11:55:02.325 2017.10.23 01:00:49 -3
2018.01.01 11:55:02.325 2017.10.23 01:00:49 2017.10.23 01:00:49: Bid = 1.17707 Ask = 1.17707 SP = 0.00000

I.e. 現在のバーのCopySpread値=最小。

しかし、バーの歴史の中で、最後の価値は本当になくなってしまったのです。

<日付> <時間> <オープン> <ハイ> <ロー<close><tickvol><vol><spread>。
2017.10.23 01:00:00 1.17715 1.17720 1.17693 1.17707 64 0 0

ほとんどの場合(最低10回チェック済み)、ここでも不具合が発生します。
以下は、2017.10.23 00:53に記載した上記の問題です。

歴史の中で

2017.10.23 00:53:00 1.17685 1.17725 1.17685 1.17725 8 0 9

そして、ダニについて。

2018.01.01 11:54:59.009 2017.10.23 00:53:43 48
2018.01.01 11:54:59.009 2017.10.23 00:53:43 2017.10.23 00:53:43: Bid = 1.17724 Ask = 1.17733 SP = 0.00009
2018.01.01 11:54:59.025 2017.10.23 00:53:43 48
2018.01.01 11:54:59.025 2017.10.23 00:53:43 2017.10.23 00:53:43: Bid = 1.17725 Ask = 1.17736 SP = 0.00011
2018.01.01 11:54:59.041 2017.10.23 00:53:43 48
2018.01.01 11:54:59.041 2017.10.23 00:53:43 2017.10.23 00:53:43 2017.10.23 10.23 00:53:43: Bid = 1.17725 Ask = 1.17737 SP = 0.00012 <<<<<---------- 最終バーティック
2017.10.23 00:53
2018.01.01 11:54:59.057 2017.10.23 00:54:11 9
2018.01.01 11:54:59.057 2017.10.23 00:54:11:Bid = 1.17728 Ask = 1.17737 SP = 0.00009 <<<<<---------- 最初のティックバー 2017.10.23 00:54 - ここで一致します。

次のバーの最初のティックからのスプレッドが履歴に入るバージョンを確認しました。未確認です。

沿革
2017.10.23 00:59:00 1.17717 1.17723 1.17709 1.17715 14 0 3

次のバーの1ティック目
2018.01.01 11:55:00.478 2017.10.23 01:00:00 14
2018.01.01 11:55:00.478 2017.10.23 01:00:00 2017.10.23 01:00:00: ビッド = 1.17715 アスク = 1.17729 SP = 0.00014

沿革

2017.10.23 01:00:00 1.17715 1.17720 1.17693 1.17707 64 0 0

次のバーの1ティック目
2018.01.01 11:55:02.342 2017.10.23 01:01:03 1
2018.01.01 11:55:02.342 2017.10.23 01:01:03 2017.10.23 01:01:03: Bid = 1.17707 Ask = 1.17708 SP = 0.00001

全体として - スプレッドでいくつかの混乱(

 
elibrarius:

...

全体として - スプレッドに関する若干の混乱(


 

MT4 b1090、Market Watchに数十個のシンボル、数枚のチャートを開いている。terminal.exeは0-1%のCPUを食っている。

MT5 b1730、Market WatchでGBPUSD MetaQuotes-Demoのみ、チャートなし。terminal64.exeが2-3%の CPUを食っている。

これは正常なのか?

 
fxsaber:

MT4 b1090、Market Watchに数十のシンボル、数枚のチャートを開いています。terminal.exeは0-1%のCPUを食っています。

MT5 b1730、Market WatchでGBPUSD MetaQuotes-Demoのみ、チャートなし。terminal64.exeが2-3%の CPUを食っています。

正常なのでしょうか?

この話題は何度か出ていますね。MT5は、より多くの情報をブロードキャストするため、CPUへの負荷が少し高くなります。

しかし、1-2%以内で比較するのは誤りです。

 
Andrey Khatimlianskii:

この話題は何度か出ていますね。MT5は、より多くの情報をブロードキャストするため、若干CPU負荷が高くなります。

しかし、1-2%以内で比較するのは誤りです。

読み取りモードで数十個のタブを開いているいくつかのブラウザは、ゼロを食べる。完全に空の端末がトレントクライアントみたいに消費すると不思議な感じです。そして、パソコンからインターネットを抜いても変わりません。

 
fxsaber:

読み取りモードで数十個のタブを開いているいくつかのブラウザは、ゼロを食べる。完全に空の端末がトレントクライアントみたいに消費すると不思議な感じです。しかも、パソコンから抜いても変わりません。

ブラウザと比較するのは間違っています。バックグラウンドのタブは、私が見る限りでは、全くリソースを消費しません。

そして、ターミナルはチャートがアクティブかどうかに関係なく、ティックを受信して時系列を構築し、チャートに切り替えたときに現在の情報を遅延なく表示するようになっています。

しかし、私は別にMTを擁護しているわけではなく、サービスデスクの計算をすべて行った本格的な比較を誰もしていないことを指摘しているだけなのです。