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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 请问这个策略哪里写得不对?

   

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


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

主题:请问这个策略哪里写得不对?

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


加好友 发短信
等级:论坛游侠 帖子:137 积分:30 威望:0 精华:0 注册:2011/12/2 7:33:43
请问这个策略哪里写得不对?  发帖心情 Post By:2014/8/22 13:22:24    Post IP:113.119.161.185[只看该作者]

//策略一:

RC:=REF(C,1);

IF C>RC THEN BEGIN
平空:SELLSHORT(1,0,MARKET);
开多:BUY(HOLDING=0,P,MARKET);
END

IF C<RC THEN BEGIN
平多:SELL(1,0,MARKET);
开空:BUYSHORT(HOLDING=0,P,MARKET);
END

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

//策略二:

GHD:=EXTGBDATA('GHOLD');

平多:=STKINDI(STKLABEL,'策略一.平多',0,1);
平空:=STKINDI(STKLABEL,'策略一.平空',0,1);
开多:=STKINDI(STKLABEL,'策略一.开多',0,1);
开空:=STKINDI(STKLABEL,'策略一.开空',0,1);

R平空:=REF(平空,1);
R平多:=REF(平多,1);
R开多:=REF(开多,1);
R开空:=REF(开空,1);

IF ISLASTBAR=0 THEN BEGIN
SELLSHORT(平空,0,MARKET);
SELL(平多,0,MARKET);
BUY(开多,1,MARKET);
BUYSHORT(开空,1,MARKET);
END

IF ISLASTBAR THEN BEGIN
IF R平空 AND GHD<0 THEN BEGIN
SELLSHORT(1,0,NEXTOPEN);
GHD:=0;
END
IF R平多 AND GHD>0 THEN BEGIN
SELL(1,0,NEXTOPEN);
GHD:=0;
END
IF R开多 AND GHD=0 THEN BEGIN
BUY(1,1,NEXTOPEN);
GHD:=1;
END
IF R开空 AND GHD=0 THEN BEGIN
BUYSHORT(1,1,NEXTOPEN);
GHD:=-1;
END
END

EXTGBDATASET('GHOLD',GHD);


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


加好友 发短信
等级:论坛游侠 帖子:137 积分:30 威望:0 精华:0 注册:2011/12/2 7:33:43
  发帖心情 Post By:2014/8/22 13:27:05    Post IP:113.119.161.185[只看该作者]

上面是一个简化的例子,使用策略二进行交易,策略一发出开平信号,GHD是表示多空持仓的函数(因为某些原因不使用HOLDING)。 轮询高频。 在模拟测试时,发现只会开仓不会平仓,请问哪里出了问题?

 回到顶部
美女呀,离线,留言给我吧!
pyd
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:8439 积分:0 威望:0 精华:0 注册:2014/7/14 13:43:36
  发帖心情 Post By:2014/8/22 13:27:24    Post IP:58.246.57.26[只看该作者]

策略1平仓时加上holding<0 或holding>0

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


加好友 发短信
等级:论坛游侠 帖子:137 积分:30 威望:0 精华:0 注册:2011/12/2 7:33:43
  发帖心情 Post By:2014/8/22 13:31:37    Post IP:113.119.161.185[只看该作者]

//策略一
RC:=REF(C,1);

IF C>RC THEN BEGIN
平空:SELLSHORT(HOLDING<0,0,MARKET);
开多:BUY(HOLDING=0,P,MARKET);
END

IF C<RC THEN BEGIN
平多:SELL(HOLDING>0,0,MARKET);
开空:BUYSHORT(HOLDING=0,P,MARKET);
END




加了,依旧只开不平、发现个问题:策略二如果不使用上跟K线的信号,而直接用本根K线的信号,就可以正常开平。
[此贴子已经被作者于2014/8/22 13:32:49编辑过]

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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2014/8/22 13:46:41    Post IP:58.246.57.26[只看该作者]

图表全局变量用variable,不要用extgbdata


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

客户服务部

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

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

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


加好友 发短信
等级:论坛游侠 帖子:137 积分:30 威望:0 精华:0 注册:2011/12/2 7:33:43
  发帖心情 Post By:2014/8/22 14:14:57    Post IP:113.119.161.185[只看该作者]

其实如果可以我也不想用extgbdata。但因为具体的策略涉及单根K线内的细微操作,之前发帖问过,有版主告诉我不能使用variable只能用extgbdata。
上面的代码应该和全局变量的原理无关吧,因为我上面也说过,不使用ref(,1),而直接用开平仓信号,就能正确的执行。
所以结论是,现在我只能使用extgbdata,麻烦版主具体告知上面的策略哪里出了问题,谢谢。
[此贴子已经被作者于2014/8/22 14:15:19编辑过]

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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2014/8/22 14:21:38    Post IP:58.246.57.26[只看该作者]

图表里面不要用extgbata,没有历史数据,影响信号

让你用extgbdata是基于认为你能用后台的前提上



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

客户服务部

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

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

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


加好友 发短信
等级:论坛游侠 帖子:137 积分:30 威望:0 精华:0 注册:2011/12/2 7:33:43
  发帖心情 Post By:2014/8/22 14:26:58    Post IP:113.119.161.185[只看该作者]

了解了,谢谢!

 回到顶部