设为首页收藏本站

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

关于反复及连续开仓的解决办法 [复制链接]

Rank: 7Rank: 7Rank: 7

精华
0
UID
926
积分
4317
帖子
167
主题
33
阅读权限
80
注册时间
2007-12-15
最后登录
2016-8-9
跳转到指定楼层
1#
发表于 2008-9-9 15:09:30 |只看该作者 |倒序浏览
定义一个序列变量,记录开仓情况,开仓前判断,开仓、平仓后赋值就可以了!
但是这个不能解决开仓信号反复的问题!
Vars
     NumericSeries fcc ;//持仓标志:空仓0、持仓1
Begin
     fcc=fcc[1];
     if(fcc!=1)
     {
           if(ConditionBuy)
           {
                fcc=1;                               
                Buy(Lots,pp);                                       
          }
      }
     if(fcc==1)
     {
           if(ConditionSell)
           {
                fcc=0;                               
                Sell(Lots,pp);                                       
          }
      }

Rank: 7Rank: 7Rank: 7

精华
0
UID
926
积分
4317
帖子
167
主题
33
阅读权限
80
注册时间
2007-12-15
最后登录
2016-8-9
2#
发表于 2008-9-9 15:12:03 |只看该作者
不知道这种方式与用全局变量和内建的持仓函数,哪个效率更好?

使用道具 举报

Rank: 7Rank: 7Rank: 7

精华
0
UID
938
积分
3765
帖子
295
主题
42
阅读权限
80
注册时间
2007-12-18
最后登录
2017-9-3
3#
发表于 2008-9-9 22:45:57 |只看该作者
最稳妥的方法是,定时查询持仓,以此作为下一次操作的依据。因为在实战中,要考虑图表重起的情况。

使用道具 举报

Rank: 4

精华
0
UID
2276
积分
317
帖子
66
主题
20
阅读权限
50
注册时间
2008-9-4
最后登录
2008-10-20
4#
发表于 2008-9-10 08:45:34 |只看该作者
定时查询持仓的话,要用A函数,这样的话,你就无法回测了,所以,你可能需要写两套系统,一个专门用来回测,一个用来做BarStatus==2情况下的交易。。。
交易开拓者交流
QQ-1群:38529330(已满)
QQ-2群:24771838

使用道具 举报

Rank: 7Rank: 7Rank: 7

精华
0
UID
938
积分
3765
帖子
295
主题
42
阅读权限
80
注册时间
2007-12-18
最后登录
2017-9-3
5#
发表于 2008-9-10 15:27:26 |只看该作者
原帖由 szkpt 于 2008-9-10 08:45 发表
定时查询持仓的话,要用A函数,这样的话,你就无法回测了,所以,你可能需要写两套系统,一个专门用来回测,一个用来做BarStatus==2情况下的交易。。。 ...

没错,我就写两套。编两个框架,策略变更的话,只替换相应的模块即可。

使用道具 举报

Rank: 7Rank: 7Rank: 7

精华
0
UID
926
积分
4317
帖子
167
主题
33
阅读权限
80
注册时间
2007-12-15
最后登录
2016-8-9
6#
发表于 2008-9-10 16:59:17 |只看该作者
用我的方法不需要写两套系统!实盘和回测都可用,除非错过开仓,就会出现平仓时不足的错误!

使用道具 举报

Rank: 6Rank: 6

精华
0
UID
1891
积分
2494
帖子
100
主题
33
阅读权限
70
注册时间
2008-7-15
最后登录
2010-2-20
7#
发表于 2008-9-12 22:28:57 |只看该作者
很好,解决了我的一个小问题,但如何不错过开单呢?如果错过了开单,又怎样解决出现平仓不足的错误呢?

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
8#
发表于 2008-9-12 23:22:30 |只看该作者
错过了,要么手工补上,要么放弃该次交易,出现平仓不足不会导致什么问题的

使用道具 举报

中级操盘手

圆转如意 程序执行

Rank: 9Rank: 9Rank: 9

精华
0
UID
2303
积分
10561
帖子
618
主题
77
阅读权限
150
注册时间
2008-9-8
最后登录
2012-4-10
9#
发表于 2008-9-13 01:52:34 |只看该作者
有启发                     !
圆转如意, 胸中有丘壑, 挥洒自如,珍惜头寸,远离YY, 【史努比】 Snoopy is Dr. SLEEP

使用道具 举报

Rank: 6Rank: 6

精华
0
UID
377
积分
1827
帖子
222
主题
29
阅读权限
70
注册时间
2007-9-19
最后登录
2021-12-9
10#
发表于 2008-9-13 14:11:32 |只看该作者
解决反复开仓有很多的办法。
反复开仓的原因很简单,就是CLOSE来判断条件带来的麻烦。
再考虑到历史行情图表和实时行情交易的不同,问题就有点麻烦。
第一个办法是:
这是我最为推荐的解决方法!
不要用CLOSE。而是在判断条件时,多头用HIGH。空头用LOW。
代码容易。而且,无论是实时行情或历史行情图,代码很能兼容。不需要太多改变代码。
并且有利用目视。
第二招
延迟一根BAR。让一根BAR走完之后判断。这个办法的缺点是。假如你的触发价正好处于一根K线的中部。那么,也只能等K线走完再说,必须容忍。
第三招
持仓数量限定。
比如 以在资金大小时,限定能开几手,或只能使用百分之几的资金。需要使用帐户函数
这个办法也有缺点。 实盘行情中暂时触发了开仓条件,之后又退回去了,直至一BAR走完,也没能再次发出信号。 如此这般,历史行情图表上就没有指令信号,而实盘中已经下单。这都是常见问题。 另外,帐户函数用起来可要小心,读取帐户所需要的时间,对于日内短线,可能影响挺大。
所以,这也不是上策。
第四招
用全局变量
超级不推荐。
思路是:实盘中触发了下单条件时,先给全局变量赋个值。然后以此全局变量的值作为交易条件判断发出信号。
因为,全局变量所赋的值 不会随当前COLSE改变而消失。
可是,还是要解决一个问题:
当反复出现条件不成立时信号消失之后,又再次出现。于是全局变量又再次赋值,要防止他再次开仓,只能在给全局变量赋值上想办法。 比如:第一次成立赋值为1。然后消失,再次条件成立时赋值为2。 依次。。。。 只在赋值为1时,发单。
是不是够麻烦的。
还是用第一招,C改为H、L。最为省事。

使用道具 举报

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

bottom

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

GMT+8, 2024-5-9 16:12

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部