エラー、バグ、質問 - ページ 1620 1...161316141615161616171618161916201621162216231624162516261627...3185 新しいコメント Dmitri Custurov 2016.07.28 17:49 #16191 残念ながら、そうとは限りません。長時間接続しないと、端末が「Account disable」と出て、手動でログインしなければならない。例えば、夜間にサーバーの電源を切ることが多い財団法人では、このようなことが起こります。 Vladimir Karputov 2016.07.28 18:16 #16192 Dmitri Custurov: 残念ながら、そうとは限りません。長時間接続しないと、端末が「Account disable」と出て、手動でログインしなければならない。例えば、夜間にサーバーの電源を切ることが多い財団法人では、このようなことが起こります。 そして、この場合(接続の長い欠如で)、あなたがウィンドウでコマンド "ファイル"-> "取引口座に接続 "を実行すると、まったく同じ取引口座になるのでしょうか? Dmitri Custurov 2016.07.28 18:41 #16193 全く同じです。アカウントは1つしか設定していません。 pavlick_ 2016.07.28 18:54 #16194 Dmitri Custurov: 皆さん、こんにちは。何ページか前に質問したのですが、もう一度質問します。 MT5のサーバー接続が中断されたときに、自分のアカウントに再ログインする方法はありますか?フォーラムで検索しても何も出てきません。 ターミナルを再起動すると、EAを実行した状態で起動するのでしょうか(ターミナルがインストールされていないので確認できません)。もしそうなら、再起動を行うシェルスクリプトを書くことができます。そして、このスクリプトをEAから引っ張ってきてください。 Vasiliy Sokolov 2016.07.28 19:23 #16195 Dmitri Custurov: 残念ながら、そうとは限りません。長時間接続しないと、端末が「Account disable」と出て、手動でログインしなければならない。例えば、夜間にサーバーの電源を切ることが多いファンドでは、このようなことが起こります。 これはバグか、ブローカーの特定の設定のどちらかです。この問題は、サービスデスクに お問い合わせください。あってはならないことです。 Alexey Navoykov 2016.07.29 03:43 #16196 約束されていながら未実装の、関数の値を 参照で返す機能について、開発者のコメントをお願いします。 まだ手をつけていないのか、それとも何か問題があるのでしょうか? Vladimir Karputov 2016.07.29 06:58 #16197 Dmitri Custurov: 残念ながら、いつもそうとは限りません。長時間接続しない場合、端末が「Account disable」と表示し、手動でログインする必要があります。例えば、夜間にサーバーの電源を切ることが多い財団法人では、このようなことが起こります。以下は、「ファイル」メニュー-「取引口座に接続」-「OK」ボタンをクリックするスクリプトで、端末が最後に認証された取引口座に接続するようにします。//+------------------------------------------------------------------+ //| ClickMenu.mq5 | //| Copyright © 2016, Vladimir Karputov | //| http://wmua.ru/slesar/ | //+------------------------------------------------------------------+ #property copyright "Copyright © 2016, Vladimir Karputov" #property link "http://wmua.ru/slesar/" #property version "1.00" #property script_show_inputs input int number_menu=1; //меню "Файл" input int item_menu=14; //пункт "Подключиться к торговому счёту" #ifndef _IsX64 #define HWND long #define HMENU long #define HBITMAP long #define ULONG_PTR long #else #define HWND int #define HMENU int #define HBITMAP int #define ULONG_PTR int #endif #define UINT int #define GA_ROOT 0x0002 // Retrieves the root window by walking the chain of parent windows #define WM_COMMAND 0x0111 #define MIIM_STRING 0x00000040 #define MIIM_SUBMENU 0x00000004 #define BM_CLICK 0x000000F5 #import "user32.dll" int GetLastError(); //+------------------------------------------------------------------+ //| GetAncestor. Retrieves the handle to the ancestor of the | //| specified window. Извлекает дескриптор предка заданного окна | //+------------------------------------------------------------------+ HWND GetAncestor(HWND hwnd,UINT gaFlags); HMENU GetMenu(HWND hWnd); //int GetMenuItemCount(HMENU hMenu); HMENU GetSubMenu(HMENU hMenu,int nPos); int GetMenuItemID(HMENU hMenu,int nPos); bool PostMessageW(HWND hWnd,UINT Msg,int wParam,int lParam); HWND GetLastActivePopup(HWND hWnd); HWND GetDlgItem(HWND hDlg,int nIDDlgItem); #import //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { //--- long mainChartID=ChartID(); //возвращает идентификатор текущего графика int hdlmainChartID=ChartWindowsHandle(mainChartID); //получает хэндл графика HWND hdlRoot=GetAncestor(hdlmainChartID,GA_ROOT); //получает хендл предка указанного окна //Print("hdlRoot = ",IntegerToString(hdlRoot)); HMENU hmenu=GetMenu(hdlRoot); //получает хэндл главного меню терминала /*int count_hmenu=GetMenuItemCount(hmenu); Print("в главном меню ",IntegerToString(count_hmenu)," элементов");*/ HMENU hsubmenu=GetSubMenu(hmenu,number_menu); //получает хэндл заданного подменю ("Файл") /*int count_hsubmenu=GetMenuItemCount(hsubmenu); Print("в подменю ",IntegerToString(number_menu)," ",IntegerToString(count_hsubmenu)," элементов");*/ int hpos=GetMenuItemID(hsubmenu,item_menu); //получает хэндл пункта "Подключиться к торговому счёту" PostMessageW(hdlRoot,WM_COMMAND,hpos,0); //кликаем на пункт "Подключиться к торговому счёту" Sleep(2000); HWND hlastPopup=GetLastActivePopup(hdlRoot); //получает хендл последнего PopUp меню HWND hOK=GetDlgItem(hlastPopup,0x00000001); //получает хенд кнопки из диалога PostMessageW(hOK,BM_CLICK,0,0); //кликаем на кнопку "OK" } //+------------------------------------------------------------------+ //| The function gets the handle graphics | //| Функция получает хэндл графика | //+------------------------------------------------------------------+ int ChartWindowsHandle(long chart_ID) { //--- prepare the variable to get the property value //--- подготовим переменную для получения значения свойства long result=-1; //--- reset the error value //--- сбросим значение ошибки ResetLastError(); //--- receive the property value //--- получим значение свойства if(!ChartGetInteger(chart_ID,CHART_WINDOW_HANDLE,0,result)) { //--- display the error message in Experts journal //--- выведем сообщение об ошибке в журнал "Эксперты" Print(__FUNCTION__+", Error Code = ",GetLastError()); } //--- return the value of the chart property //--- вернем значение свойства графика return((int)result); } //+------------------------------------------------------------------+ すべてうまくいったら、コードをきれいにして、KodoBaseに投稿します。 ファイル: ClickMenu.mq5 5 kb Maxim Khrolenko 2016.07.29 08:34 #16198 MQL4です。StringToCharArray()の 説明には「unicodeからansiに変換された文字列をuchar型の配列の指定された場所にシンボリックにコピーする」と書かれています。記述に間違いがあるような気がします。この関数を使うと、文字を文字コードに対応する数値に変換するだけで、文字コードに依存した変換ができます(関数は5つのパラメータを持っています)。つまり、ここでは「...unicodeからansiへの...」という変換はありません。間違っていたら訂正してください。例えば、Ansiの€記号のコードを見つける必要がある場合、第5パラメータにCP_ACPと記述することになります。UTF7 の場合は、CP_UTF7 となります。Unicodeの場合は、StringToShortArray() (スクリプト参照)を使っています。#property strict void OnStart() { string a = "€"; // euro symbol uchar ArrayAnsi[1], ArrayUTF7[1]; ushort ArrayUnicode[1]; int Count; Count=StringToCharArray(a,ArrayAnsi,0,WHOLE_ARRAY,CP_ACP); Print("1) € in Ansi = ",IntegerToString(ArrayAnsi[0])); Count=StringToCharArray(a,ArrayUTF7,0,WHOLE_ARRAY,CP_UTF7); Print("2) € in UTF7 = ",IntegerToString(ArrayUTF7[0])); Count=StringToShortArray(a,ArrayUnicode,0,WHOLE_ARRAY); Print("3) € in Unicode = ",IntegerToString(ArrayUnicode[0])); } Alexey Navoykov 2016.07.29 08:35 #16199 コンパイラのバグです。template<typename T> void Func (T&) { } template<typename T> void Func (T*&) { } template<typename T> void InterFunc(T& var) { Func(var); } // 'var' - parameter conversion not allowed class A { }; void F1() { A a; InterFunc(a); } void F2() { A* a; Func(a); }しかし、F2関数を削除すると、正常にコンパイルされます。 Alexey Navoykov 2016.07.29 09:25 #16200 コンパイラーエラーです。class A { }; void Func(A* const&) { } void OnStart() { A* const a= NULL; Func(a); // 'a' - cannot convert from const pointer to nonconst pointer } 1...161316141615161616171618161916201621162216231624162516261627...3185 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
残念ながら、そうとは限りません。長時間接続しないと、端末が「Account disable」と出て、手動でログインしなければならない。例えば、夜間にサーバーの電源を切ることが多い財団法人では、このようなことが起こります。
皆さん、こんにちは。何ページか前に質問したのですが、もう一度質問します。 MT5のサーバー接続が中断されたときに、自分のアカウントに再ログインする方法はありますか?フォーラムで検索しても何も出てきません。
残念ながら、そうとは限りません。長時間接続しないと、端末が「Account disable」と出て、手動でログインしなければならない。例えば、夜間にサーバーの電源を切ることが多いファンドでは、このようなことが起こります。
残念ながら、いつもそうとは限りません。長時間接続しない場合、端末が「Account disable」と表示し、手動でログインする必要があります。例えば、夜間にサーバーの電源を切ることが多い財団法人では、このようなことが起こります。
以下は、「ファイル」メニュー-「取引口座に接続」-「OK」ボタンをクリックするスクリプトで、端末が最後に認証された取引口座に接続するようにします。
すべてうまくいったら、コードをきれいにして、KodoBaseに投稿します。
MQL4です。StringToCharArray()の 説明には「unicodeからansiに変換された文字列をuchar型の配列の指定された場所にシンボリックにコピーする」と書かれています。記述に間違いがあるような気がします。この関数を使うと、文字を文字コードに対応する数値に変換するだけで、文字コードに依存した変換ができます(関数は5つのパラメータを持っています)。つまり、ここでは「...unicodeからansiへの...」という変換はありません。間違っていたら訂正してください。
例えば、Ansiの€記号のコードを見つける必要がある場合、第5パラメータにCP_ACPと記述することになります。UTF7 の場合は、CP_UTF7 となります。Unicodeの場合は、StringToShortArray() (スクリプト参照)を使っています。
コンパイラのバグです。
しかし、F2関数を削除すると、正常にコンパイルされます。
コンパイラーエラーです。