ライブラリ: イージーキャンバス - ページ 16

 

こんにちは、ニコライさん。

iCanvasを使用した複数のプログラムを1つのターミナルで使用 すると、ターミナルをリロードした後、画像が1つから別のものに自然に変わり始めるという問題がありました。最初、コードの中で原因を探したのですが、何も見つかりませんでした。そんなとき、あるクライアントが偶然、iCanvas のオブジェクト名が異なるチャートで一致していることに気づきました。

そこで、iCanvas のオブジェクト名がどのように生成されるかを調べてみたところ、次のようなことがわかりました:

Name+=IntegerToString(GetTickCount());

ターミナルにあるすべての Expert Advisor はロード時に同じ GetTickCount() 値を受け取るため、Expert Advisor の話をするのであれば、この方法でターミナルをロードすると、異なるチャートで同じオブジェクト名になります。インジケーターにはこのような問題はありません。

この問題を解決するために、一意のオブジェクト名を生成する方法を提案します:

   Name += IntegerToString(ChartID()) + IntegerToString(GetTickCount());

ここで、一意性は以下の考慮事項によって保証される:

  1. すべてのインジケータが同じチャート上で起動されたとしても、インジケータは異なるGetTickCount()値を取得します。したがって、この方法はそれらのために機能します。
  2. Expert Advisorは同じGetTickCount()値を得ますが、Expert Advisorは1つのチャートにしか存在できないため、そのオブジェクトはチャート識別子によって一意性を得ます。
 
Ihor Herasko 使用 すると、ターミナルをリロードした後、画像が1つから別のものに自然に変わり始めるのです。最初、コードの中で原因を探したのですが、何も見つかりませんでした。ところが、あるクライアントが偶然、iCanvas オブジェクトの名前が異なるチャートで一致していることに気づきました。

そこで、iCanvas のオブジェクト名がどのように生成されるかを調べてみたところ、次のようなことがわかりました:

エキスパート アドバイザーの場合、ターミナル内のすべてのエキスパート アドバイザーがロード時に同じ GetTickCount() 値を受け取るため、この方法でターミナルをロードすると、異なるチャートで同じオブジェクト名になります。インジケータにはこの問題はありません。

この問題を解決するために、一意のオブジェクト名を生成する方法を提案します:

ここで、一意性は以下の考慮事項によって保証されます:

  1. インジケータは、すべて同じチャート上で実行されたとしても、異なるGetTickCount()値を得る。したがって、このメソッドはそれらのために機能します。
  2. Expert Advisorは同じGetTickCount()値を得ますが、Expert Advisorは1つのチャートにしか存在できないため、そのオブジェクトはチャートIDによって一意性を得ます。


ありがとう、イゴール!
修正版をアップロードしました。

不思議ですね、そういう名前の成り立ちだと思っていました。:))

 
最終バージョン 1.49
ファイル:
iCanvas.mqh  58 kb
 
を1.49に更新
リソース名が長すぎたので短くした。
 

 Nikolai Semko #:
 обновил версию до 1.49
 укоротил имя ресурса, т.к. нарвался на слишком длинное имя

こんにちは!
iCanvas.mqh ファイル(MT5 バージョンへのリンク上)に「#property version "1.09"」があります...
最新の実バージョンはどこでダウンロードできますか?
また、MT4 用のバージョンについても質問です - ダウンロードしたアーカイブに「#property version "1.47"」というバージョンがあります
-MT4 用の最新バージョンですか?また、そうでない場合、実際の最新バージョンは どこでダウンロードできますか?

ありがとうございます。

 
Maksims Ignatovs #:

こんにちは!
iCanvas.mqh ファイル(MT5 バージョンへのリンク上)に「#property version "1.09"」があります...
最新の実バージョンはどこでダウンロードできますか?
また、MT4 用のバージョンについても質問です - ダウンロードしたアーカイブに「#property version "1.47"」というバージョンがあります
-MT4 用の最新バージョンですか?また、そうでない場合、実際の最新バージョンは どこでダウンロードできますか?

ありがとうございます。


zipファイルをダウンロードしているのでしょう。絶対にダウンロードしないでください。MQのバグです。
iCanvas.mqhファイル自体をクリックするか、ビューアから コピーしてください。



 
Nikolai Semko #:

はじめまして!
zipファイルをダウンロードしているのでしょう。絶対にダウンロードしないでください。これはMQのバグです。
iCanvas.mqhファイル自体をクリックするか、ビューアから コピーしてください。



ありがとうございました!
 


シェアしてくれてありがとう。
以前からこのようなツールを作ろうと考えていたんだ。

よくやった!
 
Guilherme Mendonca #:


シェアしてくれてありがとう。以前からこのようなツールを作ろうと考えていたんだ。よくやった!


ありがとう!
 
最新バージョン1.53
ファイル:
iCanvas.mqh  71 kb