以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  [求助]老师能帮忙看看么!  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=4443)

--  作者:xian_0_9
--  发布时间:2010/12/15 16:08:06
--  [求助]老师能帮忙看看么!

源码:

B:=VALUEWHEN(DATE<>REF(DATE,1),OPEN);

duo:=h>b and time >090000 and time <135500;
if duo then
  begin
  sellshort(holding<0,holding,limitr,h);
  buy(holding=0,1,limitr,h);
  end

 

kong:=l<b and time >090000 and time <135500;
if kong then
  begin
  sell(holding>0,0,limitr,l);
  buyshort(holding=0,1,limitr,l);
  end

sell ( time>145500 and holding>0,0,thisclose);
sellshort(time >145500 and holding<0,0,thisclose); 

 

我想写价格大于开盘价做多。
价格小于开盘价做空。

但是实际上有的K线的l小于开盘价而且h大于开盘价。
而且在图标交易中,显示开多的信号都是在涨过开盘价的那个K线的最高价,显示开空的信号在跌破开盘价的那个K线的最低价。
而不是显示在突破开盘价的地方。
比如当日开盘价是5000,价格达到5001了应该做多,用程序化交易这时候会下单,但是信号走出来后,会显示在突破开盘价的K线的最高价格5010.

还有如果当价格达到5001了,又跌到4999了。那么刚才的信号就消失了。
如何写让信号不会消失呢?我这么写错在哪?

 

 


--  作者:fly
--  发布时间:2010/12/15 16:21:01
--  

跟楼主写的开平仓指令有关系.

详细可参考置顶教程里的《金字塔程式化交易设计指南》(高级篇),建议楼主先从初级篇开始学起,这样会学习的比较全面.

http://www.weistock.com/bbs/dispbbs.asp?boardid=2&Id=370

 

 

B:=VALUEWHEN(DATE<>REF(DATE,1),OPEN);

duo:=h>b and time >090000 and time <135500;
if duo then
  begin
  sellshort(holding<0,holding,limitr,c); //也可以把这里的LIMITR改成THISCLOSE试试,后面价格可省略
  buy(holding=0,1,limitr,c);                 //同上
  end

 

kong:=l<b and time >090000 and time <135500;
if kong then
  begin
  sell(holding>0,0,limitr,c);                 //同上
  buyshort(holding=0,1,limitr,c);         //同上
  end

 

sell ( time>145500 and holding>0,0,thisclose);
sellshort(time >145500 and holding<0,0,thisclose); 


--  作者:金字塔
--  发布时间:2010/12/15 16:31:05
--  

B:=VALUEWHEN(DATE<>REF(DATE,1),OPEN);

duo:=h>b and time >090000 and time <135500;
if duo then
  begin
  sellshort(holding<0,holding,limitr,b+3*MINDIFF);
  buy(holding=0,1,limitr,b+3*MINDIFF);
  end

 

kong:=l<b and time >090000 and time <135500;
if kong then
  begin
  sell(holding>0,0,b-3*MINDIFF);
  buyshort(holding=0,1,limitr,b-3*MINDIFF);
  end

sell ( time>145500 and holding>0,0,thisclose);
sellshort(time >145500 and holding<0,0,thisclose);