問題タブ [mql5]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
class - クラスから関数値を読み取る方法は?
CheckPatternAllBullish()
クラス内 の関数の値を読み取る方法はCCandlePattern
?
中で読みたいvoid OnTick(){...}
エラー: 'candlepatterns.mqh' の無効なポインター アクセス (60,64)
60 行目は次のとおりです。
コードは次のとおりです。
ファイルcandlepatterns.mqh
:
エラー: 「candlepatterns.mqh」の無効なポインター アクセス (162,20)
struct - 複雑な構造が存在しないにもかかわらず、構造にオブジェクトがあり、コピーできない
次の MQL コードがあります。
ただし、MetaTrader プラットフォームは、次のエラーのためにファイルをコンパイルしません:
'=' - 構造体にはオブジェクトがあり、コピーできません TestTrade.mqh 17 21
MetaEditor 5.00 ビルド 1601 (2017 年 5 月) を使用しています。
この同様の質問を確認しましたが、構造体には文字列などの複雑なオブジェクトが含まれていません。提案は、私が実際に使用している構造体の代わりにポインターを使用することです。私の目標は、上記のように構造体引数を持つクラス コンストラクターを持つことです。
上記の構造体定義の何が問題で、どのように修正できますか?
pointers - MQL でクラスへの静的ポインターを定義する方法は?
次の MQL コードがあります。
これは、関数の経過時間をプロファイルするタイマーとして使用される Timer クラスを定義します。元のバージョンでは、タイマーのリストを使用して呼び出しごとに別々に時間を保存しますが、コードは単純化され、最小限の作業例を提供し、実際のコンパイルの問題に焦点を当てています。
問題は、静的変数を初期化するために次の行を使用しているときです。
コンパイルは次のように失敗します:
「Timer」 - ローカル変数は使用できません TestProfiler.mqh 30 30
単語をドロップするstatic
と、コードは正常にコンパイルされます。
しかし、同じ関数が何度も何度も呼び出されるたびにオブジェクトを破棄したくないため、この変数をクラスへの静的ポインターとして定義したいので、私には役に立ちません。後で読むことができるリストに追加されます。MQL コンパイラが上記のコードのコンパイルを妨げる理由がよくわかりません。また、この構文は以前のビルドでも問題なく機能していたと思います。
MetaEditor 5.00 ビルド 1601 (2017 年 5 月) を使用しています。
静的変数宣言の何が問題なのですか? また、Timer クラスを指すように修正するにはどうすればよいですか?