記事"MetaTrader 5における取引戦略最適化の可視化"についてのディスカッション - ページ 3 1234567 新しいコメント Denis Kirichenko 2018.02.26 12:04 #21 Rashid Umarov:Dennis Kirichenko EasyAndFastGUI.zip アーカイブから自分で解凍しましたか?すべての写真をZIPファイルとして添付しなければなりませんでした。はい、自分で解凍してコピーしました。もっと違う方法がありましたか? 今はこんな感じです: Anatoli Kazharski 2018.02.26 13:35 #22 Dennis Kirichenko:はい、自分で解凍してコピーしました。こうすればよかった?今はこんな感じです:すべて正しい。 Expert Advisorが作成したグラフィカル・オブジェクトのリストを、最適化の開始時にチャートを離れる前に表示します(Ctrl + B)。 Denis Kirichenko 2018.02.26 17:01 #23 Anatoli Kazharski:その通りだ。最適化開始時にチャートを離れる前に、Expert Advisorが作成したグラフィカル・オブジェクトのリストを表示します(Ctrl + B)。念のため、オブジェクトは非表示になっている。リストに表示するには、「すべて」ボタンを押す。 Anatoli Kazharski 2018.02.26 17:12 #24 Dennis Kirichenko:...つまり、何らかの理由でボタンを描画するオブジェクトが作成されていないのだ: 標準ライブラリの CCanvas クラスのこのメソッドに問題があります: //+------------------------------------------------------------------+ //| ビットマップ・リソースで新しいオブジェクトをアタッチする。 //+------------------------------------------------------------------+ bool CCanvas::Attach(const long chart_id,const string objname,ENUM_COLOR_FORMAT clrfmt=COLOR_FORMAT_XRGB_NOALPHA) { if(OBJ_BITMAP_LABEL==ObjectGetInteger(chart_id,objname,OBJPROP_TYPE)) { string rcname=ObjectGetString(chart_id,objname,OBJPROP_BMPFILE); rcname=StringSubstr(rcname,StringFind(rcname,"::")); if(ResourceReadImage(rcname,m_pixels,m_width,m_height)) { m_objname=objname; m_rcname=rcname; m_format=clrfmt; m_objtype=OBJ_BITMAP_LABEL; //--- 成功 return(true); } } //--- 失敗 return(false); } //--- そして、なぜこの問題があるユーザーには表示され、他のユーザーには表示されないのかが不明です。 このクラスに何か変更を加えましたか? Denis Kirichenko 2018.02.26 17:41 #25 ボタンはそこにある。 SBを編集したことはない。 CCanvas::Attach() クラスは変更していない。ここにある: //+------------------------------------------------------------------+ //| ビットマップ・リソースで新しいオブジェクトをアタッチする。 //+------------------------------------------------------------------+ bool CCanvas::Attach(const long chart_id,const string objname,ENUM_COLOR_FORMAT clrfmt=COLOR_FORMAT_XRGB_NOALPHA) { if(OBJ_BITMAP_LABEL==ObjectGetInteger(chart_id,objname,OBJPROP_TYPE)) { string rcname=ObjectGetString(chart_id,objname,OBJPROP_BMPFILE); rcname=StringSubstr(rcname,StringFind(rcname,"::")); if(ResourceReadImage(rcname,m_pixels,m_width,m_height)) { m_objname=objname; m_rcname=rcname; m_format=clrfmt; m_objtype=OBJ_BITMAP_LABEL; //--- 成功 return(true); } } //--- 失敗 return(false); } Anatoli Kazharski 2018.02.26 17:56 #26 Dennis Kirichenko:ボタンがある。 私はSBを編集することはない。CCanvas::Attach() クラスは変更していない。これがそれです:この場合、私はあなたを助けることができません。 KR 0 12:44:52.304 MacdSampleWithFrames (EURUSD,H1) CElement::CreateCanvas > Не удалось присоединить холст для рисования к графику: 4016 //--- エラー4016 の 意味は err_resource_not_found4016この名前のリソースはEX5で見つかりませんでした。 //--- この記事の例をテストした人がいたら、結果を教えてください。この問題を経験した人はいますか? Denis Kirichenko 2018.02.26 18:00 #27 ルートフォルダが「C:/Program Files / MetaTrader 5 / MQL5」 だからでしょうか? 従って、リソースはC:¥Program Files¥MetaTrader 5¥MQL5¥Images にあります。 画像へのアクセスに問題があるのでしょうか?ターミナルは管理者として起動していますが。 Anatoli Kazharski 2018.02.26 18:06 #28 Dennis Kirichenko:ルートフォルダが"C:◆Program FilesMetaTrader 5◆MQL5 "の ようになっているからでしょうか?従って、リソースはC:˶Program Files/ MetaTrader 5/ MetaTrader 5/ MQL5/Images にあります。画像へのアクセスに問題があるのでしょうか?ターミナルは管理者として動作していますが。わかりません。この点を調査してみてください。 フォームのコードのリソースはこのように書かれています: //+------------------------------------------------------------------+ //|| フォームにボタンを作成する| //+------------------------------------------------------------------+ #resource "\\Images\\EasyAndFastGUI\\Controls\\close_black.bmp" #resource "\\Images\\EasyAndFastGUI\\Controls\\close_white.bmp" #resource "\\Images\\EasyAndFastGUI\\Controls\\full_screen.bmp" #resource "\\Images\\EasyAndFastGUI\\Controls\\minimize_to_window.bmp" #resource "\\Images\\EasyAndFastGUI\\Controls\\up_thin_white.bmp" #resource "\\Images\\EasyAndFastGUI\\Controls\\down_thin_white.bmp" #resource "\\Images\\EasyAndFastGUI\\Controls\\help.bmp" //--- bool CWindow::CreateButtons(void) { //--- プログラムのタイプが "script "の場合は、終了する。 if(CElementBase::ProgramType()==PROGRAM_SCRIPT) return(true); //--- カウント、サイズ、数量 int i=0,x_size=20; int buttons_total=4; //--- ファイルパス string icon_file=""; //--- キャプチャ領域での例外 m_right_limit=0; //--- CButton *button_obj=NULL; //--- for(int b=0; b<buttons_total; b++) { //--- if(b==0) { CElementBase::LastId(LastId()-1); m_button_close.MainPointer(this); if(!m_close_button) continue; //--- button_obj=::GetPointer(m_button_close); icon_file ="Images\\EasyAndFastGUI\\Controls\\close_white.bmp"; } else if(b==1) { m_button_fullscreen.MainPointer(this); //--- (1)ボタンが有効でないか、(2)このダイアログウィンドウが有効でない場合は終了する。 if(!m_fullscreen_button || m_window_type==W_DIALOG) continue; //--- button_obj=::GetPointer(m_button_fullscreen); icon_file="Images\\EasyAndFastGUI\\Controls\\full_screen.bmp"; } else if(b==2) { m_button_collapse.MainPointer(this); //--- (1)ボタンが有効でないか、(2)このダイアログウィンドウが有効でない場合は終了する。 if(!m_collapse_button || m_window_type==W_DIALOG) continue; //--- button_obj=::GetPointer(m_button_collapse); if(m_is_minimized) icon_file="Images\\EasyAndFastGUI\\Controls\\down_thin_white.bmp"; else icon_file="Images\\EasyAndFastGUI\\Controls\\up_thin_white.bmp"; } else if(b==3) { m_button_tooltip.MainPointer(this); //--- (1)ボタンが有効でないか、(2)このダイアログウィンドウが有効でない場合は終了する。 if(!m_tooltips_button || m_window_type==W_DIALOG) continue; //--- button_obj=::GetPointer(m_button_tooltip); icon_file ="Images\\EasyAndFastGUI\\Controls\\help.bmp"; } //--- プロパティ button_obj.Index(i); button_obj.XSize(x_size); button_obj.YSize(x_size); button_obj.IconXGap(2); button_obj.IconYGap(2); button_obj.BackColor(m_caption_color); button_obj.BackColorHover((b<1)? C'242,27,45' : C'0,150,245'); button_obj.BackColorPressed((b<1)? C'149,68,116' : C'0,160,255'); button_obj.BackColorLocked(m_caption_color_locked); button_obj.BorderColor(m_caption_color); button_obj.BorderColorHover(m_caption_color); button_obj.BorderColorLocked(m_caption_color_locked); button_obj.BorderColorPressed(m_caption_color); button_obj.IconFile(icon_file); button_obj.IconFileLocked(icon_file); if(b==3) { button_obj.TwoState(true); button_obj.IconFilePressed(icon_file); button_obj.IconFilePressedLocked(icon_file); } button_obj.AnchorRightWindowSide(true); //--- 次のボタンのインデント計算 m_right_limit+=x_size-((i<3)? 0 : 1); i++; //--- 要素を作成する if(!button_obj.CreateButton("",m_right_limit,0)) return(false); //--- 配列に要素を追加する CElement::AddToArray(button_obj); } //--- return(true); } Denis Kirichenko 2018.02.26 18:21 #29 はい、アナトリー、私はこれを発見しました。 記事へのコードサンプルのうち、ダウンロードしたファイルのMacdSampleWithFrames.mq5 ファイルが、MovingAverageWithFrames.mq5 ファイルと コード 内容が同じです。 修正をお願いします。ありがとうございました。 Denis Kirichenko 2018.02.26 18:27 #30 すべてのファイルが%AppDataRoaming\MetaQuotes\Terminal...フォルダーに保存されている別のターミナルでテストしました。 同じエラー。どこかが間違っている。 1234567 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
Dennis Kirichenko EasyAndFastGUI.zip アーカイブから自分で解凍しましたか?すべての写真をZIPファイルとして添付しなければなりませんでした。
はい、自分で解凍してコピーしました。もっと違う方法がありましたか?
今はこんな感じです:
はい、自分で解凍してコピーしました。こうすればよかった?
今はこんな感じです:
すべて正しい。
Expert Advisorが作成したグラフィカル・オブジェクトのリストを、最適化の開始時にチャートを離れる前に表示します(Ctrl + B)。
その通りだ。
最適化開始時にチャートを離れる前に、Expert Advisorが作成したグラフィカル・オブジェクトのリストを表示します(Ctrl + B)。
念のため、オブジェクトは非表示になっている。リストに表示するには、「すべて」ボタンを押す。
...
つまり、何らかの理由でボタンを描画するオブジェクトが作成されていないのだ:
標準ライブラリの CCanvas クラスのこのメソッドに問題があります:
//---
そして、なぜこの問題があるユーザーには表示され、他のユーザーには表示されないのかが不明です。
このクラスに何か変更を加えましたか?
ボタンはそこにある。
SBを編集したことはない。
CCanvas::Attach() クラスは変更していない。ここにある:
ボタンがある。
私はSBを編集することはない。
CCanvas::Attach() クラスは変更していない。これがそれです:
この場合、私はあなたを助けることができません。
//---
エラー4016 の 意味は
err_resource_not_found
4016
この名前のリソースはEX5で見つかりませんでした。
//---
この記事の例をテストした人がいたら、結果を教えてください。この問題を経験した人はいますか?
ルートフォルダが「C:/Program Files / MetaTrader 5 / MQL5」 だからでしょうか?
従って、リソースはC:¥Program Files¥MetaTrader 5¥MQL5¥Images にあります。
画像へのアクセスに問題があるのでしょうか?ターミナルは管理者として起動していますが。
ルートフォルダが"C:◆Program FilesMetaTrader 5◆MQL5 "の ようになっているからでしょうか?
従って、リソースはC:˶Program Files/ MetaTrader 5/ MetaTrader 5/ MQL5/Images にあります。
画像へのアクセスに問題があるのでしょうか?ターミナルは管理者として動作していますが。
わかりません。この点を調査してみてください。
フォームのコードのリソースはこのように書かれています:
はい、アナトリー、私はこれを発見しました。
記事へのコードサンプルのうち、ダウンロードしたファイルのMacdSampleWithFrames.mq5 ファイルが、MovingAverageWithFrames.mq5 ファイルと コード 内容が同じです。
修正をお願いします。ありがとうございました。
すべてのファイルが%AppDataRoaming\MetaQuotes\Terminal...フォルダーに保存されている別のターミナルでテストしました。
同じエラー。どこかが間違っている。