私のアプローチコアはエンジンです。 - ページ 90

 
fxsaber:

fxsaberさんへ。

どんな データでもリソースを介してやり取りできることは知っています。

しかし、まず文字 列に変換し、さらにStringToChar()でuintに変換し、リソースに保存する必要があります。そして、そのためのコードはもっとシンプルなものです。

しかし、この方法は、同じ文字列をオブジェクト記述で 転送するよりも遅い ことが証明 されました。


私の反対者は文字列型を軽蔑し、ユニオンを使ってすべてのデータを一度にuintに転送 する神話的な方法を使うと言っています。

さらに、文字列もユニオンを通してuintに変換する必要があります。


また、StringToChar()があるのに、なぜ文字列をユニオンでuintに変換しなければならないのでしょうか?

 
Maxim Kuznetsov:

内部的には、EA、インジケータ、スクリプト間のデータ交換のためのGlobalVariablesとファイルだけが存在します。

上記4項目は、いずれも魚が欲しいがためのローカルな "ハコ "です。これら4点は、いずれも任意のデータ、ましてやデータの配列のやり取りを想定していない仕組みを使っています。

п1.100%では、インターフェイススレッドが一時的にロックされ(そう、オブジェクトはそこに存在し、その「説明」も存在する)、オプティマイザでは機能しません。オブジェクト記述は、人間が読めるようにオブジェクトを記述するためのものである。

p2. n2. はテスターやオプティマイザーでは動作せず、イベントを通知する役割を果たします。

P3.P4.リソース(名前付きでも)は長期保存を目的としており、すぐに交換するためのものではありません。テスター/オプティマイザーでの使い勝手については、何とも言えません :-)リードオンリーリソースを使用している

は、曲線解の速度について話す意味がありません。

ps/ ところで、ファイル、より正確にはパイプを使用することができます。

あなたはすべてを正しく書いています。

でも、"ハック "は私たちのすべてです(笑)。

テスターで、最適化モードでは、Expert Advisorとエンジンの接続がうまくいきません。その必要はないのです。


イベント時のパラメータ値のやり取りを有意義に行うためには、EAとエンジンが互いに2000文字までのデータを送信する必要がある。これはあまりないですね。でも、そうでもないんですよ。


最も便利なハックは1番です。

Типы оптимизации - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
Типы оптимизации - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
  • www.metatrader5.com
В данном режиме происходит полный перебор всех возможных комбинаций значений входных переменных, выбранных для оптимизации на соответствующей вкладке. Быстрая (генетический алгоритм) В основу данного типа оптимизации заложен генетический алгоритм подбора наилучших значений входных параметров. Данный тип оптимизации значительно быстрее полного...
 
Реter Konow:

相手はstring型を蔑ろにして、unionでuintに全データを一度に転送 する神話的な方法を使うという話をしているのです。

さらに、文字列もユニオンを介してuintに変換する必要があります。

上記のコードでは、一度に複数の型(文字列だけでなく、文字列の配列も含む)をuintに変換して戻しています。

しかし、この議論では役に立たないと思います。


SZY どうしても文字列を使いたい場合。

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

ライブラリ:HistoryTicks

fxsaber さん 2018.12.04 09:11

// Пример передачи/обмена данных между программами через поле комментария чартов

#include <fxsaber\HistoryTicks\Data_String.mqh> // https://www.mql5.com/ru/code/20298

void OnStart()
{
  int ArrayIn[] = {0, 1, 2, 3, 4, 5};  
  ChartSetString(0, CHART_COMMENT, DATA_STRING::ToString(ArrayIn));    // Записали данные в комментарий чарта

  int ArrayOut[];    
  DATA_STRING::FromString(ChartGetString(0, CHART_COMMENT), ArrayOut); // Прочли данные из комментария чарта
  
  ArrayPrint(ArrayOut);
}
 
fxsaber:

上記は、複数の型(文字列だけでなく、文字列の配列も含む)を一度にuintに変換し、元に戻すコード です。

しかし、この議論では役に立たないと思います。

では、文字列の配列をユニオンを通してuintに変換することができるのですね。

また、StringToChar() 経由よりも速いのでしょうか?

できれば、小さくて簡単な例を挙げてください。あなたのコードがわかりません。

 
Реter Konow:

では、文字列の配列をユニオンを介してuintに変換することができるのですか?

また、StringToChar() よりも速いのでしょうか?

できれば、小さくて簡単な例を挙げてください。あなたのコードがわかりません。

その例は、こちらの スレッドにありました。

再現するためには、サンプルコードで参照されているライブラリにリンクする必要があります。

Мой подход. Ядро - Движок.
Мой подход. Ядро - Движок.
  • 2018.12.19
  • www.mql5.com
В этой ветке, я хочу рассказать о своем подходе в программировании. Заранее предупреждаю, - здесь не будет обсуждений GUI...
 
fxsaber:

...

ZS 本当に行きたかったら

コメントサイズの上限は?

 
Реter Konow:

ちゃんと書いてあるじゃないですか。

でも、「ハック」は私たちのすべてです))。

テスターで、最適化モードでは、Expert Advisorとエンジンの間のリンクが機能しません。必要ないでしょ。


イベント時のパラメータ値のやり取りを有意義に行うためには、EAとエンジンが互いに2000文字までのデータを送信する必要があります。これはやりすぎではありません。でも、それも少なからず。


最も便利なハックは1番です。

この「最も使いやすいハック」で、「子供の熊手」、つまりユーザーに愛され、リロード時に使われるテンプレートを踏みにじることが可能になるのです。
 
fxsaber:
...


ZS 本当に行きたかったら

チャートコメントには、サイズに制限があります。それとも、そうなのか?なんとなく、偶然見つけたんです。

 

もうひとつ、真面目な質問です。

私自身は試していませんが、リソースを介した迅速なやりとりの有効性には疑問があります。

高速スワップ、-16ミリ秒を常時往復している。

ディスクに負荷がかからないか?

 
Maxim Kuznetsov:
この「最も便利なハック」を使えば、「子供じみた熊手」、つまり、ユーザーが非常に好み、リロード時に使用するテンプレートを踏むことができるのです。

説明してください。

ZS.特殊な名前を持つオブジェクトが通信に使用されます。ユーザーオブジェクトと重ならないようにするため。

理由: