设为首页收藏本站

 找回密码
 注册
查看: 6825|回复: 18
打印 上一主题 下一主题

自动换月代码实现问题。 [复制链接]

Rank: 8Rank: 8

精华
1
UID
64747
积分
782
帖子
192
主题
33
阅读权限
200
注册时间
2011-9-10
最后登录
2016-3-22
跳转到指定楼层
1#
发表于 2012-2-9 08:53:45 |只看该作者 |正序浏览
Data0为TA连续,Data1为TA01合约,Data2为TA05合约,Data3为TA09合约。
用Data0产生交易信号,对应当前主力合约发出委托,代码如下。
  1. Params
  2.         Numeric Lots(1);
  3.         Numeric Slippage(0);
  4.         Numeric Length1(10);
  5.         Numeric Length2(20);
  6.        
  7. Vars
  8.         NumericSeries EMa1;
  9.         NumericSeries EMa2;
  10. Begin
  11.         EMa1=XAverage(Close, Length1);
  12.         EMa2=XAverage(Close, Length2);
  13.         PlotNumeric("EMa1",EMa1);
  14.         PlotNumeric("EMa2",EMa2);
  15.         If(CrossOver(EMa1[1],EMa2[1]))
  16.         {
  17.                 If(Data0.Vol==Data1.Vol)
  18.                 {
  19.                         Data1.Buy(Lots,Data1.Open+Slippage);
  20.                 }
  21.                 If(Data0.Vol==Data2.Vol)
  22.                 {
  23.                         Data2.Buy(Lots,Data2.Open+Slippage);
  24.                 }
  25.                 If(Data0.Vol==Data3.Vol)
  26.                 {
  27.                         Data3.Buy(Lots,Data3.Open+Slippage);
  28.                 }
  29.         }
  30.         If(CrossUnder(EMa1[1],EMa2[1]))
  31.         {
  32.                 If(Data1.MarketPosition==1)
  33.                 {
  34.                         Data1.Sell(Lots,Data1.Open-Slippage);
  35.                 }
  36.                 If(Data2.MarketPosition==1)
  37.                 {
  38.                         Data2.Sell(Lots,Data2.Open-Slippage);
  39.                 }
  40.                 If(Data3.MarketPosition==1)
  41.                 {
  42.                         Data3.Sell(Lots,Data3.Open-Slippage);
  43.                 }
  44.         }

  45. End
复制代码


盘中测试当前主力合约05月份正常开平仓,但09合约每次开仓信号跟随开仓,但不跟随平仓。
附件: 你需要登录才可以下载或查看附件。没有帐号?注册
量化交易群:186100158
QQ:55297268

Rank: 1

精华
0
UID
248321
积分
26
帖子
19
主题
7
阅读权限
10
注册时间
2017-3-8
最后登录
2019-3-8
19#
发表于 2017-9-13 00:27:03 |只看该作者

使用道具 举报

Rank: 5Rank: 5

精华
1
UID
42516
积分
1239
帖子
264
主题
31
阅读权限
60
注册时间
2011-5-25
最后登录
2014-9-23
18#
发表于 2012-7-31 12:47:01 |只看该作者
pepsi 发表于 2012-7-27 14:04
有好方法,欢迎来晒一晒

没有什么好的方法,受您的方法启发很大,就是不太放心自动去换月。没有测试条件

如果需要做得更细一些可以If(Data0.Vol==Datax.Vol  && Data0.High==Datax.High && Data0.Low==Datax.Low)

这样不会因为成交量的误差而造成开平错合约

我测试过实时地对比连续合约与主力合约的High、Low,发现有时连续和主力合约会出现瞬时的不一致,不确定是否会影响自动换月交易

不知道您长期测试过效果没有,如何?

使用道具 举报

Rank: 8Rank: 8

精华
1
UID
64747
积分
782
帖子
192
主题
33
阅读权限
200
注册时间
2011-9-10
最后登录
2016-3-22
17#
发表于 2012-7-27 14:04:02 |只看该作者
有好方法,欢迎来晒一晒

使用道具 举报

Rank: 5Rank: 5

精华
1
UID
42516
积分
1239
帖子
264
主题
31
阅读权限
60
注册时间
2011-5-25
最后登录
2014-9-23
16#
发表于 2012-7-27 12:33:54 |只看该作者
pepsi 发表于 2012-4-12 15:20
代码未作任何修改,在4.2.5版本中做回测,达到理想效果,实盘表现还未知。 ...

最近在研究这方面问题,如果用于自动化交易的话,要实现无人值守换月是必须自动完成的。

使用道具 举报

Rank: 8Rank: 8

精华
1
UID
64747
积分
782
帖子
192
主题
33
阅读权限
200
注册时间
2011-9-10
最后登录
2016-3-22
15#
发表于 2012-4-12 15:20:18 |只看该作者
代码未作任何修改,在4.2.5版本中做回测,达到理想效果,实盘表现还未知。

使用道具 举报

初级操盘手

懒惰的投机者

Rank: 8Rank: 8

精华
0
UID
68068
积分
6702
帖子
483
主题
31
阅读权限
100
注册时间
2011-9-27
最后登录
2022-2-18
14#
发表于 2012-4-12 11:24:28 |只看该作者
pepsi 发表于 2012-2-11 14:30
回复 3# 读书山林
代码写的看上去没有逻辑错误,但是还是出现这种情况,怀疑是TB运行机制导致的,最终解释 ...

怎么会没有逻辑错误呢,穿越怎么用在了IF里面。

使用道具 举报

Rank: 8Rank: 8

精华
1
UID
64747
积分
782
帖子
192
主题
33
阅读权限
200
注册时间
2011-9-10
最后登录
2016-3-22
13#
发表于 2012-2-17 09:19:27 |只看该作者
回复 12# fybhwsx
有道理

使用道具 举报

Rank: 9Rank: 9Rank: 9

精华
0
UID
4790
积分
16241
帖子
401
主题
73
阅读权限
150
注册时间
2009-7-5
最后登录
2020-1-2
12#
发表于 2012-2-13 20:00:35 |只看该作者
我找到了函数OpenInt;
同时用OpenInt和Vol来判断是否换月可能更精准。其实只用一个来判断就可以了,两个合 ...
pepsi 发表于 2012-2-13 09:41


交替时成交量相等的概率不大,关键是老主力合约的成交量又时会重新超过新主力合约。以连续5天成交量保持最大的合约为条件来判断其为主力合约,应该比较稳妥吧。

使用道具 举报

Rank: 4

精华
0
UID
23646
积分
442
帖子
64
主题
13
阅读权限
50
注册时间
2011-1-10
最后登录
2014-2-11
11#
发表于 2012-2-13 17:04:57 |只看该作者
呵呵,等待你的好消息啊,

使用道具 举报

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

bottom

静态版|手机版|联系我们|交易开拓者 ( 粤ICP备07044698   

GMT+8, 2024-5-3 17:57

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部