[ARCHIVE!] フォーラムを散らかさないように、どんなルーキーの質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしではどこにも行けない - 4. - ページ 250 1...243244245246247248249250251252253254255256257...631 新しいコメント Dimka-novitsek 2012.07.14 16:37 #2491 ありがとうございました。 Dimka-novitsek 2012.07.14 17:11 #2492 スクリプトをチャート上にドラッグしても、EAと同じチャートでも別のチャートでも何も起こりません。このスクリプトを使うのは全く初めてです。こんな感じです。//+------------------------------------------------------------------+ //| таймфрейм .mq4 | //| Copyright 2012, MetaQuotes Software Corp. | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright 2012, MetaQuotes Software Corp." #property link "http://www.metaquotes.net" #include <ServicesMT4.mqh> void start() { int hwndChart = WindowHandle("EURUSD", PERIOD_H1); while (!IsStopped()) { for (int i = 0; i < 9 && !IsStopped(); i++) { ServiceSetTimeframeByNumber(hwndChart, i); Sleep(4000); } } } //+------------------------------------------------------------------+ //| script program start function | //+------------------------------------------------------------------+ Expert Advisorはこのような感じです。//+------------------------------------------------------------------+ //| таймфрейммм.mq4 | //| Copyright 2012, MetaQuotes Software Corp. | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright 2012, MetaQuotes Software Corp." #property link "http://www.metaquotes.net" #include <ServicesMT4.mqh> void start() { int hwndChart = WindowHandle(Symbol(),Period()); while (!IsStopped()) { for (int i = 0; i < 9; i++) { ServiceSetTimeframeByNumber(hwndChart, i); Sleep(4000); } } } //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ そして、それぞれバリアントとして。 //+------------------------------------------------------------------+ //| таймфреймммм.mq4 | //| Copyright 2012, MetaQuotes Software Corp. | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright 2012, MetaQuotes Software Corp." #property link "http://www.metaquotes.net" #include <ServicesMT4.mqh> int hwndChart = NULL; void init() { hwndChart = WindowHandle(Symbol(),Period()); // Получаем системный дескриптор графика. ServiceRefreshChart(hwndChart, 1000); // Запускаем обновление графика каждую 1 секунду. } void start() { ServiceStopRefreshChart(hwndChart); // Останавливаем обновление. Больше не требуется. while (!IsStopped()) { for (int i = 0; i < 9; i++) { ServiceSetTimeframeByNumber(hwndChart, i); Sleep(4000); } } } //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ Vadim Zhunko 2012.07.14 20:57 #2493 このスクリプトは、私のために動作します。 #include <ServicesMT4.mqh> void start() { int hwndChart = WindowHandle("EURUSD", PERIOD_H1); while (!IsStopped()) { for (int i = 0; i < 9 && !IsStopped(); i++) { ServiceSetTimeframeByNumber(hwndChart, i); Sleep(4000); } } } このエキスパート、不思議な働きをするんです。効かないとも言える。TF単体では、M5までしか切り替わりません。 #include <ServicesMT4.mqh> int hwndChart = NULL; void init() { if (UninitializeReason() != REASON_CHARTCHANGE) hwndChart = WindowHandle(Symbol(),Period()); // Получаем системный дескриптор графика. ServiceRefreshChart(hwndChart, 1000); // Запускаем обновление графика каждую 1 секунду. } void start() { ServiceStopRefreshChart(hwndChart); // Останавливаем обновление. Больше не требуется. while (!IsStopped()) { for (int i = 0; i < 9; i++) { ServiceSetTimeframeByNumber(hwndChart, i); Sleep(4000); } } } 自然な刻みを待つ。どこからが問題なのかは不明です。MT4の新しいビルドで何かが変更されました。 Рустам 2012.07.14 23:23 #2494 Zhunko: このスクリプトは、私のために動作します。 このエキスパート、不思議な働きをするんです。効かないとも言える。TF単体では、M5までしか切り替わりません。 自然のダニを待ちます。なぜこのような問題が発生したのかがわからない。MT4の新しいビルドで何かが変更されました。 そうですね、なぜ不具合が多発して応用できないようなソフトが必要なのでしょうか? 標準機能を使っていただければ、すべてうまくいきます。 ティックではなく、チャート上に配置され、手動で更新されるインジケーターです。 設定でDLLを許可することを忘れずに //+------------------------------------------------------------------+ //| таймфрейм.mq4 | //| Copyright 2012, MetaQuotes Software Corp. | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright 2012, MetaQuotes Software Corp." #property link "http://www.metaquotes.net" #property indicator_chart_window #import "user32.dll" int PostMessageA(int hWnd,int Msg,int wParam,string lParam); #import #define WM_COMMAND 0x0111 int delimiter = 0; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() {//return; int counted_bars=IndicatorCounted(); //---- if(delimiter<3){delimiter++;Comment(delimiter);return(0);} delimiter=0; fChangePeriod(); //---- return(0); } //+------------------------------------------------------------------+ void fChangePeriod(){int ii,hwd = WindowHandle(Symbol(),Period()); switch(Period()){ case PERIOD_W1 : ii = 33134; break; //PERIOD_D1; case PERIOD_D1 : ii = 33136; break; //PERIOD_H4; case PERIOD_H4 : ii = 33135; break; //PERIOD_H1; case PERIOD_H1 : ii = 33140; break; //PERIOD_M30; case PERIOD_M30 : ii = 33139; break; //PERIOD_M15; case PERIOD_M15 : ii = 33138; break; //PERIOD_M5; case PERIOD_M5 : ii = 33137; break; //PERIOD_M1; case PERIOD_M1 : ii = 33141; break; //PERIOD_W1; } PostMessageA(hwd, WM_COMMAND, ii, 0); return; } Евгений 2012.07.15 03:47 #2495 //+------------------------------------------------------------------+ // Скрипт для переключ таймфрейма. // Для работы скрипта необходимо разрешить вызов функций из системных DLL: // Сервис -> Настройки -> Советники -> Разрешить импорт DLL. #property show_inputs #import "user32.dll" int PostMessageA(int hWnd,int Msg,int wParam,int lParam); void keybd_event(int bVk,int bScan,int dwFlags,int dwExtraInfo); #import #define WM_COMMAND 0x0111 extern int Per=5; //+------------------------------------------------------------------+ int start() {int wParam,hWnd=WindowHandle(Symbol(),Period()); switch(Per) {case PERIOD_M1: wParam=33137;break; case PERIOD_M5: wParam=33138;break; case PERIOD_M15:wParam=33139;break; case PERIOD_M30:wParam=33140;break; case PERIOD_H1: wParam=33135;break; case PERIOD_H4: wParam=33136;break; case PERIOD_D1: wParam=33134;break; case PERIOD_W1: wParam=33141;break; case PERIOD_MN1:wParam=33334;break;} PostMessageA(hWnd,WM_COMMAND,wParam,0); keybd_event(0xD,0,0,0);keybd_event(0x23,0,0,0);return(0);} //+------------------------------------------------------------------+ Vadim Zhunko 2012.07.15 08:42 #2496 FAQ: そうですね、常に不具合が出て使えないようなソフトがなぜ必要 なのでしょうか? 標準機能を使っていれば大丈夫です。 インジケータはティックではなく、チャートにして手動で更新する必要があります。 ただ、設定でDLLを許可するのを忘れないでください。 えっ、事実を知っているのですか?もし、私が冗談を言っていたとしたら?確認もできない。ある種のスキルが必要なのです。 PostMessage()は私も動作しています。ただ、それは間違っている。SendMessage()でやってみてください。その違いがわかるといいのですが。 ルスタム 誰もが一番シンプルなソフトを扱えるわけではありません。運が悪かったとしか言いようがない。OSに不具合がある人だっているんです。 Dimka-novitsek 2012.07.15 10:27 #2497 ありがとうございました!!!!!!!!!! Dimka-novitsek 2012.07.15 10:44 #2498 スクリプトが動く!!!!!! でも、M5にしか切り替わらないんです。 Виктор 2012.07.15 11:49 #2499 Dimka-novitsek: スクリプトが動く!!!!!! どれだ? Dimka-novitsek 2012.07.15 11:53 #2500 ロールが贈った最後の1枚。 いずれにせよ、少なくともM5では動作していますし、そうでなければ、ここではまだスクリプトやアドバイザーのビジュアルワークを見たことがないのです。このようなスクリプトをここで見るのは初めてです。 どう直せばいいのか、どうすればスマートになるのか、それはわからない。あ、わかりました。 1...243244245246247248249250251252253254255256257...631 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
このスクリプトは、私のために動作します。
このエキスパート、不思議な働きをするんです。効かないとも言える。TF単体では、M5までしか切り替わりません。
自然な刻みを待つ。どこからが問題なのかは不明です。MT4の新しいビルドで何かが変更されました。このスクリプトは、私のために動作します。
このエキスパート、不思議な働きをするんです。効かないとも言える。TF単体では、M5までしか切り替わりません。
自然のダニを待ちます。なぜこのような問題が発生したのかがわからない。MT4の新しいビルドで何かが変更されました。そうですね、なぜ不具合が多発して応用できないようなソフトが必要なのでしょうか?
標準機能を使っていただければ、すべてうまくいきます。
ティックではなく、チャート上に配置され、手動で更新されるインジケーターです。
設定でDLLを許可することを忘れずに
そうですね、常に不具合が出て使えないようなソフトがなぜ必要 なのでしょうか?
標準機能を使っていれば大丈夫です。
インジケータはティックではなく、チャートにして手動で更新する必要があります。
ただ、設定でDLLを許可するのを忘れないでください。
えっ、事実を知っているのですか?もし、私が冗談を言っていたとしたら?確認もできない。ある種のスキルが必要なのです。
PostMessage()は私も動作しています。ただ、それは間違っている。SendMessage()でやってみてください。その違いがわかるといいのですが。
ルスタム 誰もが一番シンプルなソフトを扱えるわけではありません。運が悪かったとしか言いようがない。OSに不具合がある人だっているんです。
スクリプトが動く!!!!!!
でも、M5にしか切り替わらないんです。
スクリプトが動く!!!!!!
ロールが贈った最後の1枚。 いずれにせよ、少なくともM5では動作していますし、そうでなければ、ここではまだスクリプトやアドバイザーのビジュアルワークを見たことがないのです。このようなスクリプトをここで見るのは初めてです。
どう直せばいいのか、どうすればスマートになるのか、それはわからない。あ、わかりました。