エラー、バグ、質問 - ページ 341

 
Urain:

すでに稼働しているインジケーターに前処理したデータを送りたいというニーズがある。私は、グローバルなデータストレージとしてグラフオブジェクトテキストを使うことにしました。グラフィカルなオブジェクトの目的が違うことは理解しているので、もし代替案があれば教えてほしいです。

しかし、ここで私は、もうひとつの言語の限界に直面しました。文字列自体はほぼ無限の文字数をサポートしています。まあ、おそらく、アレイ全般を制限しているあたりに限界があるのでしょう。また、グラフィカルオブジェクトのパラメータとして渡される文字列は63文字に制限されています。その結果、配列を文字列として渡すと、グラフィカルなオブジェクトが山ほど必要になる(そうだ、暗号化を使っていることを言い忘れた、だから文字列の情報は元の型とほぼ同じ容量を要するのだ)。現在63文字で、1つのオブジェクトに渡すことができるのは、時間と価格のペアが15個だけです。

そこで質問ですが、将来、グラフィックオブジェクトのテキスト長の制限がなくなるか、インジケータスレッドにデータを渡す仕組みができることを期待してもいいでしょうか?

カスタムイベントを生成 する際に、同じ問題に出くわしました。文字列全体ではなく、63個の記号の制限があるのですが...。

スライスからメッセージを糊付けするために、別のクラスを書かなければならなかった......。の作品です )))

Документация по MQL5: Работа с событиями / EventChartCustom
Документация по MQL5: Работа с событиями / EventChartCustom
  • www.mql5.com
Работа с событиями / EventChartCustom - Документация по MQL5
 
AlexSTAL:

カスタムイベントを生成 する際に同じ問題に出くわしました。文字列全体ではなく、同じ63文字という制限があるのですが...。

スライスからメッセージを糊付けするために、別のクラスを書かなければならなかった......。の作品です )))

そうですね、特に制限がなければ、イベントを使ってデータ配列を送ることもできます。
 
Urain:
はい、制約がなければ、イベントを使ってデータの配列を送ることもできます。

イベントでオブジェクトのハンドルを渡してみても、まだダメなんです。そして、そのオブジェクトには、必要なデータがすべて含まれています。

今、関係することであれば、試してみて、後で報告してください。

// ターミナル内部で制御可能なシェアードフィケーションのシェアードメモリがあると良いですね。少なくとも、オブジェクトと配列の場合のみ。

// そして、そのようなオブジェクトを宣言するとき、shared修飾子がそのようなメモリへの配置を決定することになる。

 
MetaDriver:

オブジェクトのハンドルをイベントで渡そうとすると、まだうまくいきません。そして、そのオブジェクトには、必要なデータがすべて含まれています。

今、関係することであれば、試してみて、後で報告してください。

ハンドル値は正しく渡されるが、必要なスレッドにそのようなハンドルがない。したがって、この値は必要なハンドルを指していない。
 
MetaDriver:

// ターミナル内に制御可能なフィケーションの共有メモリがあれば、とても魅力的です。少なくとも、オブジェクトと配列の場合のみ。

// そして、そのようなオブジェクトを宣言するとき、shared修飾子がそのようなメモリ内の場所を定義することになる。

全スレッドで利用可能なグローバルターミナルメモリのようなもの。
 
Urain:
すべてのスレッドで利用可能な、ある種のグローバルな端末メモリ?
うんうん。
 
Urain:
ハンドル値は正しく渡されるが、目的のスレッドにそのようなハンドルがない。したがって、この値はもはや正しいハンドルを指していない。
可哀想に。
 
ここから420ビルドをダウンロードしましたhttps://www.mql5.com/ru/forum/23/page11 しかし、実際には412がインストールされます。私の問題なのか、それともmetaquotes.netの ファイルを変更するのを忘れたのか?
Список изменений в билдах MetaTrader 5 Client Terminal
Список изменений в билдах MetaTrader 5 Client Terminal
  • www.mql5.com
Автоматическое обновление доступно через систему LiveUpdate:.
 
Urain:
全スレッドで利用可能なグローバル端末メモリみたいなもの?

MQの最もシンプルな解決策は、関数にパラメータを与えることです。

void OnChartEvent(const int id,const long &lparam[],const double &dparam[],const string &sparam[])

変数ではなく、配列がパラメータとして存在するようになりました。もちろん、EA間のデータ転送はできないままなので、この解決策は一方的なものですが、それでも何もしないよりはましでしょう。

 
Urain:

1.MQの最もシンプルな解決策は、現在パラメータとして存在する変数の代わりに、データの配列を関数のパラメータとして与えることです。

2.もちろん、EA間のデータ転送はできないので、この解決策は一方的なものですが、それでもないよりはましです。

1.そうですね、たぶん。

2.なぜできないのでしょうか?自分でコピーして、手に入れる。そして、転送する必要があるものは、次のメッセージで転送します。