以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  [求助]跨合约数据引用问题  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=164656)

--  作者:Chauncey
--  发布时间:2018/7/31 10:47:27
--  [求助]跨合约数据引用问题
 http://www.weistock.com/bbs/dispbbs.asp?boardid=4&id=164639&page=1&star=1
这是昨天问题的链接,麻烦回复下如果用CALLSTOCK函数来实现,麻烦编写了,自己试了几次都没有成功,没有信号,能否帮忙编写好

--  作者:FireScript
--  发布时间:2018/7/31 10:56:45
--  
 举例:
CALLSTOCK(\'RB00\',vtclose,6,0);

这样就实现了在当前品种调用rb00 当前日线的收盘价。你可以自行修改品种代码来调用其他品种数据。

第一个参数是品种,第二个是几个可选的参数,有开高低收,成交量,成交额等。第三个参数是周期,也是可选的,可以看下函数说明里面罗列的选项。



--  作者:Chauncey
--  发布时间:2018/7/31 13:35:33
--  
这个函数说明一看就明白啊,跟我查函数表一样,关键是这个策略里面用起来,我引用了,一直没有信号,可以麻烦帮我把这个策略改好吗,谢谢,我要是可以,我就不用两次出来提问了,
--  作者:FireScript
--  发布时间:2018/7/31 13:54:49
--  
先确认几个问题:
1.你加载在什么周期上的,这个策略是无法在日线上生效的。
 2.你引用的品种的数据也要确保补充完备才行。



--  作者:Chauncey
--  发布时间:2018/8/1 10:21:21
--  
到底有没有人解决问题的,我是朋友实盘用的你们,让我把其他平台的策略换成你们的,就你们这样回复,真没有必要了
--  作者:Chauncey
--  发布时间:2018/8/1 10:22:17
--  
周期的话15分钟。两个品种的数据都补齐了
--  作者:FireScript
--  发布时间:2018/8/1 10:50:59
--  
 
 这个帖子之前已经回复过了:http://www.weistock.com/bbs/dispbbs.asp?boardid=4&id=164639&page=1&star=1

最佳方式是做品种映射的,也就是行情在A品种上,实际下单下到B品种,可以不用在代码里面调用其他品种数据。
我之所以提到callstock 其实是针对你提到的跨品种引用数据这个问题。

下面代码我已经把策略用的K线数据替换成引用过来的焦煤数据,我在图表上输出是有信号。

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

INPUT:N(1,1,100,1),K1(0.7,0.1,1,0.1),K2(0.7,0.1,1,0.1),NMIN(10,1,100,1),SS(1,1,10000,1);
CYC:=BARSLAST(DATE<>REF(DATE,1))+1;
昨高:=CALLSTOCK(\'J00\',VTHIGH,6,-1);
昨低:=CALLSTOCK(\'J00\',VTLOW,6,-1);
昨收:=CALLSTOCK(\'J00\',VTCLOSE,6,-1);

0_J00:CALLSTOCK(\'J00\',VTOPEN,3,0);//引用焦煤数据
//H_J00:CALLSTOCK(\'J00\',VTHIGH,3,0);
//L_J00:CALLSTOCK(\'J00\',VTLOW,3,0);
C_J00:CALLSTOCK(\'J00\',VTCLOSE,3,0);


开盘价:=VALUEWHEN(CYC=1,0_J00);
HH:=HHV(昨高,N);//N日HIGH的最高价
HC:=HHV(昨收,N);//N日CLOSE的最高价
LC:=LLV(昨收,N);//N日CLOSE的最低价
LL:=LLV(昨低,N);//N日LOW的最低价
浮动区间:=MAX(HH-LL,HC-LL);//RANGE
上轨:开盘价+K1*浮动区间;
下轨:开盘价-K2*浮动区间;
T1:=TIME>OPENTIME(1) AND TIME<CLOSETIME(0)-NMIN*100;
T2:=TIME>=CLOSETIME(0)-NMIN*100;
手数:=SS;
//交易条件
开多条件:=C_J00>上轨 AND HOLDING=0;
开空条件:=C_J00<下轨 AND HOLDING=0;
//交易系统
开多:BUY(开多条件 AND T1 AND CYC>1,手数,MARKET);
开空:BUYSHORT(开空条件 AND T1 AND CYC>1,手数,MARKET);
收盘平多:SELL(T2,手数,MARKET);
收盘平空:SELLSHORT(T2,手数,MARKET);

当前持仓:HOLDING,COLORGRAY,LINETHICK0;
当前资产:ASSET,NOAXIS,COLORGRAY;//输出当前资产,但不影响坐标最高最低值





--  作者:Chauncey
--  发布时间:2018/8/1 11:14:37
--  
要到就是现在的这个源码,知道哪有实现可以,但是需要的是源码改造上的,谢了