信号出现怎么延时确定? [金字塔]
-
咨询内容:
后台程序化,固定每1秒轮循模式:怎么实现盘中信号出现后开始计时,持续10秒再开仓,如果中途信号有消失再出现将重新计时。。请教该怎么表达,越简单越好?
-
金字塔客服:
比方我用1分钟周期,价格>100就出信号,然后引用1秒钟行情,连续5秒>100再确认信号,这种做法可行否?
来源:程序化久久网( WWW.CXH99.COM )
-
用户回复:
http://www.weistock.com/bbs/dispbbs.asp?BoardID=4&ID=2183
6楼
-
网友回复:
双向都开的话是不是这样编写:
MA1:MA(CLOSE,3);
MA2:MA(CLOSE,5);
CROS:=CROSS(MA1,MA2);
CROS2:=CROSS(MA2,MA1);
BUY1:=FALSE;
IF ISLASTBAR THEN
BEGIN
IF CROS THEN
BEGIN
//将当前信号周期置全局变量数据库
//数据名字前加信号周期,标记周期位置
CRTEMP:='TEMP1'&NUMTOSTR( BARPOS, 0);
//读取原有变量的时间,判断是否到延时时间
BUYTIME1:=EXTGBDATA(CRTEMP);
BUYTIME2:=TIMETOT0(CURRENTTIME);
DEBUGOUT('D1 %.0f',BUYTIME1);
IF BUYTIME1 > 1 THEN //第一次信号的原数据库读取会得到0值
BEGIN
DEBUGOUT('D2 %.0f',BUYTIME2 - BUYTIME1);
IF BUYTIME2 - BUYTIME1 > 15 THEN
BEGIN
//大于15秒的延迟,表示信号已经得到确认
BUY1:=TRUE;
END
END
ELSE
BEGIN
//第一次信号位置记录
EXTGBDATASET(CRTEMP,TIMETOT0(CURRENTTIME));
END
END
ELSE
BEGIN
//否则表示信号中间消失了
CRTEMP:='TEMP1'&NUMTOSTR( BARPOS, 0);
EXTGBDATASET(CRTEMP,0);
END
END
TBUY(BUY1,1,lmt,c);
TSELL(CROS2,0,lmt,c);
TBUYSHORT1:=FALSE;
IF ISLASTBAR THEN
BEGIN
IF CROS2 THEN
BEGIN
//将当前信号周期置全局变量数据库
//数据名字前加信号周期,标记周期位置
2CRTEMP:='TEMP1'&NUMTOSTR( BARPOS, 0);
//读取原有变量的时间,判断是否到延时时间
2BUYTIME1:=EXTGBDATA(2CRTEMP);
2BUYTIME2:=TIMETOT0(CURRENTTIME);
DEBUGOUT('D1 %.0f',2BUYTIME1);
IF 2BUYTIME1 > 1 THEN //第一次信号的原数据库读取会得到0值
BEGIN
DEBUGOUT('D2 %.0f',2BUYTIME2 - 2BUYTIME1);
IF 2BUYTIME2 - 2BUYTIME1 > 15 THEN
BEGIN
//大于15秒的延迟,表示信号已经得到确认
TBUYSHORT1:=TRUE;
END
END
ELSE
BEGIN
//第一次信号位置记录
EXTGBDATASET(2CRTEMP,TIMETOT0(CURRENTTIME));
END
END
ELSE
BEGIN
//否则表示信号中间消失了
2CRTEMP:='TEMP1'&NUMTOSTR( BARPOS, 0);
EXTGBDATASET(2CRTEMP,0);
END
END
TBUYSHORT( TBUYSHORT1,1,lmt,c);
TSELLSHORT(CROS,0,lmt,c)
-
网友回复:
17.05.11 16:03:24 HSI05
2D1 0
17.05.11 16:03:24 HSI05
运行结束
17.05.11 16:03:24 HSI05
2D1 0
17.05.11 16:03:24 HSI05
运行结束
17.05.11 16:03:24 HSI05
2D1 0
17.05.11 16:03:24 HSI05
运行结束
17.05.11 16:03:24 HSI05
2D1 0
17.05.11 16:03:24 HSI05
运行结束
经过观察:空信号出现后, 2D1 会有跳出来,但始终显示0,请问这是正常的吗?
有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友
可联系技术人员 QQ: 511411198 进行 有偿 编写!(不贵!点击查看价格!)
相关文章
-
没有相关内容