以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- 信号出现怎么延时确定? (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=152740) |
-- 作者:a383623133 -- 发布时间:2017/5/11 15:04:03 -- 信号出现怎么延时确定? 后台程序化,固定每1秒轮循模式: 怎么实现盘中信号出现后开始计时,持续10秒再开仓,如果中途信号有消失再出现将重新计时。。 请教该怎么表达,越简单越好?
|
-- 作者:a383623133 -- 发布时间:2017/5/11 15:38:31 -- 比方我用1分钟周期,价格>100就出信号,然后引用1秒钟行情,连续5秒>100再确认信号,这种做法可行否? |
-- 作者:wenarm -- 发布时间:2017/5/11 15:44:35 -- http://www.weistock.com/bbs/dispbbs.asp?BoardID=4&ID=2183 6楼 |
-- 作者:a383623133 -- 发布时间:2017/5/11 15:54:33 -- 双向都开的话是不是这样编写: 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) |
-- 作者:a383623133 -- 发布时间:2017/5/11 16:04:11 -- 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,请问这是正常的吗?
|
-- 作者:a383623133 -- 发布时间:2017/5/11 16:31:56 -- ??没人解答吗? |
-- 作者:wenarm -- 发布时间:2017/5/11 16:52:13 -- EXTGBDATASET仅在最后一根K线起作用,无法做迭代运算
|