MQL4 EAからチャートにインジケータを追加する。 - ページ 3 123456 新しいコメント alessandrovb 2016.03.10 12:28 #21 Georgiy Liashchenko: スリープが効きました、ありがとうございますAlainのコードを使っているのですが、クラシックなインジケーターのフォームが表示されてパラメータを 記入し、Okをクリックするとインジケーターが有効になるという意味では、手動でインジケーターを付けるのと同じような感覚で動作します。必要なパラメーターの設定まで完全に自動化することは可能でしょうか?ありがとうございます Alain Verleyen 2016.03.10 21:33 #22 alessandrovb:Alainのコードを使っているのですが、クラシックなインジケーターのフォームが表示されてパラメータを記入し、Okをクリックするとインジケーターが有効になるという意味では、手動でインジケーターを付けるのと同じような感覚で動作します。必要なパラメーターの設定まで完全に自動化することは可能でしょうか?よろしくお願いします。 手動で行っているように、キーストロークをシミュレートするコードを追加 するだけです。 Sirichai Laemrungruang 2017.01.30 06:26 #23 Alain Verleyen:私はこの問題はありません(私が投稿したコードで)。hWndが0と異なることを確認してください。また、スリープの値を50または100に増やしてみてください。こんにちは。このコメントは多くのヘルプに、私は他の質問が必要です。入力ポップアップをバイパスして、インジケータのデフォルトを使用することはできますか?どのようにコーディングすればいいのでしょうか?チャートからインジケータを削除することはできますか? Hilman Pridana 2017.11.23 05:03 #24 Alain Verleyen: ありがとうございます、これは私が探していたものです、私は私のカスタムインジケータを 追加することができます。 Andre Tavares 2017.12.29 04:05 #25 Alain Verleyen: Congratulations, it works fine. Mohammad Bazrkar 2018.01.11 08:45 #26 Alain Verleyen:私はこの問題はありません(私が投稿したコードで)。hWndが0と異なることを確認してください。また、スリープの値を50や100に増やしてみてください。あなたのコードを使用していますが、名前が問題です。2018.01.11 12:06:15.864 cannot open file 'C:\..........\MQL4indicators' [123].2018.01.11 12:04:00.518 cannot open file 'C:\...............\MQL4INDICATORS PACD. ex4' [123] (ファイル名:PACD. EX4)を開けません。1行目が発生したとき uchar name2[4]; name2[0]='M'; name2[1]='A'; name2[2]='C'; name2[3]='D'; // StringToCharArray(IndicatorName,name2,0,StringLen(IndicatorName));Second line is raised when uchar name2[]; StringToCharArray(IndicatorName,name2,0,StringLen(IndicatorName));First line is raised when. I changed First code it's working now! uchar name2[5]; name2[0]='M'; name2[1]='A'; name2[2]='C'; name2[3]='D'; name2[4]=0; // StringToCharArray(IndicatorName,name2,0,StringLen(IndicatorName)); 私の問題は、配列の終端を検出することだと思います。 MQL4 Add indicator to about DLL function char* I am a newbie Nicolas Baptista 2018.03.29 23:20 #27 皆さん、こんにちは。 Georgiy Liashchenko氏に感謝し、AutomaticallyAcceptDefaults ("true "の時)を使ってインジケータを直接チャートに追加する彼のコードのアップグレード版を共有したいと思います。 #import "user32.dll" int RegisterWindowMessageW(string MessageName); int PostMessageW(int hwnd,int msg,int wparam,uchar &Name[]); int FindWindowW(string lpszClass,string lpszWindow); #import #define VK_RETURN 13 //ENTER key void StartCustomIndicator(int hWnd,string IndicatorName,bool AutomaticallyAcceptDefaults=false) { Sleep(100); uchar name2[]; StringToCharArray(IndicatorName,name2,0,StringLen(IndicatorName)); int MessageNumber=RegisterWindowMessageW("MetaTrader4_Internal_Message"); int r=PostMessageW(hWnd,MessageNumber,15,name2); Sleep(100); if(AutomaticallyAcceptDefaults) { int ind_settings = FindWindowW(NULL, "Custom Indicator - "+IndicatorName); PostMessageW(ind_settings,0x100,VK_RETURN,name2); } } int OnInit() { int hWnd = WindowHandle(Symbol(), 0); StartCustomIndicator(hWnd, "Indicator_name"); return(INIT_SUCCEEDED); } エキスパートからインジケータを挿入する必要がある方々のお役に立てれば幸いです。 注1:カスタム・インジケータの場合、Windowsの名前を変更する必要があります。 注2:15文字以上のインジケータは使用しないでください(".ex4 "の前)。 Tom Sasson 2018.04.11 00:18 #28 Kray:皆さん、こんにちは。 Georgiy Liashchenkoに感謝し、AutomaticallyAcceptDefaults ("true "の場合)を使ってインジケータを直接チャートに追加する彼のコードのアップグレード版を共有したいと思います。 エキスパートからインジケータを挿入する必要がある方々のお役に立てれば幸いです。 注1:カスタム・インジケータの場合、Windowsの名前を変更する必要があります。 注2:15文字以上のインジケータは使用しないでください(".ex4 "の前)。とてもいい感じです。 を使うことを発見しました。 int r=PostMessageW(hWnd,MessageNumber,13,name2); を使う代わりに int r=PostMessageW(hWnd,MessageNumber,15,name2); を使うと、標準のインジケータの名前を使って、標準のインジケータも使えるようになります。 Jagg 2018.07.13 14:18 #29 が出るのですが 'name2' - parameter conversion not allowed コンパイルしようとするとエラーメッセージが出るのですか! shoxie 2018.10.04 04:45 #30 Kray: 皆さん、こんにちは。 Georgiy Liashchenkoに感謝するとともに、AutomaticallyAcceptDefaults ("true "の場合)を使ってインジケータを直接チャートに追加する、彼のコードのアップグレード版を共有したいと思います。...... if(AutomaticallyAcceptDefaults) { int ind_settings = FindWindowW(NULL, "Custom Indicator - "+IndicatorName); PostMessageW(ind_settings,0x100,VK_RETURN,name2); 私はMT4 v4.00 Build 1090 (19 May 2017)を使用しています。 関数PostMessageWをスクリプト内から使用してインジケータを配置すると、MT4端末がクラッシュしてしまいます。 私はインジケータを配置するための代替手段としてSendMessageWを使用しましたが、残念ながら、これはキーボードイベントをシミュレートしてEnterキーを押すことによって設定ダイアログボックスを閉じる方法がないことを意味します。これは、SendMessageW関数が、ウィンドウプロシージャがメッセージを処理するまで戻ってこないため、ダイアログボックスが消えるまでキーボードイベントを処理できないためではないかと思います。つまり、ダイアログボックスが消えるまでSendMessageWは戻らないので、ダイアログボックスが表示されている間はFindWindowWが動作しないということになります。 この全体は、私にとってフラストレーションの一つの大きな練習になっています。PostMessageWはMT4の最新ビルドでまだ動作しますか?どなたか、インジケータの設定ダイアログボックスをプログラムで閉じる方法をご存じないでしょうか?他の2つのスレッドを参照し、その推奨事項を試しましたが、うまくいきませんでした。 https://www.mql5.com/en/forum/155334 https://www.mql5.com/en/forum/115967 どなたか教えてください。PostMessageWを動作させるか、他の方法でconfigダイアログボックスを閉じる方法はないでしょうか? 123456 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
スリープが効きました、ありがとうございます
Alainのコードを使っているのですが、クラシックなインジケーターのフォームが表示されてパラメータを 記入し、Okをクリックするとインジケーターが有効になるという意味では、手動でインジケーターを付けるのと同じような感覚で動作します。必要なパラメーターの設定まで完全に自動化することは可能でしょうか?ありがとうございます
Alainのコードを使っているのですが、クラシックなインジケーターのフォームが表示されてパラメータを記入し、Okをクリックするとインジケーターが有効になるという意味では、手動でインジケーターを付けるのと同じような感覚で動作します。必要なパラメーターの設定まで完全に自動化することは可能でしょうか?よろしくお願いします。
私はこの問題はありません(私が投稿したコードで)。
hWndが0と異なることを確認してください。
また、スリープの値を50または100に増やしてみてください。
こんにちは。
このコメントは多くのヘルプに、私は他の質問が必要です。
入力ポップアップをバイパスして、インジケータのデフォルトを使用することはできますか?どのようにコーディングすればいいのでしょうか?
チャートからインジケータを削除することはできますか?
ありがとうございます、これは私が探していたものです、私は私のカスタムインジケータを 追加することができます。
Congratulations, it works fine.
私はこの問題はありません(私が投稿したコードで)。
hWndが0と異なることを確認してください。
また、スリープの値を50や100に増やしてみてください。
あなたのコードを使用していますが、名前が問題です。
2018.01.11 12:06:15.864 cannot open file 'C:\..........\MQL4indicators' [123].
2018.01.11 12:04:00.518 cannot open file 'C:\...............\MQL4INDICATORS PACD. ex4' [123] (ファイル名:PACD. EX4)を開けません。
1行目が発生したとき
uchar name2[4];
name2[0]='M'; name2[1]='A'; name2[2]='C'; name2[3]='D';
// StringToCharArray(IndicatorName,name2,0,StringLen(IndicatorName));
Second line is raised when
uchar name2[];
StringToCharArray(IndicatorName,name2,0,StringLen(IndicatorName));
First line is raised when. I changed First code it's working now!
uchar name2[5];
name2[0]='M'; name2[1]='A'; name2[2]='C'; name2[3]='D'; name2[4]=0;
// StringToCharArray(IndicatorName,name2,0,StringLen(IndicatorName));
皆さん、こんにちは。
Georgiy Liashchenko氏に感謝し、AutomaticallyAcceptDefaults ("true "の時)を使ってインジケータを直接チャートに追加する彼のコードのアップグレード版を共有したいと思います。
エキスパートからインジケータを挿入する必要がある方々のお役に立てれば幸いです。
注1:カスタム・インジケータの場合、Windowsの名前を変更する必要があります。
注2:15文字以上のインジケータは使用しないでください(".ex4 "の前)。
皆さん、こんにちは。
Georgiy Liashchenkoに感謝し、AutomaticallyAcceptDefaults ("true "の場合)を使ってインジケータを直接チャートに追加する彼のコードのアップグレード版を共有したいと思います。
エキスパートからインジケータを挿入する必要がある方々のお役に立てれば幸いです。
注1:カスタム・インジケータの場合、Windowsの名前を変更する必要があります。
注2:15文字以上のインジケータは使用しないでください(".ex4 "の前)。
とてもいい感じです。
を使うことを発見しました。
を使う代わりに
を使うと、標準のインジケータの名前を使って、標準のインジケータも使えるようになります。
が出るのですが
コンパイルしようとするとエラーメッセージが出るのですか!Kray:
皆さん、こんにちは。
Georgiy Liashchenkoに感謝するとともに、AutomaticallyAcceptDefaults ("true "の場合)を使ってインジケータを直接チャートに追加する、彼のコードのアップグレード版を共有したいと思います。
......
私はMT4 v4.00 Build 1090 (19 May 2017)を使用しています。
関数PostMessageWをスクリプト内から使用してインジケータを配置すると、MT4端末がクラッシュしてしまいます。
私はインジケータを配置するための代替手段としてSendMessageWを使用しましたが、残念ながら、これはキーボードイベントをシミュレートしてEnterキーを押すことによって設定ダイアログボックスを閉じる方法がないことを意味します。これは、SendMessageW関数が、ウィンドウプロシージャがメッセージを処理するまで戻ってこないため、ダイアログボックスが消えるまでキーボードイベントを処理できないためではないかと思います。つまり、ダイアログボックスが消えるまでSendMessageWは戻らないので、ダイアログボックスが表示されている間はFindWindowWが動作しないということになります。
この全体は、私にとってフラストレーションの一つの大きな練習になっています。PostMessageWはMT4の最新ビルドでまだ動作しますか?どなたか、インジケータの設定ダイアログボックスをプログラムで閉じる方法をご存じないでしょうか?他の2つのスレッドを参照し、その推奨事項を試しましたが、うまくいきませんでした。
https://www.mql5.com/en/forum/155334
https://www.mql5.com/en/forum/115967
どなたか教えてください。PostMessageWを動作させるか、他の方法でconfigダイアログボックスを閉じる方法はないでしょうか?