mql4のローカル変数とグローバル変数のコーディングに関する問題
Results 1 to 10 of 10

Thread: mql4のローカル変数とグローバル変数のコーディングに関する問題

  1. #1
    2添付ファイルこんにちは、
    私はかなりmql4の新しいです。私はokをしていますが、最近私は問題に悩まされてしまいました。私はbuyorderのローカル変数を宣言するとうまくいく簡単なコードをコード化しました
    int buyorder = OrderSend(Symbol()、OP_BUY、LotSize、Ask、3,0,0、NULL、MagicNumber、0、Green);

    if(buyordergt; 0)
    OrderModify(buyorder、OrderOpenPrice()、bsl、btp、0、CLR_NONE);

    私がグローバル変数としてbuyorderを宣言して(そしてintを取り除く)、それはうまくいきません。無限に命令を修正し続けるだけです。私の人生にとって、グローバル変数がプログラムのどこでも使えるようにする必要があるのはどうしてこのようなことが起こるのか理解できず、価値が変わるはずです。私はローカル変数に固執することができましたが、複数の注文を行い、後続の停止などを使用するようにeaを拡張したいので、グローバル変数を使用する必要があります。私は以下のEAを含んでいます。最初のバージョン(ローカル変数)は動作し、2番目(グローバル)は動作しません。誰かが私を助けることができれば、それは私が文字通りそれを解決しようとしている日を費やしてきたのでとても感謝しています。 PSこれは変数sellorderにも当てはまります。
    ありがとう

    https://www.forexgroove.com/attachme...1727520325.mq4

    https://www.forexgroove.com/attachme...1081469781.mq4

  2. #2

    Quote Originally Posted by ;
    こんにちは、私はかなりmql4に新しいです。私はokをしていますが、最近私は問題に悩まされてしまいました。私の人生のために、私はなぜこれが理解できないのですか...
    コードのインデントを正しく行うことから始めます。書式設定は実際には貧弱です。
    https://en.wikipedia.org/wiki/Indent_styleすべてのif文/ブロックを中括弧{}で囲みます。次に、プログラムの1つで未定義/未初期化変数を使用していることがわかります。コンパイラは実際にそれを正常にコンパイルすべきではありません。または、その変数が他のバージョンで更新されていないこと。また、すべてのローカル変数を各関数の先頭に定義し、中括弧を使用してすべてのブロックを囲むことをお勧めします。おそらく何かが間違っていたということをコンパイラ経由でフィードバックしていたでしょう。 TLDR:不適切なコードの書式設定。中括弧なしのif文のネストインライン変数宣言不正なコードを承認するようにコンパイラを騙します。コードが期待どおりに実行されていません。

  3. #3
    ローカル変数を宣言すると、開始する{}が呼び出される1つのインスタンスでのみ使用できます。 start {}が実行されるたびに、変数を再宣言します。あなたのコードを見ると、buyorder変数は、開いている買い注文がないと呼び出され、新しい注文が開かれます。注文が存在する場合、buyorder変数はifステートメントによってバイパスされるため、宣言されず、注文変更ルーチンが呼び出されません。つまり、買い注文が呼び出されなかった場合、買い注文は未申告のままであり、ゼロまたはヌル値を有する。 0は偽です。したがって、注文の変更はありません。一方、グローバル変数を宣言すると、buyorderは値を保持するので、書かれたコードはbuyorder gtのように毎回変更を試みます。 0が真です。これがフレッドを助けることを願って

  4. #4
    ありがとうフレッド、ありがとうXaphod、このコーディングで間違いを起こしやすい!間違いなくコードを見やすくしようとします。あなたのご意見をもう一度お寄せください!

  5. #5

    Quote Originally Posted by ;
    感謝のフレッド、ありがとう、このコーディングで間違いを簡単にする!間違いなくコードを見やすくしようとします。あなたのご意見をもう一度お寄せください!
    OrderSendの後にOrderModifyを呼び出す必要があります。それでは、買い注文がローカルかグローバルかは関係ありません。ローカルが望ましい挿入されたコードint buyorder = 0; (BuyOrder = OrderSend(Symbol()、OP_BUY、LotSize、Ask、3,0,0、NULL、MagicNumber、0、Green){if(PreviousFastlt; PreviousSlow CurrentFastgt; CurrentSlow){if(OpenOrdersThisPair(Symbol())== 0) ); if(buyordergt; 0){OrderModify(buyorder、OrderOpenPrice()、bsl、btp、0、CLR_NONE); }}}

  6. #6

    Quote Originally Posted by ;
    グローバル変数がどこでも使えるようにする必要がある理由を理解できません
    それは正確な問題です。スコープ上の問題です。どちらの例でも、if(lt; lt; buyordersellordergt; gt; 0)文の範囲が間違っています。購入オーダー/売り注文の範囲が例とともに変化し、第2の例で悪影響が生じるという違いがある。適切なスコープについては、Xaphodのサンプルコードを参照してください。私が尋ねることができるなら、あなたはどの言語でコードを作成するのですか?

  7. #7

    Quote Originally Posted by ;
    {引用}それは正確な問題です。スコープ上の問題です。どちらの例でも、if(lt; lt; buyordersellordergt; gt; 0)文の範囲が間違っています。購入オーダー/売り注文の範囲が例とともに変化し、第2の例で悪影響が生じるという違いがある。適切なスコープについては、Xaphodのサンプルコードを参照してください。私が尋ねることができるなら、あなたはどの言語でコードを作成するのですか?
    こんにちは!実際に私はどのようにプログラムするのか分からず、私は多くを読んでいて、mql4の本を見ました。私が間違っていた上記の例から分かりますが、スコープの意味がわかりません。ありがとう!

  8. #8

    Quote Originally Posted by ;
    {引用}こんにちは!実際に私はどのようにプログラムするのか分からず、私は多くを読んでいて、mql4の本を見ました。私が間違っていた上記の例から分かりますが、スコープの意味がわかりません。ありがとう!
    スコープ/コンテキストを意味します:
    https://en.wikipedia.org/wiki/Scope_(computer_science)買い注文/売り注文をチェックするifステートメントは、他の(外側の)ifステートメントのコンテキスト(スコープ)に属するので、間違ったコンテキストに置かれました。

  9. #9
    こんにちは、グローバル変数とローカル変数の違いは、EA変数とインジケータ変数の間でデータを転送するために、グローバル変数を一度に複数の変数で使用できることです。私はあなたがこれが役に立つと思う

  10. #10

    Quote Originally Posted by ;
    こんにちは、グローバル変数とローカル変数の違いは、EA変数とインジケータ変数の間でデータを転送するために、グローバル変数を一度に複数の変数で使用できることです。私はあなたがこれが役に立つと思う
    この用語は残念なことであり、いくつかのことを混乱させる可能性があります。クライアント端末のグローバル変数を参照しています。以前の投稿は、宣言されているEAなどでのみ使用できるglobalscope変数を参照しています。

投稿権限

  • Youma新しいスレッドを投稿しない
  • Youmaは返信しない
  • あなたは添付ファイルを投稿しないかもしれない
  • Youma Notedityourposts
  •  
  • スマイリーはオンです
  • スマイリーはオンです
  • [IMG]コードがオンです
  • [VIDEO]コードがオンです
  • HTMLコードがオフです
This website uses cookies
We use cookies to store session information to facilitate remembering your login information, to allow you to save website preferences, to personalise content and ads, to provide social media features and to analyse our traffic. We also share information about your use of our site with our social media, advertising and analytics partners.