欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件金字塔软件问题提交 → 请教

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有7396人关注过本帖树形打印复制链接

主题:请教

帅哥哟,离线,有人找我吗?
qwer123
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小飞侠 帖子:1966 积分:0 威望:0 精华:1 注册:2013/6/15 21:56:35
  发帖心情 Post By:2014/6/18 8:58:25 [只看该作者]

以下是引用瑟郎在2014/6/18 8:48:20的发言:
你这是明显信号闪烁了,导致持仓同步频繁工作了

一般不是持仓同步引起的,而是由于信号“闪”,净单交易方法引起的。因为交易是按扫描频率进行的,持仓同步可能10秒只交易1次,而净单交易1秒可能会因为“闪”而交易2次(来回);


 回到顶部
帅哥哟,离线,有人找我吗?
Ivan
  12楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:560 积分:346 威望:0 精华:0 注册:2012/12/25 15:33:49
  发帖心情 Post By:2014/6/18 10:01:22 [只看该作者]

以下是引用qwer123在2014/6/18 8:31:57的发言:
1.手续费:如果你的实盘手续费和模拟盘的手续费设置是一样的,程序不存在其他问题,那么手续费的结果应该一样。
              如果手续费设置一样,而结果不一样,说明交易次数出现了差异。你可以查一下两台机子的交易次数。
2.手续费的不同意味着你的交易次数是不同的,这种净单交易最怕的是信号闪,所以在程序中你要避免信号不稳定的问题,提前下单是禁止使用的,在下单条件中都要使用
   if ref(a,1).......then 就是上根k线条件成立,这根k线开盘时交易(稳定的信号可以当根k线交易)。
3.同样的程序,在同样的服务器配置和机房,如果程序信号本身存在“闪”的问题,那么运行结果(交易次数)是不一样的。
4.同样的程序,在同样的服务器配置和机房,信号不闪,交易的结果(收益)也不一样。
   3.4主要是数据时间差,发单时间差,单子排队的顺序不同造成的。
5.最大允许交易手数25手的方法:
   h1:=stkindiex('','abc.持仓',0,.......);
   h2:=..................
   .................
   h33:=....................hh:=h1+.......+h33;
hhh:=if(hh<=25 and hh>=-25,hh,if(hh<-25,-25,25));
如果你是用后台,不会出现什么问题,如果你是使用图表(从你的叙述来看你用的是图表)一定要注意“每根k线,每个语句的单方向只交易一次”的问题,一般来说如果你的信号是稳定的就不要使用“持仓同步”了。
6.效率问题,我有一台8核服务器,在用净单方法交易时,使用了10个stkindiex,结果有一个核的cpu达到80%,有4个为0,其他3个核就是4-5%左右。你用了33个“stkindiex”,我想一定会很卡的,系统没有办法正常运行,会出现意想不到的交易情况。在这里也咨询运行金字塔的客服,有没有办法解决这个问题。
你使用的是图表,引用了33个持仓,最大持仓25,那么要么你使用最小的周期,这样要求参与计算的k线数就很多,要么你使用大一点的周期但主程序必须运行25变,以确保不会丢单。


7.程序代码

r12:=hhh;
hd1:=0;
//***************第一遍***************
if holding=0 and r12>0 then buy(1,r12,limitr,c+hd1);
if holding=0 and r12<0 then buyshort(1,abs(r12),limitr,c-hd1);

if holding>0 and r12>0 and holding>r12 then sell(1,holding-r12,limitr,c-hd1);
if holding>0 and r12>0 and holding<r12 then buy(1,r12-holding,limitr,c+hd1);
if holding>0 and r12<0 then
begin
sell(1,holding,limitr,c-hd1);
buyshort(1,abs(r12),limitr,c-hd1);
end

if holding<0 and r12<0 and holding>r12 then buyshort(1,holding-r12,limitr,c-hd1);
if holding<0 and r12<0 and holding<r12 then sellshort(1,r12-holding,limitr,c+hd1);
if holding<0 and r12>0 then
begin
sellshort(1,holding,limitr,c+hd1);
buy(1,r12,limitr,c+hd1);
end 

if r12=0 and holding>0 then sell(holding>0,0,limitr,c-hd1);
if r12=0 and holding<0 then sellshort(holding<0,0,limitr,c+hd1);

//***************第二遍***************
if holding=0 and r12>0 then buy(1,r12,limitr,c+hd1);
if holding=0 and r12<0 then buyshort(1,abs(r12),limitr,c-hd1);

if holding>0 and r12>0 and holding>r12 then sell(1,holding-r12,limitr,c-hd1);
if holding>0 and r12>0 and holding<r12 then buy(1,r12-holding,limitr,c+hd1);
if holding>0 and r12<0 then
begin
sell(1,holding,limitr,c-hd1);
buyshort(1,abs(r12),limitr,c-hd1);
end

if holding<0 and r12<0 and holding>r12 then buyshort(1,holding-r12,limitr,c-hd1);
if holding<0 and r12<0 and holding<r12 then sellshort(1,r12-holding,limitr,c+hd1);
if holding<0 and r12>0 then
begin
sellshort(1,holding,limitr,c+hd1);
buy(1,r12,limitr,c+hd1);
end 

if r12=0 and holding>0 then sell(holding>0,0,limitr,c-hd1);
if r12=0 and holding<0 then sellshort(holding<0,0,limitr,c+hd1);

。。。。。。。。。。。。。。。。。。。。





谢谢你写了这么多!

1,不同电脑,同样策略交易结果是可以不同的,但差异实在是太大了,明显是在某些时候,出现引用汇总和持仓同步的时间间隔刚好出现错开,导致引用汇总的仓位和实际仓位有差异,但会一直这样频繁平了开的交易,直到人工停止再启动交易才会停止。

2,后台手续费更加严重;

3,效率问题,33个周期汇总,我观察的结果是cpu8%左右,内存144兆,基本上能应付过去。

4,假如要执行25遍代码的话,那还不如直接引用各个周期的信号直接下单,净单交易会发生1的情况的。

 


 回到顶部
帅哥哟,离线,有人找我吗?
FexTel
  13楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:5960 积分:0 威望:0 精华:2 注册:2014/6/12 11:29:04
  发帖心情 Post By:2014/6/18 10:14:00 [只看该作者]

1,怎么读取其它的周期的持仓汇总?DEBUGFIEL输出下这个值,对应看下每个图表的情况

2,后台分析效率和速度有优势,可以直接调取实际账户持仓

3,STKINDI调用的时候会去运行其它代码,引用各周期信号效果一样

另外您日志全部都是持仓汇总不固定,自动持仓同步导致 手续费,建议您先确定,稳固好信号。而不去使用自动持仓同步功能



金字塔—专业程序化交易量化投资平台

产品部

-----------------------------------------------------------

欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
admin
  14楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:7302 积分:32559 威望:1000 精华:45 注册:2003/12/30 16:34:32
  发帖心情 Post By:2014/6/18 10:14:34 [只看该作者]

可以考虑将持仓同步扫描间隔时间设置的大一些吧,这样对于一些闪烁情况自然就能避免误动作一些

 回到顶部
帅哥哟,离线,有人找我吗?
qwer123
  15楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小飞侠 帖子:1966 积分:0 威望:0 精华:1 注册:2013/6/15 21:56:35
  发帖心情 Post By:2014/6/18 10:17:15 [只看该作者]

回楼上:
3.总cpu的占用是不高,但某一核的占用非常高,这个时候你会发现你的服务器反应特别迟钝。
4.你对图表交易理解可能有偏差,如果你不运行25遍,那么你肯定要丢单,这样就需要持仓同步来矫正,这样下单时间和你的要求的下单时间就不一致了。如果单根k线有信号,持仓同步并不一定能够正确执行,这样会带来一些预计不到的问题。

 回到顶部
帅哥哟,离线,有人找我吗?
qwer123
  16楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小飞侠 帖子:1966 积分:0 威望:0 精华:1 注册:2013/6/15 21:56:35
  发帖心情 Post By:2014/6/18 10:25:00 [只看该作者]

以下是引用admin在2014/6/18 10:14:34的发言:
可以考虑将持仓同步扫描间隔时间设置的大一些吧,这样对于一些闪烁情况自然就能避免误动作一些

对于净单交易这个方法没有用,因为频繁交易不是由于“持仓同步”引起的,而是hhh变化引起的,净单交易一般都要使用“高频”,所以如果信号“闪烁”,那就会出现"灾难"性的问题。


 回到顶部
帅哥哟,离线,有人找我吗?
qwer123
  17楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小飞侠 帖子:1966 积分:0 威望:0 精华:1 注册:2013/6/15 21:56:35
  发帖心情 Post By:2014/6/18 11:38:07 [只看该作者]

谢谢版主的金币,反正闲着也闲着,再说两句:

1.如果你要使用标准版做净单交易,必须要把主程序重复很多遍(金字塔还必须3.1以上版本,好像是),这对于计算机来说是毫秒级就运行完了,并不费劲。你现在的做法是靠持仓同步来运作的,这显然不合适,有时候会有问题。
2.真正净单交易是不用持仓同步的,因为hhh变化就会马上有下单操作,不会出现漏单。
3.由于你模型信号是闪的,要减小频繁交易的唯一办法就是放大轮询间隔。这要用下单延迟带来的损失和减小交易的收益来平衡了,多少间隔合适取决于你的策略,要靠自己摸索。

说的比较多,不一定对,供参考。

 回到顶部
总数 17 上一页 1 2