设为首页收藏本站

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

棘手问题,请各位版主帮忙 [复制链接]

初级大户

公安部御准--超级警察 ...

Rank: 5Rank: 5

精华
0
UID
690
积分
1069
帖子
188
主题
59
阅读权限
60
注册时间
2007-11-6
最后登录
2023-1-26
跳转到指定楼层
1#
发表于 2008-2-29 22:24:47 |只看该作者 |倒序浏览

由于直接公布我系统的代码不太合适,因此我将我所使用的系统做了简化,大致如下:
我认为市场就极短期而言是上下波动的,因此价格在每个BAR的OPEN基础上上行一定幅度我就卖空,下行一定幅度就平仓并买入

假设我的交易规则如下:
如 当前价格-open>10点  则卖出
如 当前价格-open<10点  则买入

我的交易周期是15min,那么根据上述规则,产生的代码如下:
  1. 。。。。。。。
  2. 。。。。。。。
  3. sellprice=Open+10;
  4. buyprice=Open-10;
  5. If(Low<=buyprice)
  6. {
  7.         If(MarketPosition==0)
  8.                  Buy(1,buyprice);
  9.         If(MarketPosition==-1)
  10.         {
  11.          BuyToCover(1,buyprice);
  12.          Buy(1,buyprice);
  13.         }
  14. }
  15. If(High>=sellprice)
  16. {
  17.         If(MarketPosition==0)
  18.                  SellShort(1,sellprice);
  19.         If(MarketPosition==1)
  20.         {
  21.          Sell(1,sellprice);
  22.          SellShort(1,sellprice);
  23.          }
  24. }
  25. 。。。。。。。。。。。
复制代码

这样的代码在历史测试中,如果当前BAR的波动幅度足够大(比如开盘的15分钟),那么系统就可以在单个bar完成开仓、平仓、再反手开仓的过程。

但在历史测试中,由于我的买入代码是写在前面的,因此系统总是默认我是先买入、后平仓、然后反手做空。
然而,实际情况并不一定如此。
在开盘的15分钟内,价格完全有可能先上扬超过10点,然后回落20点。这时,根据系统就应该是先卖出,后平仓,然后反手作多。

这样,问题就来了:
比如今天,市场在开盘时上扬10点,那么系统卖空1手;然后在回落20点后我获利平仓,并反手作多。如果之后,我重新登陆TB,并在同一图表上启用该系统的话,系统会告诉交易账户现在持有的是空仓,因为超级图表上的信号是交易系统根据历史测试得出的,与交易账户的实际持仓不一样。这时系统会自动平掉多仓,并转为空仓,造成亏损。

我想要解决这个问题
1。一定要有办法在历史测试15min bar上区分价格是先达到卖点,还是先到买点;
2。永远不在交易中重新登陆TB(我也不想这样,但由于这样那样的不稳定,我在模拟交易这几天重新登陆了好几次,也因此才会发现上述问题的)

请老大门给我想象办法。
我知道。。。。。。我很帅!!

Rank: 10Rank: 10Rank: 10

精华
11
UID
1
积分
25127
帖子
6291
主题
149
阅读权限
255
注册时间
2007-7-20
最后登录
2024-4-22
2#
发表于 2008-3-1 09:21:41 |只看该作者
问题1、除非用全局变量,或者是换到更小的周期,否则无法解决。
问题2、用全局变量的话也不能重新启动。

所以,我的建议是,换到更小的周期,比如1Min,10S,甚至Tick。
交易开拓者 - 期货程序化与量化系统自动交易领航者

网站已支持在线开通模拟账户功能

使用道具 举报

初级大户

公安部御准--超级警察 ...

Rank: 5Rank: 5

精华
0
UID
690
积分
1069
帖子
188
主题
59
阅读权限
60
注册时间
2007-11-6
最后登录
2023-1-26
3#
发表于 2008-3-1 10:25:08 |只看该作者
用全局变量是没区别的,在历史测试中还是与交易账户不一样.
换到更小的周期的话,代码将非常复杂.
我知道。。。。。。我很帅!!

使用道具 举报

Rank: 7Rank: 7Rank: 7

精华
1
UID
727
积分
3770
帖子
537
主题
55
阅读权限
80
注册时间
2007-11-11
最后登录
2015-4-8
4#
发表于 2008-3-2 11:05:15 |只看该作者
用10S图完全可以解决你的问题,先定BAR间隔,无持仓时每一间隔用全局变量取一次OPEN,如果条件成立开仓,则不再取数,不是这样的吗??
TradeBlazer交流群33647992。

使用道具 举报

初级大户

公安部御准--超级警察 ...

Rank: 5Rank: 5

精华
0
UID
690
积分
1069
帖子
188
主题
59
阅读权限
60
注册时间
2007-11-6
最后登录
2023-1-26
5#
发表于 2008-3-2 14:03:48 |只看该作者
原帖由 孤舟骑浪 于 2008-3-2 11:05 发表
用10S图完全可以解决你的问题,先定BAR间隔,无持仓时每一间隔用全局变量取一次OPEN,如果条件成立开仓,则不再取数,不是这样的吗??

bar间隔如何定??能否根据上述代码,写个改进的代码,谢了
我知道。。。。。。我很帅!!

使用道具 举报

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

bottom

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

GMT+8, 2024-5-12 05:33

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部