グローバル初期化に失敗した!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - ページ 3

 

ヒントをありがとうございました

646から変なことが続いていて、誰も助けてくれないようです

1.ラベルが、XDISTANCEとYDISTANCEに従わないかのように、線から外れてしまいます。

Tfを前後させただけで、元に戻る。

チャートウィンドウを切り替えたり、パラメータの 入力を変更すると、線から外れてしまいます。

2.2. 古いインディが MT4 をクラッシュさせる。

3.3.MT4を起動すると、最初はアカウントにログインするが、しばらくするとログアウトしてしまい、再度ログインしなければならない。

4.4. OrderClose()を使ったスクリプトやEAが動作しない、注文を閉じない。

OrderModify()は問題なく動作します。

MetaQuotesに何とかしてもらうためには、どうしたらいいのでしょうか?

結局のところ、MT4は取引プラットフォームであり、したがって、深刻なツールであり、おもちゃではありません!

それと、もう一つ。

例えば、私はいくつかの計算に基づいて、インディで長方形を作成しています。

計算はstart()の中にあります。

それでも、MT4を起動した後、ティック上でさえ、私の矩形は見えません。

しかし、indiを再初期化したり、Tfを切り替えたりすると、そこに表示されるのです。

さて、このようなことは以前にはなかったことです。

 
Dadas:

ヒントをありがとうございました

646から変なことが続いていて、誰も助けてくれないようです

1.ラベルが、XDISTANCEとYDISTANCEに従わないかのように、線から外れてしまいます。

Tfを前後させただけで、元に戻る。

チャートウィンドウを切り替えたり、パラメータの入力を変更すると、線から外れてしまいます。

ということは、あなたのコードで修正することができます

2. 2. 古いインディが MT4 をクラッシュさせる。

新しい世界にコードを適応させる必要があります。(B600 >)例えば、「ゼロ除算」は重大なエラーであり、インジケータを消します(B600以前はそうではありませんでした)。

3.3.MT4を起動すると、最初はアカウントにログインするが、しばらくするとログアウトしてしまい、再度ログインしなければならない。

開いているチャートをすべて閉じ、ターミナルを空白にして(チャートを開かずに)ターミナルを再起動し、問題が続くようであれば、サービスデスクに報告してください。

4.4. OrderClose()を使ったスクリプトやEAが動作しない、注文を閉じない。

問題はあなたのコードにあると思いますので、関連するコードを見せていただければ、誰かが助けてくれるでしょう。

OrderModify()は問題なく動作します。

MetaQuotesに何とかしてもらうためにはどうしたらいいのでしょうか?

結局のところ、MT4は取引プラットフォームであり、したがって、深刻なツールであり、おもちゃではありません!

つまり、当時はエラーがあり、インジケータやEAが動作しなくなることはなかったが、現在では重要なエラーであり、修正する必要があるのです。

 

ダダスです。

私は同じ開発者ですが、あなたの質問にすべて答えることはできません。私自身、商業的に利用する予定のアプリで、いくつかのPITA問題に対処しています。ひとつは、少なくともinitとdeinitの関数を 新しいOnInit()とOnDeInit()関数に置き換えることを強くお勧めします。また、startをOnStart()に置き換えるのもいいかもしれません。ドキュメントによると、この実装は後方互換性があるとされていますが、私の経験では、そうではありません。私のインディーでは、deinit()が呼び出されないという状況がありました。私のdeinit()はオブジェクトを削除しており、オブジェクトがまだ存在するため、再初期化に失敗していました。私は今でもOnStart()ではなくstart()を使っていますが、その賢明さはよくわかりません。私は、この先トラブルを招く予感がするのです。もし、あなたが私の提案を試したら、どうなるか教えてください。私たち開発者は、団結する必要があります。)

 
Dadas:

あ、あともうひとつ。

例えば、ある計算に基づいてインディを持つ矩形を作成するとします。

計算はstart()の中にあります。

それでも、MT4を起動すると、ティック上でさえ、私の矩形は見えません。

しかし、indiを再初期化したり、Tfを切り替えたりすると、そこに表示されるのです。

さて、このようなことは以前にはなかったことです。


上に書いたように、この先には新しい世界が待っています。
OnTick(EA)やOnCalculate(インジケータ)を使い始めてはいかがでしょうか?
 
qjol:

上に書いたように、新しい世界が目の前にある。
OnTickを使い始めないのか?


MetaQuotesがリリースしているプラットフォームは、ProfessorMetalが 言うように、後方互換 性があるはずなんです。

すでにある何千ものインジケータ、スクリプト、EAをすべて書き換えることができる人はいないと思います。

私のコードが間違っているという指摘に関しては、私は同意しません。

ラベルオブジェクトを作成し、何かを計算し、それに応じてオブジェクトを設定するというもので、何もありません。

特別な思想があるわけではありません。

  ObjectSet    ("Lot_Size_Label",OBJPROP_CORNER,Corner);

  ObjectSet    ("Lot_Size_Label",OBJPROP_XDISTANCE,XDistance);
  ObjectSet    ("Lot_Size_Label",OBJPROP_YDISTANCE,YDistance);
  ObjectSetText("Lot_Size_Label",comment,Font_Size,Font_Type,Font_Color);
  ObjectSet    ("Lot_Size_Label",OBJPROP_SELECTABLE,false); 

オーダークローズスクリプトやEAについては、以前のBuilds(500)で問題なく動作していたものについての話です。

ですから、それは私のコードが正しいかどうかの問題ではありません。

MetaQuotesがおかしくしているのです。

ProfessorMetalさんのヒントを試してみますそれでも、コーディングのことを知らないユーザーはどう するのでしょうか?

はっきり言って、コーディングの知識なんてないはずです。

彼らは、取引プラットフォームを使用することになっています!

 
ProfessorMetal:

ダダスです。

私は同じ開発者ですが、あなたの質問にすべて答えることはできません。私自身、商業的に利用する予定のアプリで、いくつかのPITA問題に対処しています。ひとつは、少なくともinitとdeinitの関数を新しいOnInit()とOnDeInit()関数に置き換えることを強くお勧めします。また、startをOnStart()に置き換えるのもいいかもしれません。ドキュメントによると、この実装は後方互換性があるとされていますが、私の経験では、そうではありません。私のインディーでは、deinit()が呼び出されないという状況がありました。私のdeinit()はオブジェクトを削除し、オブジェクトがまだ存在するため、再初期化に失敗しました。私は今でもOnStart()ではなくstart()を使っていますが、その賢明さはよくわかりません。 私は、この先トラブルを招く予感がするのです。もし、あなたが私の提案を試したら、どうなるか教えてください。私たち開発者は団結する必要があります。)


ありがとうございます、deinit時にオブジェクトが削除されないのは私も同じでした。

私はいくつかのインディを開発していて、これらの奇妙な結果を得ました。

おそらく最もシンプルな方法で、start()の中でObjectDelete()することで回避しました。

init()をOnInit()に、deinit()をOnDeinit()に変更したら、ラベルが正しく表示されるようになりました!ありがとうございます!

その後、しばらくすると、そうじゃなくなった!!!まだ同じ踊りをしてる。

 

最もシンプルなコードであれば、それを実装するかどうかは、実装されるコードに依存します。重要なポイントでエラーチェックを 行い、エラーが発生したときにindi/eaが正しく処理できるようにする必要があります。私も前回問題が発生しましたが、エラーハンドラを入れたら、前回の問題を忘れるくらいスムーズに動くようになりました。


still, what about the users who don't know a thing about coding???

And, frankly speaking, they aren't even supposed to know anything coding!

They are supposed to be using the trading platform!!!

このプラットフォームはメタトレーダー であり、基本的なニーズはすべて備えています。

 

ラベルを揃えるのに何が役に立ったか分かりますか?

私のX,Y座標はエクスターナルから取得したものです。

extern int XDISTANCE =9;
extern int YDISTANCE =9;

すると

int X,Y;

int OnInit()
  {
 X = XDISTANCE;
 Y = YDISTANCE;
 ObjectCreate("INSTR",OBJ_LABEL,0,0,0); 
 
    return(0);
  }

int start() {
        ObjectSet("INSTR",OBJPROP_CORNER,Corner);
        ObjectSetText("INSTR",Symbol_Period+Date_Time,FontSize, "Berlin Sans FB", Color);
        ObjectSet("INSTR", OBJPROP_XDISTANCE, X);
        ObjectSet("INSTR", OBJPROP_YDISTANCE, Y); 
        ObjectSet("INSTR", OBJPROP_SELECTABLE, false);   
   return(0);
  }

こうすると、正しくなるんだ。

というか、正確にではなく、より良いものを作ることができます。

 
deysmacro:

もしコードが最もシンプルなものであれば、それを実装することは、実装されるコードに本当に依存します。


プラットフォームはメタトレーダー であり、すべての基本的なニーズが付属しており、誰もあなたにコードを強制することはありません。


あなたのコメントが誰かの役に立つわけがないでしょう?
 
int X,Y;

int OnInit()
  {
 X = XDISTANCE;
 Y = YDISTANCE;
 ObjectCreate("INSTR",OBJ_LABEL,0,0,0); 
 
    return(0);
  }

int start() {
        ObjectSet("INSTR",OBJPROP_CORNER,Corner);
        ObjectSetText("INSTR",Symbol_Period+Date_Time,FontSize, "Berlin Sans FB", Color);
        ObjectSet("INSTR", OBJPROP_XDISTANCE, X);
        ObjectSet("INSTR", OBJPROP_YDISTANCE, Y); 
        ObjectSet("INSTR", OBJPROP_SELECTABLE, false);   
   return(0);
  }

オブジェクトが すでに存在するかどうかを確認するためのオブジェクト検索 関数は置いて いない。そこから、そのオブジェクトを作成するのです。


How's your comment supposed to help anybody??? 

私は今、あなたを助けています。