mql5言語の特徴、微妙なニュアンスとテクニック - ページ 80

 
ヴィタリー・ムジチェンコ

やってみたが、デタラメは表示されなかった。紛らわしいのは、シフトがおそらく -720 であるべきだということです。

P.S.繰り返しになりますが、私はシフト+2時間-とサイトに書いてあることを知っていますが、ロボットは知らないのです。

ウェブサイトを鵜呑みにする必要はない。実際のシフトは3時間です。

要求された結果:「現在の 時刻を検索するTimeServer()」うまくいっていないのですが、何か間違っているのかもしれません。

// https://www.mql5.com/ru/docs/dateandtime/timetradeserver
datetime TimeTradeServer()
{
  return(TimeGMT() - TimeServerGMTOffset());
}
 
fxsaber

ウェブサイトを鵜呑みにする必要はない。実際のシフトは3時間です。

4端子で確認したところ、正常です。


お忙しい中、ありがとうございました。

 

トレーディング、自動売買システム、ストラテジーテストに関するフォーラム

ライブラリ:シンボル

fxsaber さん 2018.04.06 08:20

カスタムシンボルのプロパティを変更する必要がある場合、場合によっては、見積書をインポートする前に変更する必要があります。

ですから、まずすべてのシンボルのプロパティを設定し、それからインポートを行うことを強くお勧めします。

例えば、SYMBOL_TRADE_TICK_VALUEと SYMBOL_TRADE_TICK_SIZEを設定したい場合、ティック/バーをインポートする前に行う必要があります。

 
// Копирование всех баров без обращения к торговому серверу
CopyRates(Symb, PERIOD_M1, 0, (int)SeriesInfoInteger(Symb, PERIOD_M1, SERIES_BARS_COUNT), Rates);
 
fxsaber

大きな配列はいいのですが、サイズが重要 であることを忘れないでください。

 
ニコライ・セムコ

大きなアレイは確かにいいことなのですが、その ことを念頭に置いておかなければなりません。

それは関係ない。

 
fxsaber

これは何の関係もない。

誰にもわからない...
何しろ、MqlRatesの 1要素の重さは60バイトもある。

もちろん、10000要素の配列を1つだけ使うのであれば、問題ありません。

しかし、このような合成文字で作られた配列が、それぞれ100000個の大きさになると、配列の項目へのアクセス速度が急激に(1桁以上)低下することに直面することになるのです。

配列サイズの最適化に目を向けておいて損はありませんし、良いスタイルだと思います。以上です。私はただ、覚えておくといいと言っただけです。

 
ニコライ・セムコ

どうしてわかるの...
MqlRates 要素1つの重さは60バイトである。

もちろん、10000要素の配列を1つだけ使うのであれば、問題ありません。

しかし、このような合成文字でできた配列がたくさんあり、それぞれが100000の大きさであれば、演算速度の大幅な低下(1桁以上)が予想されます。

配列サイズの最適化には目をつぶってもいいし、いいスタイルだと思います。以上です。心に留めておいた方がいいと言っただけです。

この例では、配列のサイズには一切触れていません。問題は、トレードサーバーから履歴要求を呼び出すため、すでにTerminalに存在するバーをできるだけ早く取得することではありませんでした。

 
fxsaber

この例では、配列のサイズには一切触れていません。取引サーバーから履歴要求を呼び出さないこと、それに応じて、すでにTerminalにあるバーをできるだけ早く取得することでした。

ああ、なんだったんだろう。

あなたのコードの行を見たところ、おそらくCPUキャッシュサイズより大きなアレイが作成されるでしょう。

理由: