文章 "在 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:是的,我自己解压缩并复制的。我应该用不同的方法吗?我现在就是这样:全部正确。 在优化开始时,显示智能交易系统离开图表前创建的图形对象列表(Ctrl + B)。 Denis Kirichenko 2018.02.26 17:01 #23 Anatoli Kazharski:这就对了。在优化开始时离开图表之前,显示智能交易系统创建的图形对象列表(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 Files\MetaTrader 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) { //--- 如果程序类型为 "脚本",则退出 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 我在另一个终端上进行了测试,所有文件都存储在 %AppData\Roaming\MetaQuotes\Terminal\... 文件夹中。 同样的错误。某个地方出错了。 1234567 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
@Dennis Kirichenko 你自己解压了EasyAndFastGUI.zip 压缩包 中的图片吗?我不得不把所有图片都压缩成 ZIP 文件,目前没有其他选择。
是的,我自己解压缩并复制了它们。你是否应该换一种方法?
我现在就是这样:
是的,我自己解压缩并复制的。我应该用不同的方法吗?
我现在就是这样:
全部正确。
在优化开始时,显示智能交易系统离开图表前创建的图形对象列表(Ctrl + B)。
这就对了。
在优化开始时离开图表之前,显示智能交易系统创建的图形对象列表(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 Files\MetaTrader 5\MQL5" ?
相应地,资源位于 C:\Program Files/ MetaTrader 5/ MetaTrader 5/ MQL5/Images。
也许在访问图像时出现了问题?尽管终端是以管理员身份运行的。
我不知道。请尝试调查这一点。
表单代码中的资源是这样写的:
是的,阿纳托利,我发现了这个问题。
在您为文章提供的代码示例下载文件中,MacdSampleWithFrames.mq5 文件与MovingAverageWithFrames.mq5 文件的 代码 内容完全相同。
请更正。谢谢。
我在另一个终端上进行了测试,所有文件都存储在 %AppData\Roaming\MetaQuotes\Terminal\... 文件夹中。
同样的错误。某个地方出错了。