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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 请教收盘平仓怎么写?

   

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


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

主题:请教收盘平仓怎么写?

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


加好友 发短信
等级:新手上路 帖子:20 积分:0 威望:0 精华:0 注册:2017/11/17 16:11:27
请教收盘平仓怎么写?  发帖心情 Post By:2017/11/23 10:54:23    Post IP:116.237.27.204[只看该作者]

比如if,我尝试这样写,软件提示逐k模式不能有未来函数。
shoupan:=refx(time,1)>=091500 and abs(time-refx(time,1))>050000;

如果不用未来函数的话,写成shoupan:=time>=0.1455;但是股指之前是15:15收盘的,就变成提前平仓了。。。
不用未来函数的话,我怎么样才能知道当前k线是当天最后一根呢?
如果把收盘时间写成参数手动调整的话,在回测的时候不同收盘时间的品种就没办法回测准确了。

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


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

收盘时间有函数可取的:

closetime(0)

 

你的需求是提前下单还是怎样。

下面: 

t:(t0totime(timetot0(closetime(0))-60*N));
收盘前N分钟的代码。



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


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

不好意思,之前删自己的帖子删错了,删了你的回复了。 你再补下吧。

 

closetime只能返回最新的收盘时间,历史上的是没办法获取的。



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


加好友 发短信
等级:新手上路 帖子:20 积分:0 威望:0 精华:0 注册:2017/11/17 16:11:27
  发帖心情 Post By:2017/11/23 13:28:32    Post IP:116.237.27.204[只看该作者]

哦哦,我的意思是,如果是实盘的话,问题不大,可以根据最新情况写。
但是历史回测的话,同一个交易所也会有不同收盘时间的品种。同一个品种历史上也会有不同的收盘时间,回测的收盘平仓代码怎么写呢?
尤其是多品种测试的时候。

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


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

提供一个参考的方案试下:

因为虽然没办法利用closetime取到历史上的收盘时间。但是K线时间还是准确的。

需要使用一次指标的引用。利用的是日期变动,来判断是否最后一个K。

1.被引用指标代码:

 


图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看

注意被引用的代码务必用序列模式。

 

2.交易部分的条件代码

测试返回值所用代码如下:

 

mm:STKINDI('','Formula2.u',0,1,0);//当前图表周期是多少,这里务必调整成同样的周期。我这里暂时用1分钟周期。
if not(ISLASTBAR) and date<>mm then DRAWTEXT(1 , l,'LastBars' );//mm在最新K上是无效值,务必注意下这点。这里用绘图函数只是方便你拿过去测试下返回值效果。

 

交易中的时候:

if not(lastbar) and date<>mm then sell();//处理历史上

if .....then sell();//这里需要你对当前最新日期的单独处理下。 时间和精力有限,剩余部分可自行完善下。只是给你提供一个参考方案。

 

 

 

 



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


加好友 发短信
等级:新手上路 帖子:20 积分:0 威望:0 精华:0 注册:2017/11/17 16:11:27
  发帖心情 Post By:2017/11/23 15:07:49    Post IP:116.237.27.204[只看该作者]

好方法,谢谢!

 回到顶部