// Пример обмена любыми данными (включая строковые массивы).#include <fxsaber\TradeTransactions\ResourceData.mqh> // https://www.mql5.com/ru/code/22166#define PRINT(A) Print(#A + " = " + (string)(A));
voidOnStart()
{
// Произвольные данные для примераstring Str[] = {"123", "Hello World!"};
double Num = 5;
MqlTick Tick = {0};
Tick.bid = 1.23456;
const RESOURCEDATA<uint> Resource; // Ресурс для обмена данными
CONTAINER<uint> Container; // Создаем контейнер - все будет храниться в массиве простого типа (в примере выбран uint)// Заполняем контейнер разными данными
Container[0] = Str;
Container[1] = Num;
Container[2] = Tick;
// Распечатаем типы хранимых в контейнере данныхfor (int i = 0; i < Container.GetAmount(); i++)
PRINT(Container[i].GetType())
Resource = Container.Data; // Отправили данные на обмен
CONTAINER<uint> Container2; // Сюда будем получать данные
Resource.Get(Container2.Data); // Получили данные// Получим данные в исходном видеstring Str2[];
Container[0].Get(Str2); // Получили массивArrayPrint(Str2);
PRINT(Container[1].Get<double>()) // Получили число
PRINT(Container[2].Get<MqlTick>().bid) // Получили структуру
}
個人的には、ユニオン経由でリソースを利用しています。
そのあたりを詳しく教えてください。ありがとうございます。
そのあたりを詳しく教えてください。ありがとうございます。
今度、QBに書いておきますね。
実は、そのための授業がここにある。
そして、インジケータに2行を追加するだけです:
今度、QBに書いておきますね。
実は、そのための授業がここにある。
そして、インジケータでは、次の2行を追加するだけです:
ありがとうございます、すべて的を得ています。
実は、そのための授業がここにある。
一見すると、T[]<->uint[]変換の実装は最適とは言えません。
は、ずいぶん前にこのコードを書きました。そうかもしれませんね。
しかし、そこで最適化することはあまりありません。小さなことでしかないのかもしれません。
とにかく、このクラスは、私の最新の無料製品で試すことができます。
より良い実装をご提案いただければ幸いです。
より良い実装をご提案いただければ幸いです。
トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム
ライブラリ:TradeTransactions
fxsaber, 2019.03.15 07:36
別のタイムフレームに移動する際に、インジケータ内のグローバル変数、構造体、オブジェクトをどのように転送するのですか?ググっても見つからず。
トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム
ライブラリ:TradeTransactions
fxsaber さん 2018.12.17 23:48
リソースを通じて、あらゆるものを取引することができます。
残念ながら、素っ気ないです。あなたの聖書には入りません。
私はすでにあなたのコードを調べようとして、自分の未熟さに気づきました。:))
とにかく、すべてのインルーターを開けば、ソースコードも実行形式も長くなります。
また、私があなたのリブを使用したときに、その後、彼らは引き裂かれるまで、長い時間のためのブレーキのソースを発見し、数回焼けました。その後、私はあきらめました。
多くのインクルードで構成されるコードを使用する際の主な問題は、各ステップで新しいクラス、定義、マクロを使用する際のデバッグが非常に複雑になることです。
そして、私はテストのための時間を惜しみません。なぜなら、私のアルゴリズムを大幅にスピードアップすることはほとんど不可能だと理解しているからです。
今私が見ている唯一のバグは、いくつかの場所でCopyArrayの代わりにloopを使用していることです。この修正後、私のコードはパフォーマンスと可読性の点でほぼ完璧なものになります。
今見えている唯一のバグは、CopyArrayの代わりに、ところどころでループを使っていることです。この修正後、私のコードはパフォーマンスと 可読性の点でほぼ完璧な ものになります。
性能測定を書けば、比較できて面白いかもしれませんね。
:)
誰も「松葉杖」「車輪の再発明」「別端末へのデータ転送の困難さ」「MQL手段で解決しなければならない」...などと書かないのが不思議です。
メタクオーツに基づく解決策は松葉杖とモウベツなトンであることが判明した)