しかし、標準的なコンストラクタを使用すると(つまり自分で作成しない、私のクラスは配列の動的メモリ割り当てを使用する)、「Array out of Range」エラーが発生します。これは、クラスの型変数を宣言した場合、つまりnew演算子を使用しない場合には発生しないものです。
//index_currency aud,cad; // работает
index_currency *aud,*cad; // не работаетintOnInit(){
aud = new index_currency; cad = new index_currency; // неправильно работает
aud.create(AUDX,100,PERIOD_M1,PRICE_CLOSE);
cad.create(CADX,100,PERIOD_M1,PRICE_CLOSE);
1 type Class declaration ... Constructor Name; {Overload;} ... end; 2 type Class declaration ... Constructor Name(Arguments); {Overload;} ... end; Ключевое слово Constructor определяет процедуру Name конструктора для класса. При создании объекта, вы вызываете метод Constructor класса, а не объекта...
こんにちは。こんな悩みがあるんです、簡単なことかもしれませんが、もう疲れました。
履歴でEAをテストしているのですが、このエラーが出続けています。
12:17:41 TIC: ロードに成功しました。
12:19:07 Test Generator: unmatched data error (2010.07.08 00:00 の安値 87.6580 は最下位のタイムフレームから到達していない、安値 87.6590 は不一致)
12:19:07 Test Generator: unmatched data error (volume limit 6029 at 2010.08.30 12:00 exceeded).
12:19:09 Test Generator: unmatched data error (2010.10.12 16:00 の高値 81.8880 が最下位のタイムフレームから到達していない、高値 81.8470 がミスマッチ)
12:19:09 Test Generator: unmatched data error (2010.10.12 16:00 の安値 81.6610 は最安値タイムフレームから到達していない、安値 81.7620 は不一致)
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
低音量、高音量、どの値を変えればいいのかわからない。
MiniLotSizeを0.1、1、0.01に変更し、MaxLotSizeも変更して0にしました(ブローカー設定)が、まだ取引されません。
完全な失敗作・・・。 どのような値を変更すればよいのかわかりません... 助けてください。 本当にありがたいのですが...。
こんにちは。こんな悩みがあるんです、簡単なことかもしれませんが、もう疲れました。
履歴でEAをテストしているのですが、このエラーが出続けています。
12:17:41 TIC: ロードに成功しました。
12:19:07 Test Generator: unmatched data error (2010.07.08 00:00 の安値 87.6580 は最下位のタイムフレームから到達していない、安値 87.6590 は不一致)
12:19:07 Test Generator: unmatched data error (volume limit 6029 at 2010.08.30 12:00 exceeded).
12:19:09 Test Generator: unmatched data error (2010.10.12 16:00 の高値 81.8880 が最下位のタイムフレームから到達していない、高値 81.8470 がミスマッチ)
12:19:09 Test Generator: unmatched data error (2010.10.12 16:00 の安値 81.6610 は最安値タイムフレームから到達していない、安値 81.7620 は不一致)
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
低音量、高音量、どの値を変えればいいのかわからない。
MiniLotSizeを0.1、1、0.01に変更し、MaxLotSizeも変更して0にしました(ブローカー設定)が、まだ取引されません。
完全な失敗作・・・。どのような値を変更すればよいのかわかりません... 助けてください。本当にありがたいのですが...。
これらのメッセージは、異なる時間軸のヒストリカルデータの不整合を示唆しています。取引設定は関係ありません。すべてのデータを手動で再ダウンロードしてください。
PS この質問はMT4に関するものであり、MQL5に関するものではありません。
ChartIndicatorAdd() 関数でチャートにインジケータを 追加しています。さて、どの関数を使えばチャートから削除できるのかがわかりません。
クラスのコンストラクタを呼び出すときにパラメータを渡すつもりですか? クラスで動的配列を扱うのは問題です。
アクセス指定子 private は、継承する際に、public を指定した親のメソッドを隠さない。
ZS:ヘルプを修正する - 例「MQL5リファレンス / 言語の基礎 / オブジェクト指向プログラミング / 継承」。
以下
{がコンパイルされない
開発者の皆様へ。
PositionTotal()とOrdersTotal()は、初期化ブロックにおいて正しく動作しないことが判明しました(少なくとも私の意見では正しくありません)。
何が問題なのか。
取引口座変更後に初期化を行った場合、_UninitReason = 6(REASON_ACCOUNT)となり、これらの関数は0を返します。
役職や命令は実際に存在するものの
追記
口座変更時に取引できるようにし、エキスパートの初回起動時にある程度コントロールできるようにしています。
したがって、Expert Advisorは、これが新しいアカウントでの最初の開始であることを認識しますが、初期化ブロックにポジションと注文が存在するかどうかを判断することはできません。
少なくとも、ティック処理のブロックではすべて正常に動作し、これらの関数はポジションと注文の数に関する実際のデータを返します。
動作しているようですが、たまにどころか、不思議と動作しています。うまくいくときもあれば、そうでないときもある......。ピーピーエス
何秒寝ると治るというのは理解できたが、今度は何秒か調べなければならない...。ZS:ヘルプを修正する - 例" MQL5リファレンス/ 言語の基礎 / オブジェクト指向プログラミング / 継承 "
以下
{はコンパイルされません。
ご投稿ありがとうございます、修正いたしました。
前回の記事で説明しきれなかったかもしれませんが、クラスのコンストラクタを 操作する場合、通常は次のようになります。
http://www.delphisources.ru/pages/faq/faq_delphi_basics/Constructor.p hp.html、http://ru.wikipedia.org/wiki/Конструктор_(プログラミング)
MQL5 Reference / Language Fundamentals / Data Types / Structures and Classes )という制約があり、不愉快な思いをしています。
"コンストラクタは戻り値の型がありません(void型は指定できます)。MQL5では、コンストラクターは入力パラメーターを持ちません。したがって、各クラスはコンストラクタを1つだけ持つことができます。"
しかし、標準的なコンストラクタを使用すると(つまり自分で作成しない、私のクラスは配列の動的メモリ割り当てを使用する)、「Array out of Range」エラーが発生します。これは、クラスの型変数を宣言した場合、つまりnew演算子を使用しない場合には発生しないものです。
クラスインスタンスへのポインタを 1 つだけ使用してもエラーにはなりませんが、 * : index_currency aud,cad を使わずに宣言するとエラーになります。
しかし、標準的なコンストラクタを使用すると (つまり、独自に作成するのではなく、私のクラスでは配列の動的メモリ割り当てを行っています)、「Array out of Range」エラーが発生します。このエラーは、クラス型の変数を宣言した場合、つまり new 演算子を使用しない場合は発生しません。
クラスインスタンスへのポインタが 1つ ならエラーなし、2つ以上ならエラー、*: index_currency aud,cad を省略して宣言してもエラーなし。