1时收:CALLSTOCKEX('RB00',vtCLOSE,5,0,0);
4时收:CALLSTOCKEX('RB00',vtCLOSE,13,0,0);
日收:CALLSTOCKEX('RB00',vtCLOSE,6,0,0);
周收:CALLSTOCKEX('RB00',vtCLOSE,7,0,0);
1时均:ma(1时收,2),LINETHICK2;
4时均:ma(4时收,45),LINETHICK2;
日均:ma(日收,17),LINETHICK2;
周均:ma(周收,2),LINETHICK2;
1时做多:=ref(CROSS(1时收-0.79,1时均),1) and 1时收-0.79>1时均;
1时做空:=ref(CROSS(1时均,1时收+0.79),1) and 1时均>1时收+0.79;
4时做多:=ref(CROSS(4时收,4时均),1) and 4时收>4时均;
4时做空:=ref(CROSS(4时均,4时收),1) and 4时均>4时收;
日做多:=ref(CROSS(日收,日均),1) and 日收>日均;
日做空:=ref(CROSS(日均,日收),1) and 日均>日收;
周做多:=ref(CROSS(周收-1,周均),1) and 周收-1>周均;
周做空:=ref(CROSS(周均,周收+1),1) and 周均>周收+1;
当前资金:ASSET,NOAXIS;
持仓量:=HOLDING;
IF 1时做多 THEN
BEGIN
PLAYSOUND(HOLDING<0,'E:\Alarm.WAV');
SELLSHORT(HOLDING<0,0,MARKET);
BUY(HOLDING=0,仓1时%,MARKET);
END
IF 4时做多 THEN
BEGIN
PLAYSOUND(HOLDING<0,'E:\Alarm.WAV');
SELLSHORT(HOLDING<0,0,MARKET);
BUY(HOLDING=0,仓4时%,MARKET);
END
IF 日做多 THEN
BEGIN
PLAYSOUND(HOLDING<0,'E:\Alarm.WAV');
SELLSHORT(HOLDING<0,0,MARKET);
BUY(HOLDING=0,仓日%,MARKET);
END
IF 周做多 THEN
BEGIN
PLAYSOUND(HOLDING<0,'E:\Alarm.WAV');
SELLSHORT(HOLDING<0,0,MARKET);
BUY(HOLDING=0,仓周%,MARKET);
END
IF 1时做空 THEN
BEGIN
PLAYSOUND(HOLDING>0,'E:\Alarm.WAV');
SELL(HOLDING>0,0,MARKET);
BUYSHORT(HOLDING=0,仓1时%,MARKET);
END
IF 4时做空 THEN
BEGIN
PLAYSOUND(HOLDING>0,'E:\Alarm.WAV');
SELL(HOLDING>0,0,MARKET);
BUYSHORT(HOLDING=0,仓4时%,MARKET);
END
IF 日做空 THEN
BEGIN
PLAYSOUND(HOLDING>0,'E:\Alarm.WAV');
SELL(HOLDING>0,0,MARKET);
BUYSHORT(HOLDING=0,仓日%,MARKET);
END
IF 周做空 THEN
BEGIN
PLAYSOUND(HOLDING>0,'E:\Alarm.WAV');
SELL(HOLDING>0,0,MARKET);
BUYSHORT(HOLDING=0,仓周%,MARKET);
END
------------------------------------------------------
现在遇到的问题是:一小时图表中,日线的 开仓/反手 信号在当天的第一个小时就出现了。正常正确的应该是:在 日线图表中 单独加载 日线的 开仓/反手 信号,当天日线收盘价定K才出现 信号才对。周线的 开仓/反手 信号在当周的第一个小时就出现了,正常正确的应该是:周五最后一个小时定周线K才出现信号才对。2小时、4小时问题 同理。
我如何才能实现:一小时图表中,4小时、日线、周线等跨周期的信号在正确的位置出现 开平仓信号?同时反过来,在周线图表中,我如何能够实现日线、4小时、1小时等 小周期的信号和仓位的问题?同时,在 日线图表中,能否实现 跨大小周期的 周线、4小时线、1小时的 信号和不同的仓位问题?
谢谢
你这个需求描述的太笼统了啊。 毕竟是代码问题,建议还是详细描述,比如需要用代码实现什么样的具体操作。
简单看了下代码,看到一个可能存在的问题。
1时收:CALLSTOCKEX('RB00',vtCLOSE,5,0,0);
4时收:CALLSTOCKEX('RB00',vtCLOSE,13,0,0);
日收:CALLSTOCKEX('RB00',vtCLOSE,6,0,0);
周收:CALLSTOCKEX('RB00',vtCLOSE,7,0,0);
1时均:ma(1时收,2),LINETHICK2;
4时均:ma(4时收,45),LINETHICK2;
日均:ma(日收,17),LINETHICK2;
周均:ma(周收,2),LINETHICK2;
这里的均线是想求什么均线,指定周期上的均线值?如果是这样的话,这样计算是不对的。举个例子吧:
比如你1分钟周期,你想求五分钟周期的均线,你应该新建一个均线指标,然后在1分钟上引用五分钟周期的均线指标来获取这个值,这个要用stkind函数去实现。你这样把数据引用过来计算均值是有问题的。
比如你1分钟你引用大周期的五分钟,这样你连续几个1分钟K引用到的都会是一个大周期五分钟的值,这种情况下你求的均值根本不是五分钟周期上均线值的。
[此贴子已经被作者于2018/12/17 10:46:44编辑过]