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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → [讨论]关于减少滑点问题

   

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


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

主题:[讨论]关于减少滑点问题

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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2020/12/16 11:07:43    Post IP:58.246.57.26[显示全部帖子]

 

如果是市价指令,本身的特点就是保证成交速度无法控制滑点。

你可以用限价指令处理。限价指令都是有利滑点



命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2020/12/16 13:26:06    Post IP:58.246.57.26[显示全部帖子]

 level2 对这个应该对成交没啥影响的吧,只是多了几档行情数据这种。 除非说你根据多档行情 在策略上做调整,但是这个就不好说了。



命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2020/12/16 16:53:41    Post IP:58.246.57.26[显示全部帖子]

 你说的是回测情况下 以次周期的开盘价限价下单?


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2020/12/17 11:19:26    Post IP:58.246.57.26[显示全部帖子]

 这个不行。至少在下单函数上无法直接实现。

但是可以这样做。你是走完K模式。如果要实现这个,就只能改成固定轮询模式。
在实盘上:
我们假设你开仓条件是A,走完K模式

原先是当前K满足A,次周期开始就开仓。


现在改成固定轮询模式:
buy(ref(a,1),1,LIMITr,O-2*MINDIFF);

这样就相当于在满足A的那个K之后的 新K上直接按照新K的O-2*MINDIFF 限价下单。这是常用的固定轮询下实现走完K的方式。


只是这样改是适应了实际交易时候情况。 历史回测就没有照顾到了。因为历史回测其实是相当于走完K模式的。



命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2020/12/17 14:27:33    Post IP:58.246.57.26[显示全部帖子]

 1.因为是调用上一个K的判断结果。所以就还好。但是如果有什么跨周期调用之类的,闪烁可能就无法避免。所以总体影响还是存在的。

2.“我回测用market指令回测,这样改之后,实盘过程中,是不是比用market回测的理论数据要优2跳??”
上面那样改 其实没办法在回测里体现 和实盘中一致的思路的。
回测里用上面那个代码 下单位置变成了满足条件A后面的第二个K的位置。因为回测相当于走完K的嘛。

总之你这个思路是没办法兼顾回测和实盘交易的。而且因为改了交易模式,也可能带来一些未知影响,总体上建议你自行斟酌这个影响吧。 


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2021/1/5 15:16:37    Post IP:58.246.57.26[显示全部帖子]

 看下代码是怎样的。


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2021/1/5 15:56:20    Post IP:58.246.57.26[显示全部帖子]

 看不出问题 。你好歹给个能加载出信号的代码 。那么几句代码看不出上下逻辑的 啊。


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2021/1/5 16:21:40    Post IP:58.246.57.26[显示全部帖子]

 试着把平仓语句写在前面:
input:ZS(0.009,0.001,0.02,0.001),CW(10,2,100,1);
MA2:MA(C,10);
MA3:=MA(C,60);

DZS:=(avgenterprice-c)>avgenterprice*ZS;
KZS:=(c-avgenterprice)>avgenterprice*ZS;
IF REF(DZS,1) AND HOLDING>0 THEN BEGIN
 SELL(1,0,LIMITR,O);
END

IF REF(KZS,1) AND HOLDING<0 THEN BEGIN
 SELLSHORT(1,0,LIMITR,O);
END


bcond:cross(ma2,ma3);
scond:cross(ma3,ma2);
SELLSHORT(REF(BCOND,1)AND HOLDING<0,0,LIMITR,O);
BUY(REF(BCOND,1) AND HOLDING=0,CW%,LIMITR,O);
SELL(REF(SCOND,1) AND HOLDING>0,0,LIMITR,O);
BUYSHORT(REF(SCOND,1) AND HOLDING=0,CW%,LIMITR,O);





命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2021/1/5 16:40:18    Post IP:58.246.57.26[显示全部帖子]

 你输出看下持仓均价 然后看下计算结果。

你止损不就是
KZS:=(c-avgenterprice)>avgenterprice*ZS;
看这个条件的嘛。

你是以开盘价开仓的,你要看下开仓开的开盘价 和现在这个K的收盘价直接的价格是否已经触发了条件。


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2021/1/5 17:25:36    Post IP:58.246.57.26[显示全部帖子]

 重新调整了下。做的调整是加了一个对avgenterprice<>0的判断。因为没有持仓时候,avgenterprice等于0,会导致KZS 恒满足,从而出现错误的判断结果了。多头时候体现不出来,因为会减出来一个负值,不影响判断。

input:ZS(0.009,0.001,0.02,0.001),CW(10,2,100,1);
MA2:MA(C,10);
MA3:=MA(C,60);

bcond:cross(ma2,ma3);
scond:cross(ma3,ma2);
SELLSHORT(REF(BCOND,1)AND HOLDING<0,0,LIMITR,O);
BUY(REF(BCOND,1) AND HOLDING=0,CW%,LIMITR,O);
SELL(REF(SCOND,1) AND HOLDING>0,0,LIMITR,O);
BUYSHORT(REF(SCOND,1) AND HOLDING=0,CW%,LIMITR,O);

DZS:=(avgenterprice-c)>avgenterprice*ZS;
KZS:(c-avgenterprice)>avgenterprice*ZS;

IF REF(DZS and avgenterprice<>0,1) AND HOLDING>0 THEN BEGIN
 SELL(1,0,LIMITR,O);
END

IF REF(KZS and avgenterprice<>0 ,1) AND HOLDING<0 THEN BEGIN
 SELLSHORT(1,0,LIMITR,O);
END




命数如织,当如磐石。
 回到顶部
总数 11 1 2 下一页