: | : | :期货量化学习 | :期货量化 |
返回列表 发帖

单均线交易系统程式码部分2【.cpp文件】之bar进bar出范例

单均线交易系统程式码部分2【.cpp文件】之bar进bar出范例

说明:

改进场景:最近我的电脑要频繁的开关重启,比方说我现在测试阶段,早晨8.00左右开电脑,晚上 11点夜盘结束后关电脑,而原来的策略关系统后,再开时就默认持仓是0了,需要重新开始初始化交易策略。我现在要做的就是在交易参数里面设置一个变量(cscc,初始持仓,也就是我昨天有没平的持仓,当是0时意思就是没有持仓,3时就是持有3手多单,-3时就是持有3手空单。我把这个参数写进去,在交易面板上面配置里面写上,点运行时就默认按这个持仓跑。就能接上昨天的交易继续跑了。)

初始持仓,0没有持仓,N持有多仓N手,-N持有空仓N手。

论坛官方微信、群(期货热点、量化探讨、开户与绑定实盘)
 
期货论坛 - 版权/免责声明   1.本站发布源码(包括函数、指标、策略等)均属开放源码,用意在于让使用者学习程序化语法撰写,使用者可以任意修改语法內容并调整参数。仅限用于个人学习使用,请勿转载、滥用,严禁私自连接实盘账户交易
  2.本站发布资讯(包括文章、视频、历史记录、教材、评论、资讯、交易方案等)均系转载自网络主流媒体,内容仅为作者当日个人观点,本网转载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。本网不对该类信息或数据做任何保证。不对您构成任何投资建议,不能依靠信息而取代自身独立判断,不对因使用本篇文章所诉信息或观点等导致的损失承担任何责任。
  3.本站发布资源(包括书籍、杂志、文档、软件等)均从互联网搜索而来,仅供个人免费交流学习,不可用作商业用途,本站不对显示的内容承担任何责任。请在下载后24小时内删除。如果喜欢,请购买正版,谢谢合作!
  4.龙听期货论坛原创文章属本网版权作品,转载须注明来源“龙听期货论坛”,违者本网将保留追究其相关法律责任的权力。本论坛除发布原创文章外,亦致力于优秀财经文章的交流分享,部分文章推送时若未能及时与原作者取得联系并涉及版权问题时,请及时联系删除。联系方式:http://www.qhlt.cn/thread-262-1-1.html
如何访问权限为100/255贴子:/thread-37840-1-1.html;注册后仍无法回复:/thread-23-1-1.html;微信/QQ群:/thread-262-1-1.html;网盘链接失效解决办法:/thread-93307-1-1.html

程式码部分

文件名称:test.cpp
本帖隐藏的内容需要回复才可以浏览
如何访问权限为100/255贴子:/thread-37840-1-1.html;注册后仍无法回复:/thread-23-1-1.html;微信/QQ群:/thread-262-1-1.html;网盘链接失效解决办法:/thread-93307-1-1.html

TOP

改动部分:
  1.         //交易系统参数设置开始*******************************************************************************************************
  2.         //Name 参数名, Value 默认值, Explain 参数说明, tend 表示一个参数结束
  3.         t.Name = "均线周期"; t.Value = "20"; t.Explain = "均线周期参数,默认20"; tend(t);
  4.         t.Name = "单笔风险"; t.Value = "1"; t.Explain = "交易手数,默认1手"; tend(t);
  5.         t.Name = "滑点值"; t.Value = "1"; t.Explain = "每次交易滑点值"; tend(t);
  6.         t.Name = "优先平仓"; t.Value = "0"; t.Explain = "优先平仓,1优先平今,0优先平昨"; tend(t);
  7.         t.Name = "撤单时间"; t.Value = "5"; t.Explain = "委托后多少秒检查一下是否有未成交,小于0 不撤单"; tend(t);
  8.         t.Name = "初始持仓"; t.Value = "0"; t.Explain = "初始持仓,0没有持仓,N持有多仓N手,-N持有空仓N手"; tend(t);
  9.         t.Name = "策略说明"; t.Value = "0"; t.Explain = "价格超越均线入场开多,跌破均线入场做空,收盘价反向穿越均线出场,"; tend(t);
  10.         //交易系统参数设置结束*******************************************************************************************************
  11.         end();
复制代码
增加了这个:
  1.         t.Name = "初始持仓"; t.Value = "0"; t.Explain = "初始持仓,0没有持仓,N持有多仓N手,-N持有空仓N手"; tend(t);
复制代码
  1.         //交易系统参数变量传递开始*******************************************************************************************************
  2.         jxzq = atoi(parm["均线周期"].Value.c_str());
  3.         dbfx = atof(parm["单笔风险"].Value.c_str());
  4.         hd = atoi(parm["滑点值"].Value.c_str());
  5.         yxpc = atoi(parm["优先平仓"].Value.c_str());
  6.         jg = atoi(parm["撤单时间"].Value.c_str());
  7.         cscc = atoi(parm["初始持仓"].Value.c_str());
  8.         //交易系统参数变量传递结束*******************************************************************************************************
复制代码
增加了:
  1.         cscc = atoi(parm["初始持仓"].Value.c_str());
复制代码
同时为了平仓时平对手数和方向,我将持仓和方向调用也做了调整:
  1.                 fx = atoi(wj[0].c_str());
  2.                 ss = atoi(wj[1].c_str());
复制代码
将原来的直接调用,改为做了一个判断:
  1. if (cscc != 0)
  2.         {
  3.                 if (cscc > 0)
  4.                 {
  5.                         fx = 1;
  6.                         ss = cscc;
  7.                         cscc = 0;
  8.                 }
  9.                 else if(cscc<0)
  10.                 {
  11.                         fx = -1;
  12.                         ss = -cscc;
  13.                         cscc = 0;
  14.                 }
  15.         }
  16.         else
  17.         {
  18.                 fx = atoi(wj[0].c_str());
  19.                 ss = atoi(wj[1].c_str());
  20.         }
复制代码
即首先判断cscc这个变量是不是0,默认是0的,要是不是0那么就再判断是不是大于0,要是大于0那么持仓方向fx = 1 单,交易数量ss=cscc,然后让cscc = 0,这样它就在点运行后只运行一次。不影响后面的程序化运行。要是监控到cscc=0就按默认的运行即可。
如何访问权限为100/255贴子:/thread-37840-1-1.html;注册后仍无法回复:/thread-23-1-1.html;微信/QQ群:/thread-262-1-1.html;网盘链接失效解决办法:/thread-93307-1-1.html

TOP

当然也需要在头文件里面加上变量cscc。
  1. private:
  2.         int numod = 0;
  3.         HWND hwnd;
  4.         string sName;
  5.         string sPeriod;
  6.         string sInst;

  7.         string t1, t2, t3, t4, t0;
  8.         int jxzq, jyfx, num, hd, yxpc, jg, fx, ss, tm,cscc;
  9.         double jx, zg, zd, ma, rcjg, dbfx, ccjg;
复制代码
加到这里面即可
参考:http://www.qhlt.cn/thread-159319-1-1.html
如何访问权限为100/255贴子:/thread-37840-1-1.html;注册后仍无法回复:/thread-23-1-1.html;微信/QQ群:/thread-262-1-1.html;网盘链接失效解决办法:/thread-93307-1-1.html

TOP

返回列表