以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  图表交易说无法成交  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=99648)

--  作者:jjjfk
--  发布时间:2016/6/27 13:31:18
--  图表交易说无法成交
程序应用于图图表,打算测试,可弹出对话框说白箭头部分是无法成交的(如下图),下面我贴出了代码,烦请指出原因,谢谢!

系统思想:以前45分钟高低点作为突破做多做空

//函数定义
a1:=valuewhen(todaybar=45,hhv(high,45));  //引用前45根K线的最高价
a2:=valuewhen(todaybar=45,hhv(low,45));   //引用前45根K线的最低价

a3:=time>=014500;
a4:=time<185000;
a5:=a3 and a4;  //交易时间

a6:time>=185800;  //收盘平仓时间

a7:=a1+1*mindiff;  //做多价格

a8:=a2-1*mindiff;  //做空价格

//做多条件
if holding=0 and high>a1 and totaldaytrade<2
then begin 
buy(1,1,limitr,a7);
end

//平多条件
if holding>0 and low<a2
then begin 
sell(1,0,a8);
end


//做空条件
if holding=0 and low<a2 and totaldaytrade<2
then begin 
buyshort(1,1,a8);
end

//平空条件
if holding<0 and high>a1
then begin 
sellshort(1,0,a7);
end

//收盘平多仓
if holding>0 and a6
then begin 
sell(1,0,market);
end

//收盘平空仓
if holding<0 and a6
then begin 
sellshort(1,0,market);
end


图片点击可在新窗口打开查看此主题相关图片如下:无法成交.jpg
图片点击可在新窗口打开查看


--  作者:jinzhe
--  发布时间:2016/6/27 13:34:46
--  
sell(1,0,a8);

 

类似这样的都改成sell(1,0,market)


--  作者:jjjfk
--  发布时间:2016/6/27 14:18:47
--  
谢谢。我改了之后,明明我限制的交易时间是014500-185000,可是应用于图表后,每次都是开盘一分钟就开始交易了(如下图),还是原来的代码,请问为什么会这样?谢谢

图片点击可在新窗口打开查看此主题相关图片如下:开盘居然就交易了.jpg
图片点击可在新窗口打开查看


--  作者:jinzhe
--  发布时间:2016/6/27 14:28:45
--  
因为你虽然写了时间条件,但是没有写进开仓语句里面,所以时间条件是不起作用的
--  作者:jjjfk
--  发布时间:2016/6/27 14:52:44
--  
好的,按照您说的,加了交易时间进去了。但是现在又有个问题(如下图),开盘45分钟后,做多位置应该在白箭头的水平位置才对啊,他怎么在绿箭头处就开仓了呢?

图片点击可在新窗口打开查看此主题相关图片如下:开仓有问题.jpg
图片点击可在新窗口打开查看


--  作者:jinzhe
--  发布时间:2016/6/27 14:57:48
--  

因为market的信号价格是次周期开盘价


--  作者:jjjfk
--  发布时间:2016/6/27 15:36:10
--  
我知道。可是绿箭头处还没有达到做多条件,也没有达到做空条件啊,他怎么就开仓了?
--  作者:jinzhe
--  发布时间:2016/6/27 15:45:20
--  

有信号说明是满足开仓条件的

你认为的“没有达到做空条件”,是错的