http://www.weistock.com/bbs/dispbbs.asp?boardid=4&id=164639&page=1&star=1
这是昨天问题的链接,麻烦回复下如果用CALLSTOCK函数来实现,麻烦编写了,自己试了几次都没有成功,没有信号,能否帮忙编写好
举例:
CALLSTOCK('RB00',vtclose,6,0);
这样就实现了在当前品种调用rb00 当前日线的收盘价。你可以自行修改品种代码来调用其他品种数据。
第一个参数是品种,第二个是几个可选的参数,有开高低收,成交量,成交额等。第三个参数是周期,也是可选的,可以看下函数说明里面罗列的选项。
这个函数说明一看就明白啊,跟我查函数表一样,关键是这个策略里面用起来,我引用了,一直没有信号,可以麻烦帮我把这个策略改好吗,谢谢,我要是可以,我就不用两次出来提问了,
先确认几个问题:
1.你加载在什么周期上的,这个策略是无法在日线上生效的。
2.你引用的品种的数据也要确保补充完备才行。
到底有没有人解决问题的,我是朋友实盘用的你们,让我把其他平台的策略换成你们的,就你们这样回复,真没有必要了
这个帖子之前已经回复过了: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;//输出当前资产,但不影响坐标最高最低值
要到就是现在的这个源码,知道哪有实现可以,但是需要的是源码改造上的,谢了