以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (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=159404)

--  作者:qq代人发帖
--  发布时间:2017/11/10 12:53:08
--  时间改成任何品种的开盘时间?
CYC:=BARSLAST(DATE>REF(DATE,1))+1;                               //统计日内K线数
HIGHESTOF30MIN:=VALUEWHEN(time=010000+NMIN*100,HHV(H,CYC));         //在从开盘到设定时间(默认参数开盘15分)内保存当天最高价
LOWESTOF30MIN:=VALUEWHEN(time=010000+NMIN*100,LLV(L,CYC));         //在从开盘到设定时间(默认参数开盘15分)内保存当天最低价
时间改成任何品种的开盘时间?

--  作者:pyd
--  发布时间:2017/11/10 13:05:28
--  

意思是求开盘后第一个15分钟的最高价?

上边写法不通用,最好是把开盘时间转换成秒

aa:T0TOTIME(TIMETOT0( opentime(1))+60*15);//(把开盘时间转换成秒+15分钟*60秒),再把秒转换成时间

m15:VALUEWHEN(time=aa,HHV(H,todaybar)); 


--  作者:系统使用者
--  发布时间:2017/11/10 13:43:32
--  
适合任何品种的开盘时间,求开盘后到15分这段时间的最高最低价。

跌破开盘到15分最低点开空,止损开盘到15分这段时间的最高点+1滑点止损;
做多相反。

--  作者:系统使用者
--  发布时间:2017/11/10 14:01:55
--  
CYC:=BARSLAST(DATE>REF(DATE,1))+1;                               //统计日内K线数
HIGHESTOF30MIN:=VALUEWHEN(opentime(1)+NMIN*100,HHV(H,CYC));         //在从开盘到设定时间(默认参数开盘15分)内保存当天最高价
LOWESTOF30MIN:=VALUEWHEN(opentime(1)+NMIN*100,LLV(L,CYC));         //在从开盘到设定时间(默认参数开盘15分)内保存当天最低价

IF HIGH >= HIGHESTOF30MIN + NOFFSET*MINDIFF AND HOLDING<=0  THEN  //如果最高价突破设定时间内的前高加设定偏移并且目前没有多单,那么
BEGIN
 MYPRICE: = HIGHESTOF30MIN + NOFFSET*MINDIFF;          //预设进场价.既等于设定时间内的前高加设定偏移
 IF OPEN > MYPRICE THEN                               //如果开盘价大于预设进场价,那么奋不顾身闯进去.
 BEGIN
  MYPRICE: = OPEN;
  SELLSHORT(HOLDING<0,0,LIMITR,MYPRICE);            //如果有空单先平
  BUY(HOLDING=0,LOTS,LIMITR,MYPRICE);              //如果没有多单则以开盘价开多LOTS手
 END
END
IF LOW <= LOWESTOF30MIN - NOFFSET*MINDIFF AND HOLDING>=0  THEN      //以下开空部分同上,只不过方向相反
BEGIN
 MYPRICE: = LOWESTOF30MIN - NOFFSET*MINDIFF;
 IF OPEN < MYPRICE THEN
 BEGIN
  MYPRICE: = OPEN;
  SELL(HOLDING>0,0,LIMITR,MYPRICE);
  BUYSHORT(HOLDING=0,LOTS,LIMITR,MYPRICE);
 END
END

//平仓
m5:=(t0totime(timetot0(closetime(0))-60*5));
if time>=m5 then begin
收盘平多:SELL(1,LOTS,MARKET);
收盘平空:SELLSHORT(1,LOTS,MARKET);
END
不显示,哪里错误?

--  作者:系统使用者
--  发布时间:2017/11/10 14:07:30
--  
aa:=T0TOTIME(TIMETOT0( opentime(1))+60*15);                            //统计日内K线数
HIGHESTOF30MIN:=VALUEWHEN(time=aa,HHV(H,todaybar));         //在从开盘到设定时间(默认参数开盘15分)内保存当天最高价
LOWESTOF30MIN:=VALUEWHEN(time=aa,LLV(H,todaybar));         //在从开盘到设定时间(默认参数开盘15分)内保存当天最低价

IF HIGH >= HIGHESTOF30MIN + NOFFSET*MINDIFF AND HOLDING<=0  THEN  //如果最高价突破设定时间内的前高加设定偏移并且目前没有多单,那么
BEGIN
 MYPRICE: = HIGHESTOF30MIN + NOFFSET*MINDIFF;          //预设进场价.既等于设定时间内的前高加设定偏移
 IF OPEN > MYPRICE THEN                               //如果开盘价大于预设进场价,那么奋不顾身闯进去.
 BEGIN
  MYPRICE: = OPEN;
  SELLSHORT(HOLDING<0,0,LIMITR,MYPRICE);            //如果有空单先平
  BUY(HOLDING=0,LOTS,LIMITR,MYPRICE);              //如果没有多单则以开盘价开多LOTS手
 END
END
IF LOW <= LOWESTOF30MIN - NOFFSET*MINDIFF AND HOLDING>=0  THEN      //以下开空部分同上,只不过方向相反
BEGIN
 MYPRICE: = LOWESTOF30MIN - NOFFSET*MINDIFF;
 IF OPEN < MYPRICE THEN
 BEGIN
  MYPRICE: = OPEN;
  SELL(HOLDING>0,0,LIMITR,MYPRICE);
  BUYSHORT(HOLDING=0,LOTS,LIMITR,MYPRICE);
 END
END

//平仓
m5:=(t0totime(timetot0(closetime(0))-60*5));
if time>=m5 then begin
收盘平多:SELL(1,LOTS,MARKET);
收盘平空:SELLSHORT(1,LOTS,

--  作者:系统使用者
--  发布时间:2017/11/10 14:07:47
--  
这样开平也错误
--  作者:yukizzc
--  发布时间:2017/11/10 14:47:52
--  
输出高点看下呢,完全没有问题就是前15分钟的高值