//-------------- задаем значения индикатора Complex_Common по первому символу --------double Complex_1_1=iCustom(NULL,Tf,"Complex_Common_01mod",Period_low,Period_fast,m,0);
//---------------задаем значения индикатора Complex_Common по второму символу ------------ double Complex_1_2=iCustom(NULL,Tf,"Complex_Common_01mod",Period_low,Period_fast,n,0);
int wndNum; // Номер подокна индикатора /// И ЭТО ТОЖЕ НЕ ИСПОЛЬЗУЕТЕ ВИДИМО ОСТАЛОСЬ ОТ ПРЕДЫДУЩЕГО ПИСАТЕЛЯ
string wndName=????; // Наименование окна /// ЧТО ЭТО ?????// Удаляем графический объектvoid DeleteObject(string name) {
ObjectDelete(name+WindowExpertName());// Вы нашли окно предварительно?
}
// Рисуем меткуvoid object(string name, string _text, int fontsize, color color_, int value) {
string objName = name+WindowExpertName();
ObjectCreate(objName, OBJ_LABEL, WindowFind(WindowExpertName()), 0, 0);// То же самоеObjectSetText(objName, _text, fontsize, "Verdana", color_);
ObjectSet(objName, OBJPROP_CORNER, 1);
ObjectSet(objName, OBJPROP_XDISTANCE, 4);
ObjectSet(objName, OBJPROP_YDISTANCE, value);
}
abolk さん、わかりやすい説明ありがとうございました。
いくつかの機能を1つにまとめる必要があるようです。ロジックはどこでも同じ
-こんにちは。
昔のExpert Advisorでは、このポジションのオープンを使っていました(I.Kimの機能)。
今、私は別のEAを書いていて、このコードのビットをコピーしています。
で、いきなりコンパイルしようとすると、以下のようなメッセージが出ます。
なぜエラーが出るのかがわからない!コードのバランスは厳密です。
さらに!パラメータti(グローバル変数で宣言されている)を削除すると、コンパイルエラーは消えます。
しかし、その後のMessageBoxの 実行を実現するためには、まさにチケット(ti)が必要です。
今朝から解けません。どこが不正確なのか、アドバイスをお願いします。
なぜ突然、OpenPosition()の前にti=を 追加するとエラーが発生するのでしょうか?
OpenPosition()は void で宣言し、int とすること。
int OpenPosition(....){ .... }
インテージ さん、ありがとうございました。
はい、-まさにその通りです。今は修正し、すべて正常にコンパイルされるようになりました
午後
Expert Advisor が突然、明確な理由もなく、すべてのティックに印刷されるようになりました。
2012.01.11 22:28:19 Complex_Common_01mod EURCHF,H1:ObjectCreate 関数の 未知のサブウィンドウ番号 -1
コード内でカスタムインジケータを呼び出しています(図参照)。
エラーの発生箇所を教えていただけませんか?以前はなかったんですけどね。インジケータ部分には手をつけずに、コードを少し変更しました
そして、クリックするたびにジャーナルにこのメッセージが表示されるようになりました...。
ObjectCreate関数 - コード内で一切使用しない。
インテージ さん、ありがとうございました。
はい、-まさにその通りです。今は修正し、すべて正常にコンパイルされるようになりました
インジケータがそのウィンドウ名を検索しても見つからない。https://docs.mql4.com/ru/customind/IndicatorShortName を参照してください。
つまり、インジケーターの不具合であることが判明したわけですね。Expert Advisorに不具合はないのか?どうすればいいのかわからない?このインジケータのウィンドウを呼び出すことはEAのコードでは必要ありません
この不具合を修正する方法を、急ぎでなければ教えてください。(-ObjectCreate関数の未知のサブウィンドウ番号-1) ?
以下はインジケータコードです。
ウィンドウ名とオブジェクト名を結びつけず、オブジェクトにユニークな名前をつけてください。
ありがとうございます!わかったような気がします。これからウィンドウに名前をつけて探してみます。