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

 
fxsaber:

これによって何が変わるのでしょうか。

私が理解する限り、実行ファイルのハッシュは最適化のために使用されるため、変更することはできません

だから、私は提案するのです。

int Array[] = {123};

リンク可能なライブラリに置き、最適化実行後に再コンパイルする - 確認していませんが、mql ライブラリは実行時にリンクされます(リソースではありません)。

 
Igor Makanu:

私が理解している限りでは、実行ファイルのハッシュを変更することはできません。

問題を理解していない。

EAのEX5が変更された場合、異なるファイル名を生成する必要があります。

 
fxsaber:

課題を理解していない。

EAのEX5が変更された場合は、別のファイル名になるはずです。

ライブラリの変更を提案します。2つのライブラリが必要な場合は、それらを接続し、別の名前を使用してください

このような操作

link_library.mq5 :

#import "lib.ex5"
int value_array();
#import
//+------------------------------------------------------------------+
int OnInit()
  {
   Print("Array = ",value_array());
   return(INIT_SUCCEEDED);
  }

ライブラリ lib.mq5 :

int Array[] = {123};
 int value_array() export
   {
    return(Array[0]);
   }
MQLでは、ライブラリは本質的に実行ファイルとほとんど変わりません - 制限はありません、それはまた、ファイルに自分自身を書き込むことができ、...MQL - プログラムとしてすべてを可能にする
 
Igor Makanu:

ライブラリを変更することをお勧めします。2つのライブラリが必要な場合は、それらを接続し、異なる名前を使用してください

これが操作の方法です。

エキスパート link_library.mq5 :

lib.mq5 ライブラリ :

MQLでは、ライブラリは基本的に実行ファイルと大差なく、制限がなく、ファイルに自分自身を書き込むこともでき、...MQL - プログラムとしてすべてを可能にする

EAが変わったのなら-ファイル名を変更する、というタスクがよくわからない。

 
fxsaber:

EAが変わったなら-ファイル名を変更する、というタスクが明確でないのが理解できない。

この問題はまったく理解できない。
Expert Advisor 自体のソースファイルである .mq5 ファイルをリソースとしてインクルードし、そこからハッシュを取得します。

 
このトピックに関係のないコメントは、「MQL4に関する初心者の質問、アルゴリズムやコードに関するヘルプや議論」に移動しました。
 
Sergey Dzyublik:

この問題はまったく理解できない。
Expert Advisor 自体の .mq5 ファイルのソースをリソースとして含め、そこからハッシュを取得します。

そのため、有効化されたEX5へのアクセス(ハッシュを計算するためのバイト)は行われない。

 
fxsaber:

そのため、有効化されたEX5へのアクセス(ハッシュを計算するためのバイト)ができなくなる。

すべてがうまくいく。

#resource "\\Experts\\Advisors\\ExpertMACD.ex5" as uchar ex5_data[];


.mq5で追跡した方が良いコードの変更について話しているのであれば、ex5と何の関係があるのでしょうか?
最終的に何を目指しているのか、理解できていないように思えます。
 
Sergey Dzyublik:

.mq5で追跡した方が良いコード変更について話している場合、ex5と何の関係があるのでしょうか?

結局何がしたいのかわかっていないような気がします。

まあ書いたのは私ですが、これ以上詳しく書くのはどうなんでしょう?

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

バグ、バグ、質問

fxsaber, 2019.04.23 06:15

このEAを持っています。

void OnDeinit( const int )
{
  int Array[] = {123};
  
  FileSave((string)MQLInfoInteger(MQL_PROGRAM_HASH), Array);
}


パスを作ると、同じ名前のファイルが書き込まれる。これは正しい。


そして、123の代わりに456という数字を書いて再コンパイルします。

その後、各パスは対応するものと同じファイルを、異なる 名前で書き込みます。


そういう機能をどうにかして実装する必要があります。つまり、EX5が変更されると、作成するファイル名も変更されます。


SZY __DATETIME__ マクロを使用すると、動作しない。


Name1のファイルを作成するmq5があります。mq5で数値を変更した。Name2が生成されるはずです。コード内の別のもの、Name3 を変更します。といった具合に。

 
fxsaber:

さて、書いてみましたが、具体的にどうすればいいのでしょうか?


mq5があり、Name1のファイルが作成されます。mq5で数値を変更した。生成されるはずです Name2.コード内の別のもの、Name3 を変更します。といった具合に。

.mq5形式のソースコードをリソースとして接続し、ソースコードの内容からハッシュを読み取ります。
ソースコードを変更した場合、コンパイル時に自動的に新しいソースコードをリソースとして取り込み、新しいハッシュを計算します。
何がそんなに難しいのでしょうか?