以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  关于调用多周期的某均线作为条件,来开平仓的问题  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=138206)

--  作者:a28861211
--  发布时间:2016/8/18 11:57:02
--  关于调用多周期的某均线作为条件,来开平仓的问题
所出现的问题:程序编译正常,但单策略测试就是测试不了。显示为0,而有时又测试成功其中一个月份,有时3个月份都测试不到,但没有成功地测试过3个月份

程序代码:
程序简单阐述,因为是调用多周期的,所以,用了两个程序。

程序1:ch系统移动均线公式
INPUT:N1(10,1,3000,1);
INPUT:N2(30,1,3000,1);
INPUT:N3(10,1,3000,1);
INPUT:N4(50,1,3000,1);
INPUT:N5(30,1,3000,1);
INPUT:N6(200,1,3000,1);
INPUT:N7(40,1,3000,1);
INPUT:N8(300,1,3000,1);
INPUT:N9(20,1,3000,1);
INPUT:N10(400,1,3000,1);
INPUT:N11(400,1,3000,1);
INPUT:N12(1000,1,3000,1);
INPUT:N13(700,1,3000,1);
INPUT:N14(2900,1,3000,1);


日线10:MA(CLOSE,N1);
日线30:MA(CLOSE,N2);
120线10:MA(CLOSE,N3);
120线50:MA(CLOSE,N4);
60线30:MA(CLOSE,N5);
60线200:MA(CLOSE,N6);
30线40:MA(CLOSE,N7);
30线300:MA(CLOSE,N8);
15线20:MA(CLOSE,N9);
15线400:MA(CLOSE,N10);
5线400:MA(CLOSE,N11);
5线1000:MA(CLOSE,N12);
3线700:MA(CLOSE,N13);
3线2900:MA(CLOSE,N14);


程序二:测试

日线10线值:=STKINDI(\'\',\'ch系统移动均线公式.日线10\',0,6);
日线30线值:=STKINDI(\'\',\'ch系统移动均线公式.日线30\',0,6);
120分钟10线值:=STKINDI(\'\',\'ch系统移动均线公式.120线10\',0,11);
120分钟50线值:=STKINDI(\'\',\'ch系统移动均线公式.120线50\',0,11);
60分钟30线值:=STKINDI(\'\',\'ch系统移动均线公式.60线30\',0,5);
60分钟200线值:=STKINDI(\'\',\'ch系统移动均线公式.60线200\',0,5);
30分钟40线值:=STKINDI(\'\',\'ch系统移动均线公式.30线40\',0,4);
30分钟300线值:=STKINDI(\'\',\'ch系统移动均线公式.30线300\',0,4);
15分钟20线值:=STKINDI(\'\',\'ch系统移动均线公式.15线20\',0,3);
15分钟400线值:=STKINDI(\'\',\'ch系统移动均线公式.15线400\',0,3);

5分钟400线值:=STKINDI(\'\',\'ch系统移动均线公式.5线400\',0,2);
5分钟1000线值:=STKINDI(\'\',\'ch系统移动均线公式.5线1000\',0,2);
3分钟700线值:=STKINDI(\'\',\'ch系统移动均线公式.3线700\',0,17);
3分钟2900线值:=STKINDI(\'\',\'ch系统移动均线公式.3线2900\',0,17);

手数:=10;


//交易条件
日线平多开空条件:=((CLOSE<日线10线值) or (CLOSE<日线30线值));
日线平空开多条件:=((CLOSE>日线10线值) or (CLOSE>日线30线值));

120分平多开空条件:=((CLOSE<120分钟10线值) or (CLOSE<120分钟10线值));
120分平空开多条件:=((CLOSE>120分钟50线值) or (CLOSE>120分钟50线值));

60分平多开空条件:=((CLOSE<60分钟30线值) or (CLOSE<60分钟200线值));
60分平空开多条件:=((CLOSE>60分钟30线值) or (CLOSE>60分钟200线值));

30分平多开空条件:=((CLOSE<30分钟40线值) or (CLOSE<30分钟300线值));
30分平空开多条件:=((CLOSE>30分钟40线值) or (CLOSE>30分钟300线值));

15分平多开空条件:=((CLOSE<15分钟20线值) or (CLOSE<15分钟400线值));
15分平空开多条件:=((CLOSE>15分钟20线值) or (CLOSE>15分钟400线值));


5分平多开空条件:=((CLOSE<5分钟400线值) or (CLOSE<5分钟1000线值));
5分平空开多条件:=((CLOSE>5分钟400线值) or (CLOSE>5分钟1000线值));

3分平多开空条件:=((CLOSE<3分钟700线值) or (CLOSE<3分钟2900线值));
3分平空开多条件:=((CLOSE>3分钟700线值) or (CLOSE>3分钟2900线值));



{
平多开空条件:=5分平多开空条件 and 3分平多开空条件;
平空开多条件:=5分平空开多条件 and 3分平空开多条件;
}
平多开空条件:=日线平多开空条件 and 120分平多开空条件 and 60分平多开空条件 and 30分平多开空条件 and 15分平多开空条件 and 5分平多开空条件 and 3分平多开空条件;
平空开多条件:=日线平空开多条件 and 120分平空开多条件 and 60分平空开多条件 and 30分平空开多条件 and 15分平空开多条件 and 5分平空开多条件 and 3分平空开多条件;



//交易系统
仓位限制:=3000;

//仓位限制条件
仓位小不准开仓条件:=openint<仓位限制;
仓位允许开仓条件:=openint>仓位限制;


//新一代有持仓量限制的开平仓语句

SELLSHORT((平空开多条件 and HOLDING<0)or (仓位小不准开仓条件 and HOLDING<0),HOLDING,THISCLOSE); //交易系统乀平空操作
BUY(平空开多条件 and HOLDING=0 and 仓位允许开仓条件,手数,THISCLOSE);//交易系统乀开多操作
SELL((平多开空条件 and HOLDING>0) or (仓位小不准开仓条件 and HOLDING>0),HOLDING,THISCLOSE); //交易系统乀平多操作
BUYSHORT(平多开空条件 and HOLDING=0 and 仓位允许开仓条件,手数,THISCLOSE); //交易系统乀开空操作



平多开空条件1:平多开空条件,linethick0;
平空开多条件1:平空开多条件,linethick0;

请教如何解决?



--  作者:jinzhe
--  发布时间:2016/8/18 13:05:05
--  
把数据先补充一下,看你调用了很多个周期的数据,把日线,1分钟,5分钟都补充了,
--  作者:a28861211
--  发布时间:2016/8/18 13:06:54
--  
补充好了,2009年的都补充好了
图片点击可在新窗口打开查看此主题相关图片如下:360截图20160818130636631.png
图片点击可在新窗口打开查看

--  作者:a28861211
--  发布时间:2016/8/18 13:07:42
--  
我的数据不单在数据补充补充好,而且下载数据包去补充的,1分钟,5分钟,都补充好
--  作者:jinzhe
--  发布时间:2016/8/18 13:18:31
--  

你先把最近3个月的,日线数据,1分钟数据,和5分钟数据都补充一下, 根本用不到那么远的数据,

然后把公式应用到图上,调试看看你引用的值,是不是都有数据


--  作者:a28861211
--  发布时间:2016/8/18 13:25:25
--  
问题就是这个,在图表上,是有效的,但是一旦缩小图多个数据,就变得无效,单策略测试还变成无成交
--  作者:a28861211
--  发布时间:2016/8/18 13:25:58
--  
这就是截图
图片点击可在新窗口打开查看此主题相关图片如下:360截图20160818132357475.png
图片点击可在新窗口打开查看

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

--  作者:a28861211
--  发布时间:2016/8/18 13:27:21
--  
策略的准确是当然是要多数据测试啊,从历史数据一直到现在测试,看是否都适应,这才是好策略啊,不是吗?


--  作者:jinzhe
--  发布时间:2016/8/18 13:33:32
--  
看见图里面显示的“第11行解释错误”了吗?你代码里面的第11行是什么?
--  作者:a28861211
--  发布时间:2016/8/18 13:44:39
--  
他是不断变换的,有时是11行,有时是其他