私募

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz

期货量化:赫兹量化中研究多币种的交易信号3--引入搜索算法

[复制链接]
发表于 2023-11-2 08:45:02 | 显示全部楼层 |阅读模式
打开项目,找到 CProgram 基类,并在其私密部分中添加两个方法。 该方法将负责加载和保存品种模板。   bool              SaveSymbolSet(string file_name);   bool              LoadSymbolSet(string file_name);以下是这些方法如何被实现的。 //+------------------------------------------------------------------+//| Save template to a file                                          |//+------------------------------------------------------------------+bool CProgram::SaveSymbolSet(string file_name){   if(file_name=="")   {      MessageBox("Select the template name to record","Signal Monitor");      return(false);   }   int h=FileOpen("Signal Monitor\\"+file_name+".bin",FILE_WRITE|FILE_BIN);   if(h==INVALID_HANDLE)   {      MessageBox("Failed to create a configuration file","Signal Monitor");      return(false);   }   else      MessageBox("The "+file_name+" configuration has been successfully saved","Signal Monitor");//--- Save the selection of timeframes and patterns   for(int i=0; i<m_all_symbols; i++)      m_save.tf=m_checkbox.IsPressed();//---   FileWriteStruct(h,m_save);   FileClose(h);//---   return(true);}//+------------------------------------------------------------------+//| Load data to a panel                                             |//+------------------------------------------------------------------+bool CProgram::LoadSymbolSet(string file_name){   if(file_name=="")   {      MessageBox("Select the template name to load","Signal Monitor");      return(false);   }   int h=FileOpen("Signal Monitor\\"+file_name+".bin",FILE_READ|FILE_BIN);   if(h==INVALID_HANDLE)   {      MessageBox("Configuration "+file_name+" not found","Signal Monitor");      return(false);   }   ZeroMemory(m_save);   FileReadStruct(h,m_save);//--- Loading timeframes   for(int i=0; i<m_all_symbols; i++)   {      m_checkbox.IsPressed(m_save.tf);      m_checkbox.Update(true);   }//---   FileClose(h);//---   return(true);}不过,若尝试立即编译项目,则将触发与 m_save 变量有关的错误。 该结构含有一个名为 tf 的布尔类型参数。 它可记住用户所选的文件。 故需在应用类中创建此结构,并将其实例添加到基类。//+------------------------------------------------------------------+//| Class for creating the application                               |//+------------------------------------------------------------------+struct SAVE{   bool     tf[100];};class CProgram : public CWndEvents{...        SAVE            m_save;转到 OnEvent(),进入与按钮点击事件相关的部分,并在“第一步”条件中添加以下代码:         //--- Save the template         if(lparam==m_save_button.Id())         {            SaveSymbolSet(m_text_edit.GetValue());         }         //--- Load the template         if(lparam==m_load_button.Id())         {            LoadSymbolSet(m_text_edit.GetValue());         }另外,实现上述按钮的热键用法。 以相同的方法,为按键事件添加检查,并针对所用键添加代码。//--- Key press   if(id==CHARTEVENT_KEYDOWN)   {      if(m_current_step==1)      {         short sym=TranslateKey((int)lparam);         //--- if the entered character is successfully converted to Unicode         if(sym>0)         {            if(ShortToString(sym)=="l" || ShortToString(sym)=="д")               LoadSymbolSet(m_text_edit.GetValue());            if(ShortToString(sym)=="s" || ShortToString(sym)=="ы")               SaveSymbolSet(m_text_edit.GetValue());         }      }   }编译项目。 若成功编译将产生以下结果。
/ e% d5 H5 H" Y/ S% k, R  h3 D
. L& s' \4 Z+ X: a% b) h 期货量化:赫兹量化中研究多币种的交易信号3--引入搜索算法-1.jpg 添加图片注释,不超过 140 字(可选)
3 R8 R- M% D; A& j图例 2 保存和加载用户模板添加和编辑交易信号现在,转到应用程序的主要部分,该部分负责创建和编辑交易信号,以及进一步在监视器中跟踪它们。 信号创建和编辑的摸样如此这般。
" N  g$ L) e9 L) l. O8 `$ M* q" M8 Y1 A1 B: d6 F
期货量化:赫兹量化中研究多币种的交易信号3--引入搜索算法-2.jpg 添加图片注释,不超过 140 字(可选)  a" @8 k+ J& @( W/ v
图例 3 信号创建和编辑窗口。在当前阶段,该窗口显示各种控制参数的一组 GUI 元素。 然而,这些设置尚未在任何地方用到。 首先在界面上添加两个按钮。 它们是添加/保存交易信号。 另一个是取消创建/编辑按钮。 打开 Program.mqh ,并将这两个按钮的实现方法添加到基类中:bool              CreateButton3(CButton &button,string text,const int x_gap,const int y_gap);两个 CButton 按钮的实例:   CButton           m_new_signal;   CButton           m_cancel_button;
http://www.simu001.cn/x283254x1x1.html
最好的私募社区 | 第一私募论坛 | http://www.simu001.cn

精彩推荐

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Archiver| ( 桂ICP备12001440号-3 )|网站地图

GMT+8, 2024-11-29 06:38 , Processed in 0.358289 second(s), 35 queries .

Powered by www.simu001.cn X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表