以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  换个浏览器,重新问  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=62880)

--  作者:tomato
--  发布时间:2014/3/19 16:15:31
--  换个浏览器,重新问
初学金字塔,请各位老师挑错,日内,五分钟线,当前价格与之前两个不同周期的开盘价进行比较<!--EndFragment-->,否则卖出,并添加止损条件。
input:t(10,1,100,5),d(5);
一倍周期开盘价:=ref(open,t),noaxis,nodraw;
两倍周期开盘价:=ref(open,2*t),noaxis,nodraw;
//交易条件
开多条件:=close>ref(open,t) and close>ref(open,2*t) and time<185500;
平多条件:=time=185500 or l<enterprice-d*mindiff;
开空条件:=close<ref(open,t) and close<ref(open,2*t)and time<185500;
平空条件:=time=185500 or h>enterprice+d*mindiff;;
//交易系统
sellshort(平空条件 and holding<0,holding,market);
buy(开多条件 and holding=0,1,market);
sell(平多条件 and holding>0,holding,market);
buyshort(开空条件 and holding=0,1,market);
恳请各位好心人帮忙看看,不胜感激,
其中把止损离场和收盘前离场放在一起都用market,是不是可以?
而且在图表中发现有的K线上有两个信号既平空又开多,看着很不舒服,该如何改进

--  作者:jinzhe
--  发布时间:2014/3/19 16:29:12
--  

除了前面的close改h,close改l的

还要这样改

 

sellshort(平空条件 and holding<0,holding,market);
buy(开多条件 and holding=0 and exitbars>0,1,market);
sell(平多条件 and holding>0,holding,market);
buyshort(开空条件 and holding=0 and exitbars>0,1,market);

--  作者:tomato
--  发布时间:2014/3/19 16:59:01
--  
改完了,信号全没了,图片点击可在新窗口打开查看
--  作者:jinzhe
--  发布时间:2014/3/19 17:07:13
--  
input:t(10,1,100,5),d(5);
variable:n=0;
一倍周期开盘价:=ref(open,t),noaxis,nodraw;
两倍周期开盘价:=ref(open,2*t),noaxis,nodraw;
//交易条件
开多条件:=close>ref(open,t) and close>ref(open,2*t) and time<185500;
平多条件:=time=185500 or l<enterprice-d*mindiff;
开空条件:=close<ref(open,t) and close<ref(open,2*t)and time<185500;
平空条件:=time=185500 or h>enterprice+d*mindiff;;
//交易系统
 
if n=0 and 开多条件 and holding=0 then begin
  buy(1,1,market);
  n:=1;
end
if n=0 and 开空条件 and holding=0 then begin
  buyshort(1,1,market);
  n:=1;
end
sellshort(平空条件 and holding<0,holding,market);
buy(开多条件 and holding=0 and exitbars>0 and n=1,1,market);
sell(平多条件 and holding>0 ,holding,market);
buyshort(开空条件 and holding=0 and exitbars>0 and n=1,1,market);

--  作者:tomato
--  发布时间:2014/3/20 8:13:43
--  
谢谢啦,帮了大忙,赞哦~
--  作者:tomato
--  发布时间:2014/3/21 10:49:12
--  
请问版主,这么改的程序为什么有两个buy和buyshort发单动作
if n=0 and 开多条件 and holding=0 then begin
  buy(1,1,market);
  n:=1;
end
if n=0 and 开空条件 and holding=0 then begin
  buyshort(1,1,market);
  n:=1;
end
sellshort(平空条件 and holding<0,holding,market);
buy(开多条件 and holding=0 and exitbars>0 and n=1,1,market);
sell(平多条件 and holding>0 ,holding,market);
buyshort(开空条件 and holding=0 and exitbars>0 and n=1,1,market);


--  作者:lichenghu
--  发布时间:2014/3/21 11:04:17
--  

一个开平仓条件也是可以的,您试试

 

input:t(10,1,100,5),d(5);
一倍周期开盘价:=ref(open,t),noaxis,nodraw;
两倍周期开盘价:=ref(open,2*t),noaxis,nodraw;
//交易条件
开多条件:=close>ref(open,t) and close>ref(open,2*t) and time<185500;
平多条件:=time=185500 or l<enterprice-d*mindiff;
开空条件:=close<ref(open,t) and close<ref(open,2*t)and time<185500;
平空条件:=time=185500 or h>enterprice+d*mindiff;;
sellshort(平空条件 and holding<0,holding,market);
buy(开多条件 and holding=0,1,market);
sell(平多条件 and holding>0 ,holding,market);
buyshort(开空条件 and holding=0 ,1,market);
[此贴子已经被作者于2014/3/21 11:13:00编辑过]

--  作者:tomato
--  发布时间:2014/3/21 11:15:28
--  

如果这么写 信号就差好多,请问这里设置的全局变量n的作用是什么


--  作者:lichenghu
--  发布时间:2014/3/21 11:18:19
--  

exitbars>0  这个影响的,这个导致您开平仓信号不会出现在同一根K线上

 

如果您要不在同一根k线开平仓,就是用原始的代码。