端末のグローバルの問題

 

皆さん、こんにちは。

MTプログラミングに別れを告げようとするようなことが起きています。問題は、ターミナル・グローバルを設定しようとすることです。私がやっていることは、次のようなものです。

BuyEntrySignalGiven = Symbol() + "BuyEntrySignalGiven";
GlobalVariableSet(BuyEntrySignalGiven, (double) 1.0);

セットで4051エラーが出続けます。最初のパラメータは 文字列で、2番目のパラメータはdoubleであるべきです。なぜパラメータの型が無効であると主張し続けるのか、私には理解できません。どちらのパラメータも正しい型です。パラメータは正しいのに、なぜヒューズを鳴らしているのか理解できません。私はカスタム・ソフトウェア開発者であり、MTアプリケーションを自分の製品に加えるつもりでした。プラットフォームが信頼できないなら、私は手を出しません。信頼性のないプラットフォームには手を出しません。どなたか洞察力をお持ちの方がいらっしゃいましたら、ぜひ教えてください。

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

プロフ

 
GlobalVariableSet(BuyEntrySignalGiven, (double) 1.0);

double宣言を削除 する。GVはすでにdoubleなので、改めて宣言する必要はない。



BuyEntrySignalGiven = Symbol() + "BuyEntrySignalGiven";

そのコードも問題あり。時間があれば、誰かが指摘してくれるでしょう。

 
ProfessorMetal:

皆さん、こんにちは。

MTプログラミングに別れを告げようとするようなことが起きています。問題は、ターミナル・グローバルを設定しようとすることです。私がやっていることは、次のようなものです。

セットで4051エラーが出続けます。最初のパラメータは文字列で、2番目のパラメータはdoubleであるべきです。なぜパラメータの型が無効であると主張し続けるのか、私には理解できません。どちらのパラメータも正しい型です。パラメータは正しいのに、なぜヒューズを鳴らしているのか理解できません。私はカスタム・ソフトウェア開発者であり、MTアプリケーションを自分の製品に加えるつもりでした。プラットフォームが信頼できないなら、私は手を出しません。信頼性のないプラットフォームには手を出しません。どなたか洞察力をお持ちの方がいらっしゃいましたら、ぜひ教えてください。

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

プロフ

私はこのコードで問題を得ることはありません:

string BuyEntrySignalGiven = Symbol() + "BuyEntrySignalGiven";
GlobalVariableSet(BuyEntrySignalGiven, (double) 1.0);     
どのビルドを使用していますか?どのように問題を再現するのですか?
 
もっと古い作りなのではと思っています。
 

ダブルキャストはもともとなかったんです。エラーが出たので追加しました。第2パラメータは doubleのはずです。私のバックグラウンドはC++/C#なので、単に引数を1.0と入れれば十分だと思ったのです。キャストを追加したのは、呼び出しに失敗し、それがMQL4の何らかの特異性なのかどうか分からなかったからです。MQL4が常に期待されるルールに従っているわけではないことは、すでに見てきました。文字列の割り当てに関しては、私が書いた別のインジケータが同じフォーマットに従っており、完全に動作しています。そこでは何も問題があるとは思えません。Symbol()は文字列を返し、連結は文字列で、これは全く問題ありませんし、式が代入されている変数も文字列です。唯一問題になりそうなのは、ペアシンボルとGV名と同じ文字列を連結していることです。完成した」文字列はGV名と同じではないので、問題ないはずなのですが。もしかしたら、それが問題なのかもしれません。もしそうなら、なぜそう言わないのでしょうか?

とにかく、返信ありがとうございました。

プロフ

 

実際、MetaQuotesは、MQL4/5ではC++/C#のコーディングスタイルやルールは期待できないと言っていましたね。


ところで、あなたは司会者の質問に答えていませんね。

 

面白いですね、皆さん。私はBuild 646を実行しています。それが問題だとは思いません。ええと - 今わかったと思います。疲れてバカだったんだ。GVの名前はOnStart()から呼び出すはずのメソッドで設定されています。だぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁ頭の悪いアメリカ人をひっぱたいて、これ以上コードを書こうとする前に寝てしまえと言う。私は約36時間起きていました。あなた方のおかげで、一歩下がって自分がやっていることをもう一度見直す気になったのは確かです。ありがとう、そしておやすみなさい。)

教授

 
私は回答しましたよ、デイスマクロさん。私の返信が表示されるまでの時間を与えなかったのですね。言ったように、基本的には問題ないです。問題は、私の疲労による新人のミスです。ところで、MQL4/5のすべてのものがC++/C#と同じように動作するわけではないことは承知しています。しかし、MQL4/5の変更の意図の一つは、よりC++に近づけることであるという趣旨の記述を見たのを覚えています。ドキュメントはもう少し整理され、より徹底されたものであるべきでしょう。公平に見て、同じことがMicrosoftにも言えます。
 
実はとても簡単なことなんです。教えてもらったり、徹底したドキュメントを置いたりすれば、ある時点で、、、、、、、、、。
 

MetaQuotesがやっていることは、公平に見て、些細なことではありません。私は、独学で勉強するのが普通だと考えています。正直なところ、プロの開発者にとっては、それは当たり前のことです。それが当たり前なのです。ドキュメンテーションや他の開発者との交流は、通常、唯一の「教え」です。C'est la vie.:-)

MQL 4の新しいデバッギングをどのように動作させるか、まだ考えているところです。ドキュメントに書いてあるとおりにやってみたんだけど。デバッガーを起動しようとすると、H1ウィンドウとデバッグしようとしているインジケーターのプロパティダイアログが表示されました。ダイアログからOKを出すと、デバッガーはシャットダウンし、ウィンドウは消えてしまった。まあ、いいや。それは別のスレッドの話題だと思われます。

 
ProfessorMetal:

MetaQuotesがやっていることは、公平に見て、些細なことではありません。私は、独学で勉強するのが普通だと考えています。正直なところ、プロの開発者にとっては、それは当たり前のことです。それが当たり前なのです。ドキュメンテーションや他の開発者との交流は、通常、唯一の「教え」です。C'est la vie.:-)

MQL4の新しいデバッギングをどのように動作させるか、まだ考えているところです。ドキュメントに書いてあるとおりにやってみたんだけど。デバッガーを起動しようとすると、H1ウィンドウとデバッグしようとしているインジケーターのプロパティダイアログが表示されました。ダイアログからOKを出すと、デバッガーはシャットダウンし、ウィンドウは消えてしまった。まあ、いいや。それは別のスレッドの話題だと思われます。


入力ダイアログの入力項目以外のペインを選択すると回避できたという、長年のバグでした。そうすると、次の実行は成功しました。646では修正されたようです。残念ながら、このサイトには、このような情報はあまりありません。通常、ほとんどの問題は「サービスデスクに報告 する」で終わり、追加のトレースはありません。

理由: