"ダミー "からの質問 - ページ 7 1234567891011121314...277 新しいコメント Victor Kirillin 2011.06.01 13:30 #61 kPVT:私は、イベントに対応するために、専門家を持っています。アクションに対応しないイベントが発生する。チャート上のクリックとボタンのクリックに正確に対応する物議を醸すイベント id=9(CHARTEVENT_CUSTOM) は、例えば チャートが移動し、同様のイベントが10個程度発生したときに生成さ れるものです。CHARTEVENT_OBJECT_ENDEDIT イベントがチェックされていない。 残りはすべて不明です。説明文とイベント番号が一致しないか、手動でオブジェクトを作成したときに、オブジェクトの作成イベントが誤って生成される。すべてにおいて、助けてください。こうすればいいんじゃない?//+------------------------------------------------------------------+ //| Expert chart event function | //+------------------------------------------------------------------+ void OnChartEvent(const int id, // идентификатор события const long& lparam, // параметр события типа long const double& dparam, // параметр события типа double const string& sparam) // параметр события типа string { string str_id=""; switch(id) { case CHARTEVENT_KEYDOWN: str_id="KEYDOWN"; break; case CHARTEVENT_OBJECT_CREATE: str_id="OBJECT_CREATE"; break; case CHARTEVENT_OBJECT_CHANGE: str_id="OBJECT_CHANGE"; break; case CHARTEVENT_OBJECT_DELETE: str_id="OBJECT_DELETE"; break; case CHARTEVENT_CLICK: str_id="CLICK"; break; case CHARTEVENT_OBJECT_CLICK: str_id="OBJECT_CLICK"; break; case CHARTEVENT_OBJECT_DRAG: str_id="OBJECT_DRAG"; break; case CHARTEVENT_OBJECT_ENDEDIT: str_id="OBJECT_ENDEDIT"; break; case CHARTEVENT_CHART_CHANGE: str_id="CHART_CHANGE"; break; default: if(id>CHARTEVENT_CUSTOM) str_id="CUSTOM+"+IntegerToString(id-CHARTEVENT_CUSTOM); else str_id="UNKNOWN"; } //--- для отладки printf("ChartEvent :id=%s, l=%d d=%f s=%s",str_id,lparam,dparam,sparam); //--- ExtExpertPrg.ChartEvent(id,lparam,dparam,sparam); } Pavel Tsatsenko 2011.06.01 14:41 #62 おそらく私のやり方が悪いのでしょうが、なぜ誤解があるのか、もう少し詳しく書いてみます。AlexSTAL:すでに割り当てられている数値定数CHARTEVENT_XXXXXXXXXX...に数値対応を初期設定する。CHARTEVENT_XXXXXXXXXの定数が持つ数値は、どこで確認できますか?見つからなかったので、実験してみたところ、CHARTEVENT_KEYDOWN = 0、 CHARTEVENT_CLICK = 4で、ヘルプのこれらの定数の記述順と一致 することがわかりました。他のイベントにも適宜番号を振っているので、event[10]という配列があります。ロッシュ残念ながら、ご質問の内容は理解できません。具体的に何が問題なのか?私のイベントの番号付けと、前回の記事のExpert Advisorの使用に基づいています。例えば、トレンドラインを引く→イベントCHARTEVENT_OBJECT_CHANGEと します。この行をイベントCHARTEVENT_OBJECT_CHANGE に移動します。メニューからプロパティを変更→2つのイベントCHARTEVENT_CHART_CHANGEと CHARTEVENT_CUSTOM を実行。Delを押して削除→イベントのみCHARTEVENT_KEYDOWN, (イベント番号が間違っている場合、削除とボタン押下の2つのイベントが残っているはずです)。すべて、私のナンバリングに基づくものです。次は...Expert Advisorを使用しています。トレンドラインの描画 -> ChartEvent :id=OBJECT_DRAG, l=0 d=0.000000 s=H1 トレンドライン 40716この線を移動させる -> ChartEvent :id=OBJECT_DRAG, l=0 d=0.000000 s=H1 トレンドライン 40716メニューからプロパティを変更する→ChartEvent :id=OBJECT_CHANGE, l=0 d=0.000000 s=H1 トレンドライン 40716 と ChartEvent :id=CHART_CHANGE, l=0 d=0.000000 s= を実行します。Delを押して削除→ChartEvent :id=KEYDOWN, l=46 d=0.000000 s=.状況がクリアになっていない。念のため。MT5 64x - ビルド458。システムはW7 64x Home Extendedです。対応していただきありがとうございました )) Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Типы событий графика www.mql5.com Стандартные константы, перечисления и структуры / Константы графиков / Типы событий графика - Документация по MQL5 Questions from a "dummy" Aleksandr Chugunov 2011.06.01 14:57 #63 kPVT: おそらく私のやり方が悪いのでしょうが、なぜ誤解があるのか、もう少し詳しく書いてみます。CHARTEVENT_XXXXXXXXの定数の数値はどこで確認できますか?見つからなかったので、実験してみたところ、CHARTEVENT_KEYDOWN = 0、 CHARTEVENT_CLICK = 4で、ヘルプのこれらの定数の記述順と 一致することが判明しました。残りのイベントにも適当に番号を振って、配列event[10]のようになりました。 これは絶対にやってはいけないことです数値は開発者が割り当てるもので、いつでも変更可能です。文字定数のみ使用可能--------------uncleVicが 正しい使い方の例を示しています(あるいは私のヘルプのスニペット)。--------------何してるんですか?なぜ数値表現が必要なのでしょうか? Pavel Tsatsenko 2011.06.01 15:08 #64 AlexSTAL:どんなことがあっても、これはやってはいけないことです。数値は開発者が割り当てるもので、いつでも変更可能です。文字定数のみ使用可能OKです。そうしてはいけないというのは、私も同感です。私の手柄は忘れてください)。移動する...AlexSTAL。おじさんが 正しい使い方の例を教えてくれた(まあ、あるいは私の助け舟か)上に書いたように、uncleVicさんの 例を使うと、アクションにマッチしないイベントも取得することができます。kPVT です。トレンドラインの描画 -> ChartEvent :id=OBJECT_DRAG, l=0 d=0.000000 s=H1 トレンドライン 40716CHARTEVENT_OBJECT_CREATEの 代わりに、トレンドライン。.....Delで削除→ChartEvent :id=KEYDOWN, l=46 d=0.000000 s=CHARTEVENT_OBJECT_DELETEではなく 、CHARTEVENT_KEYDOWNで 削除。AlexSTAL。何してるんですか?なぜ数値表現が必要なのでしょうか?説明すると長くなるので、どうでもいいことですが。マイナンバーのことは忘れよう。要は、イベントの意味を理解しようとしているのですが、uncleVicの 例を使っても、発生するイベントと実行されるアクションの間に矛盾があることが理解できません。 Aleksandr Chugunov 2011.06.01 15:13 #65 kPVT:OKです。それは無理だと思う。私の手のひら返しは忘れてください)。移動する...上に書いたように、uncleVicさんの 例を使うと、アクションにマッチしないイベントも取得することができます。kPVT です。初期設定に追加する。 ChartSetInteger(0, CHART_EVENT_OBJECT_CREATE, true); ChartSetInteger(0, CHART_EVENT_OBJECT_DELETE, true);大丈夫です。Создание: DS 0 _err (EURUSD,M30) 17:13:18 ChartEvent :id=OBJECT_CREATE, l=0 d=0.000000 s=M30 Horizontal Line 58241 DG 0 _err (EURUSD,M30) 17:13:18 ChartEvent :id=OBJECT_DRAG, l=0 d=0.000000 s=M30 Horizontal Line 58241 Удаление кл. Del: EH 0 _err (EURUSD,M30) 17:13:21 ChartEvent :id=OBJECT_DELETE, l=0 d=0.000000 s=M30 Horizontal Line 58241 QD 0 _err (EURUSD,M30) 17:13:21 ChartEvent :id=KEYDOWN, l=46 d=0.000000 s= Pavel Tsatsenko 2011.06.02 03:35 #66 Alex ありがとうございました。AlexSTAL:初期設定に追加します。....エキスパートブロックに追加void OnInit() { ChartSetInteger(0, CHART_EVENT_OBJECT_CREATE, true); ChartSetInteger(0, CHART_EVENT_OBJECT_DELETE, true); }すべてが定位置にある。ヘルプを見ましたが、この2つのイベントを「初期化」しないと他のイベントが正しく動作しないとはどこにも書かれていません。コメントアウトしたら、すべてうまくいきました。Expert Advisor/IndicatorがOnInit ブロックを持っていない場合、イベントが混乱することが判明しました。考え方かもしれませんが、mql5プログラマーは念のため知っておいた方がいいと思います。 Europa 2011.06.02 09:32 #67 私はウィザードでExpert Advisorを生成しますが、テスターは、Core 1テスターはOnInit重大なエラーが発生したため停止を生成し、誰もがこれに遭遇した? どのようにそれが解決されますか? 結局、ウィザード、OK、私はそこに間違いを犯しただろう... Victor Kirillin 2011.06.02 09:41 #68 Europa: WizardでExpert Advisorを生成したのですが、テスターでCore 1というエラーが出ます。 OnInit critical errorでテスターが止まってしまいます。 どなたか遭遇したことがありますか? どのように解決していますか? やはり、Wizard、そこで何か失敗しているのでしょうか・・・。 ソースコードを添付してください。そしてテストパラメータ。 Europa 2011.06.02 10:01 #69 uncleVic: 出来上がったソースコードを添付してください。そしてテストパラメータ。 ファイル: TheFirst.mq5 7 kb Victor Kirillin 2011.06.02 10:45 #70 Europa: 再生されませんでした。テストパラメータをもっと増やしてほしいとお願いしました。しました。シンボルマーク期間インターバルです。トレーディングモード。MT5のバージョン、ビットレートともに。 1234567891011121314...277 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
私は、イベントに対応するために、専門家を持っています。
アクションに対応しないイベントが発生する。
チャート上のクリックとボタンのクリックに正確に対応する
物議を醸すイベント id=9(CHARTEVENT_CUSTOM) は、例えば チャートが移動し、同様のイベントが10個程度発生したときに生成さ れるものです。
CHARTEVENT_OBJECT_ENDEDIT イベントがチェックされていない。
残りはすべて不明です。説明文とイベント番号が一致しないか、手動でオブジェクトを作成したときに、オブジェクトの作成イベントが誤って生成される。
すべてにおいて、助けてください。
こうすればいいんじゃない?
おそらく私のやり方が悪いのでしょうが、なぜ誤解があるのか、もう少し詳しく書いてみます。
すでに割り当てられている数値定数CHARTEVENT_XXXXXXXXXX...に数値対応を初期設定する。
CHARTEVENT_XXXXXXXXXの定数が持つ数値は、どこで確認できますか?
見つからなかったので、実験してみたところ、CHARTEVENT_KEYDOWN = 0、 CHARTEVENT_CLICK = 4で、ヘルプのこれらの定数の記述順と一致 することがわかりました。
他のイベントにも適宜番号を振っているので、event[10]という配列があります。
残念ながら、ご質問の内容は理解できません。具体的に何が問題なのか?
私のイベントの番号付けと、前回の記事のExpert Advisorの使用に基づいています。
例えば、トレンドラインを引く→イベントCHARTEVENT_OBJECT_CHANGEと します。
この行をイベントCHARTEVENT_OBJECT_CHANGE に移動します。
メニューからプロパティを変更→2つのイベントCHARTEVENT_CHART_CHANGEと CHARTEVENT_CUSTOM を実行。
Delを押して削除→イベントのみCHARTEVENT_KEYDOWN, (イベント番号が間違っている場合、削除とボタン押下の2つのイベントが残っているはずです)。
すべて、私のナンバリングに基づくものです。
次は...
Expert Advisorを使用しています。
トレンドラインの描画 -> ChartEvent :id=OBJECT_DRAG, l=0 d=0.000000 s=H1 トレンドライン 40716
この線を移動させる -> ChartEvent :id=OBJECT_DRAG, l=0 d=0.000000 s=H1 トレンドライン 40716
メニューからプロパティを変更する→ChartEvent :id=OBJECT_CHANGE, l=0 d=0.000000 s=H1 トレンドライン 40716 と ChartEvent :id=CHART_CHANGE, l=0 d=0.000000 s= を実行します。
状況がクリアになっていない。
念のため。
MT5 64x - ビルド458。
システムはW7 64x Home Extendedです。
対応していただきありがとうございました ))
おそらく私のやり方が悪いのでしょうが、なぜ誤解があるのか、もう少し詳しく書いてみます。
CHARTEVENT_XXXXXXXXの定数の数値はどこで確認できますか?
見つからなかったので、実験してみたところ、CHARTEVENT_KEYDOWN = 0、 CHARTEVENT_CLICK = 4で、ヘルプのこれらの定数の記述順と 一致することが判明しました。
残りのイベントにも適当に番号を振って、配列event[10]のようになりました。
これは絶対にやってはいけないことです
数値は開発者が割り当てるもので、いつでも変更可能です。
文字定数のみ使用可能
--------------
uncleVicが 正しい使い方の例を示しています(あるいは私のヘルプのスニペット)。
--------------
何してるんですか?なぜ数値表現が必要なのでしょうか?
どんなことがあっても、これはやってはいけないことです。
数値は開発者が割り当てるもので、いつでも変更可能です。
文字定数のみ使用可能
OKです。そうしてはいけないというのは、私も同感です。
私の手柄は忘れてください)。
移動する...
おじさんが 正しい使い方の例を教えてくれた(まあ、あるいは私の助け舟か)
上に書いたように、uncleVicさんの 例を使うと、アクションにマッチしないイベントも取得することができます。
kPVT です。
トレンドラインの描画 -> ChartEvent :id=OBJECT_DRAG, l=0 d=0.000000 s=H1 トレンドライン 40716CHARTEVENT_OBJECT_CREATEの 代わりに、トレンドライン。
.....
何してるんですか?なぜ数値表現が必要なのでしょうか?
説明すると長くなるので、どうでもいいことですが。マイナンバーのことは忘れよう。
要は、イベントの意味を理解しようとしているのですが、uncleVicの 例を使っても、発生するイベントと実行されるアクションの間に矛盾があることが理解できません。
OKです。それは無理だと思う。
私の手のひら返しは忘れてください)。
移動する...
上に書いたように、uncleVicさんの 例を使うと、アクションにマッチしないイベントも取得することができます。
kPVT です。
初期設定に追加する。
大丈夫です。
Alex ありがとうございました。
初期設定に追加します。
....
エキスパートブロックに追加
すべてが定位置にある。
ヘルプを見ましたが、この2つのイベントを「初期化」しないと他のイベントが正しく動作しないとはどこにも書かれていません。
コメントアウトしたら、すべてうまくいきました。
Expert Advisor/IndicatorがOnInit ブロックを持っていない場合、イベントが混乱することが判明しました。
考え方かもしれませんが、mql5プログラマーは念のため知っておいた方がいいと思います。
WizardでExpert Advisorを生成したのですが、テスターでCore 1というエラーが出ます。 OnInit critical errorでテスターが止まってしまいます。 どなたか遭遇したことがありますか? どのように解決していますか? やはり、Wizard、そこで何か失敗しているのでしょうか・・・。
出来上がったソースコードを添付してください。そしてテストパラメータ。
再生されませんでした。
テストパラメータをもっと増やしてほしいとお願いしました。しました。
MT5のバージョン、ビットレートともに。