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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → [求助]标准版收盘平仓问题

   

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


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

主题:[求助]标准版收盘平仓问题

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


加好友 发短信
等级:新手上路 帖子:69 积分:0 威望:0 精华:0 注册:2018/11/2 17:55:37
[求助]标准版收盘平仓问题  发帖心情 Post By:2018/12/24 15:08:26    Post IP:110.83.49.49[只看该作者]

老师:
       我用的是标准版图表交易,信号执行固定间隔,数据30分钟,意图收盘前1-2分钟平仓。代码这样写,为什么总是14:30分平仓。

SPJ:=valuewhen(time>=145858,CLOSE);

if time>=145858 then BEGIN
    收盘平多:sell(1,PN%,LIMITR,SPJ-mindiff);
    收盘平空:sellshort(1,PN%,LIMITR,SPJ+mindiff);
end

     请求给予指导。

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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2018/12/24 15:40:30    Post IP:180.169.30.6[只看该作者]

你这个time判断里面写的时间是北京时间吗?
1.time本身返回值和你时区有关系,你如果用的金字塔时区,你写的值应该按照金字塔时区来进行。比如下午14:30 对应金字塔时间实际是18:30。
2.因为time返回的是K线时间, 你这个思路也是不行的。如果是30分钟K,当前K对应下午14:30 那么上一个K则是14:00 没有中间值的。你这个思路是要这个中间值来做对比和判断是不行的。


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


加好友 发短信
等级:新手上路 帖子:69 积分:0 威望:0 精华:0 注册:2018/11/2 17:55:37
  发帖心情 Post By:2018/12/25 11:48:58    Post IP:110.83.49.49[只看该作者]

对,我使用的是北京时间。
这个思路不行,网络上看到一个这样的代码(有小改),老师看看行吗?


p:=100;
SPJ:=valuewhen(time>=145959,CLOSE);
交易时间:=time>=090000 and time<=145959;
If islastbar<>1 and 交易时间<>1 then begin
    收盘平多:sell(1,P%,LIMITR,SPJ-mindiff);
    收盘平空:sellshort(1,P%,LIMITR,SPJ+mindiff);
end

老师有好的表述方法吗?

另外还有个问题:用标准版‘固定间隔’跑程序化,用  LIMITR 触发限价交易,触发价是当周期最高价上穿上一周期前M周期最高价,有CROSS(H,REF(HHV(H,M),1))   和  H>=REF(HHV(H,M),1) 两种代码写法,那一种符合要求,不会出现信号闪烁。

      谢谢老师!

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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2018/12/25 13:40:55    Post IP:180.169.30.6[只看该作者]

 1.收盘前提前下单
abb:(time0-timetot0(dynainfo(207))<=120) or not(islastbar);//提前120s下单
if abb and time=150000 then BEGIN
    收盘平多:sell(1,1,market);
    收盘平空:sellshort(1,1,market);
end
你的周期必须大于你这里设置的提前下单的秒数,当然你现在是30分钟周期是没问题的,如果切换周期的话,需要注意修改下。

2.上穿的逻辑只能CROSS(H,REF(HHV(H,M),1)) 满足。
其实因为你
REF(HHV(H,M),1)) 在当前K肯定是稳定的,最高价也只可能更高,只要中间有一次满足上穿条件,那么这个信号就应该是稳定的。


命数如织,当如磐石。
 回到顶部