MT5とスピードの関係 - ページ 87 1...808182838485868788899091929394 新しいコメント Artyom Trishkin 2021.03.01 11:53 #861 fxsaber:もっと早く これは同じことで、関数の値を返します。しかし、事前にチェックも行います。 関数自体の内部にもシンボル名の渡された値のチェックがあり、そこから -"シンボル()、_SymbolまたはNULLの代わりに、単純な文字列パラメータは、完全なプログラムおよびより多くのプロパティ要求のチェック"、または追加のチェックなしでキャッシュから現在のシンボルの値を使用しています。 なぜもう一度やって、それでもデータ検索が速くなると言い張るのですか?そのような理屈は理解できない。 ちなみに、私はいつも関数内でそうしていますが、なんとなくデータ取得が早くなるのではなく、関数内で渡されたシンボル名の値をチェックするため、遅くなるような気がしています。 fxsaber 2021.03.01 11:54 #862 Artyom Trishkin:なぜ、またそれらを行い、なおかつデータの高速化を謳っているのでしょうか? ご自身で説明を引用されていますね。 fxsaber 2021.03.01 11:55 #863 Slava:Symbol()、_Symbolの項目はNULLと同等です(シンボル名の代わりにNULLが許される場合)。 MT4でも同じですか?また、MT5 Testerではどうでしょうか? fxsaber 2021.03.01 11:56 #864 Artyom Trishkin:ちなみに、私はいつも関数でこうしています。 見せてください。 Artyom Trishkin 2021.03.01 11:56 #865 fxsaber:ご自身で説明を引用されていますね。 その通り、すべて通常の関数内で行われます。なぜ外側にも重複しているのか? fxsaber 2021.03.01 11:58 #866 Artyom Trishkin:その通り、すべて通常の関数内で行われます。なぜ外側にも重複しているのか? それでは、説明を理解していないことになります。2つの呼び出しのスピードが違う。 void OnTick() { static const string Symb = _Symbol; MqlTick Tick; SymbolInfoTick(_Symbol, Tick); SymbolInfoTick(Symb, Tick); } Artyom Trishkin 2021.03.01 11:58 #867 fxsaber:見せてください。 これが私と一緒に行われるすべての関数とメソッド? 数が多すぎるんです。 fxsaber 2021.03.01 12:01 #868 Artyom Trishkin:すべての機能、メソッドで、そうすることができますか? 1つで十分です。 Artyom Trishkin 2021.03.01 12:11 #869 fxsaber:それでは、説明を理解していないことになります。2つの呼び出しのスピードが違う。 私はすべてを理解したようです。もちろん、違うんです。では、どのようにスピードアップしたのでしょうか?現在のシンボルではない値を関数に渡すのは、ある場合、つまりnot_Symbolの場合です。 ここで、上記の値を関数に渡した場合、関数はチェックを行わず、キャッシュから現在のシンボルの値を取得する。 他のケースでは、それはチェック "フルプログラム "+市場概要でその存在を指定されたシンボルのデータを照会します。あなたの "fast "関数は、非ネイティブシンボルからデータを要求するとき、これらのチェックを取り除くことはありません。では、加速度はどこにあるのでしょうか? bool SymbolInfoTickFast( const string &Symb, MqlTick &Tick ) { return((Symb == _Symbol) ? SymbolInfoTick(_Symbol, Tick) : SymbolInfoTick(Symb, Tick)); } If(SymbolInfoTickFast(Symbol(), tick_array)) を呼び出したときの関数のオプションは2つだけです。{} 現在のシンボルのデータを取得する - パラメータ _Symbol を指定して SymbolInfoTick を呼び出す (クイック) 別のシンボルデータを取得する - 文字列パラメータでSymbolInfoTickを呼び出す (遅い) もうひとつ、もしあなたが(動くものすべてを定義する習慣で)現在のシンボルに対して文字列変数を作成しているなら、はい - ここでチェックを行い、マクロ置換を定義済み変数に 置き換えるか、Symbol()を呼び出す必要があります。 fxsaber 2021.03.01 12:21 #870 Artyom Trishkin:どのように高速化したのですか? 当たり前のことを説明するのは難しいんです。 const MqlTick GetMarketWatchTick( const string &Symb ) { MqlTick Tick = {0}; SymbolInfoTick(Symb, Tick); return(Tick); } void OnTick() { MqlTick Ticks[1]; Ticks[0] = GetMarketWatchTick(_Symbol); ArrayPrint(Ticks); } このコードでは、GetMarketWatchTickを高速化することが可能です。 1...808182838485868788899091929394 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
もっと早く
これは同じことで、関数の値を返します。しかし、事前にチェックも行います。
関数自体の内部にもシンボル名の渡された値のチェックがあり、そこから -"シンボル()、_SymbolまたはNULLの代わりに、単純な文字列パラメータは、完全なプログラムおよびより多くのプロパティ要求のチェック"、または追加のチェックなしでキャッシュから現在のシンボルの値を使用しています。
なぜもう一度やって、それでもデータ検索が速くなると言い張るのですか?そのような理屈は理解できない。
ちなみに、私はいつも関数内でそうしていますが、なんとなくデータ取得が早くなるのではなく、関数内で渡されたシンボル名の値をチェックするため、遅くなるような気がしています。
なぜ、またそれらを行い、なおかつデータの高速化を謳っているのでしょうか?
ご自身で説明を引用されていますね。
Symbol()、_Symbolの項目はNULLと同等です(シンボル名の代わりにNULLが許される場合)。
MT4でも同じですか?また、MT5 Testerではどうでしょうか?
ちなみに、私はいつも関数でこうしています。
見せてください。
ご自身で説明を引用されていますね。
その通り、すべて通常の関数内で行われます。なぜ外側にも重複しているのか?
その通り、すべて通常の関数内で行われます。なぜ外側にも重複しているのか?
それでは、説明を理解していないことになります。2つの呼び出しのスピードが違う。
見せてください。
これが私と一緒に行われるすべての関数とメソッド?
数が多すぎるんです。
すべての機能、メソッドで、そうすることができますか?
1つで十分です。
それでは、説明を理解していないことになります。2つの呼び出しのスピードが違う。
私はすべてを理解したようです。もちろん、違うんです。では、どのようにスピードアップしたのでしょうか?現在のシンボルではない値を関数に渡すのは、ある場合、つまりnot_Symbolの場合です。
ここで、上記の値を関数に渡した場合、関数はチェックを行わず、キャッシュから現在のシンボルの値を取得する。
他のケースでは、それはチェック "フルプログラム "+市場概要でその存在を指定されたシンボルのデータを照会します。あなたの "fast "関数は、非ネイティブシンボルからデータを要求するとき、これらのチェックを取り除くことはありません。では、加速度はどこにあるのでしょうか?
If(SymbolInfoTickFast(Symbol(), tick_array)) を呼び出したときの関数のオプションは2つだけです。{}
もうひとつ、もしあなたが(動くものすべてを定義する習慣で)現在のシンボルに対して文字列変数を作成しているなら、はい - ここでチェックを行い、マクロ置換を定義済み変数に 置き換えるか、Symbol()を呼び出す必要があります。
どのように高速化したのですか?