В данном режиме происходит полный перебор всех возможных комбинаций значений входных переменных, выбранных для оптимизации на соответствующей вкладке. Быстрая (генетический алгоритм) В основу данного типа оптимизации заложен генетический алгоритм подбора наилучших значений входных параметров. Данный тип оптимизации значительно быстрее полного...
// Пример передачи/обмена данных между программами через поле комментария чартов#include <fxsaber\HistoryTicks\Data_String.mqh> // https://www.mql5.com/ru/code/20298voidOnStart()
{
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さんへ。
どんな データでもリソースを介してやり取りできることは知っています。
しかし、まず文字 列に変換し、さらにStringToChar()でuintに変換し、リソースに保存する必要があります。そして、そのためのコードはもっとシンプルなものです。
しかし、この方法は、同じ文字列をオブジェクト記述で 転送するよりも遅い ことが証明 されました。
私の反対者は文字列型を軽蔑し、ユニオンを使ってすべてのデータを一度にuintに転送 する神話的な方法を使うと言っています。
さらに、文字列もユニオンを通してuintに変換する必要があります。
また、StringToChar()があるのに、なぜ文字列をユニオンでuintに変換しなければならないのでしょうか?
内部的には、EA、インジケータ、スクリプト間のデータ交換のためのGlobalVariablesとファイルだけが存在します。
上記4項目は、いずれも魚が欲しいがためのローカルな "ハコ "です。これら4点は、いずれも任意のデータ、ましてやデータの配列のやり取りを想定していない仕組みを使っています。
п1.100%では、インターフェイススレッドが一時的にロックされ(そう、オブジェクトはそこに存在し、その「説明」も存在する)、オプティマイザでは機能しません。オブジェクト記述は、人間が読めるようにオブジェクトを記述するためのものである。
p2. n2. はテスターやオプティマイザーでは動作せず、イベントを通知する役割を果たします。
P3.P4.リソース(名前付きでも)は長期保存を目的としており、すぐに交換するためのものではありません。テスター/オプティマイザーでの使い勝手については、何とも言えません :-)リードオンリーリソースを使用している
は、曲線解の速度について話す意味がありません。
ps/ ところで、ファイル、より正確にはパイプを使用することができます。
あなたはすべてを正しく書いています。
でも、"ハック "は私たちのすべてです(笑)。
テスターで、最適化モードでは、Expert Advisorとエンジンの接続がうまくいきません。その必要はないのです。
イベント時のパラメータ値のやり取りを有意義に行うためには、EAとエンジンが互いに2000文字までのデータを送信する必要がある。これはあまりないですね。でも、そうでもないんですよ。
最も便利なハックは1番です。
相手はstring型を蔑ろにして、unionでuintに全データを一度に転送 する神話的な方法を使うという話をしているのです。
さらに、文字列もユニオンを介してuintに変換する必要があります。
上記のコードでは、一度に複数の型(文字列だけでなく、文字列の配列も含む)をuintに変換して戻しています。
しかし、この議論では役に立たないと思います。
SZY どうしても文字列を使いたい場合。
トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム
ライブラリ:HistoryTicks
fxsaber さん 2018.12.04 09:11
上記は、複数の型(文字列だけでなく、文字列の配列も含む)を一度にuintに変換し、元に戻すコード です。
しかし、この議論では役に立たないと思います。
では、文字列の配列をユニオンを通してuintに変換することができるのですね。
また、StringToChar() 経由よりも速いのでしょうか?
できれば、小さくて簡単な例を挙げてください。あなたのコードがわかりません。
では、文字列の配列をユニオンを介してuintに変換することができるのですか?
また、StringToChar() よりも速いのでしょうか?
できれば、小さくて簡単な例を挙げてください。あなたのコードがわかりません。
その例は、こちらの スレッドにありました。
再現するためには、サンプルコードで参照されているライブラリにリンクする必要があります。
...
ZS 本当に行きたかったら
コメントサイズの上限は?
ちゃんと書いてあるじゃないですか。
でも、「ハック」は私たちのすべてです))。
テスターで、最適化モードでは、Expert Advisorとエンジンの間のリンクが機能しません。必要ないでしょ。
イベント時のパラメータ値のやり取りを有意義に行うためには、EAとエンジンが互いに2000文字までのデータを送信する必要があります。これはやりすぎではありません。でも、それも少なからず。
最も便利なハックは1番です。
...
ZS 本当に行きたかったら
チャートコメントには、サイズに制限があります。それとも、そうなのか?なんとなく、偶然見つけたんです。
もうひとつ、真面目な質問です。
私自身は試していませんが、リソースを介した迅速なやりとりの有効性には疑問があります。
高速スワップ、-16ミリ秒を常時往復している。
ディスクに負荷がかからないか?
この「最も便利なハック」を使えば、「子供じみた熊手」、つまり、ユーザーが非常に好み、リロード時に使用するテンプレートを踏むことができるのです。
説明してください。
ZS.特殊な名前を持つオブジェクトが通信に使用されます。ユーザーオブジェクトと重ならないようにするため。