我想请问一下 金字塔一句buy语句只能执行一次。 因为每次重新启动程序化的,语句都会重置,或者单根K线采用固定间隔时间轮询时,会应为tick数据反复出现而满足开平仓条件就会不停开平仓。 那有没有办法来限制开仓的次数? 采用以下方法,使用GETREGVAL()EXTGBDATASET() IF HOLDING=0 THEN BEGIN //若持仓为0 IF ENTRYLONGCOND&&mholding=0 THEN BEGIN //且满足开多条件 mholding:=mholding+1; EXTGBDATASET('mholding',mholding); BUY(1,手数,LIMITR,KDL),IGNORECHECKPRICE;//开多单 KPJ:=MAX(OPEN,UPPERBAND); END END 这样在5分钟K线下,即使采用固定1秒轮询(Tick)下反复满足ENTRYLONGCOND,也会因为开一次仓后mholding>=1而在一根K线下开一次仓!谢谢 |
或者单根K线采用固定间隔时间轮询时,会应为tick数据反复出现而满足开平仓条件就会不停开平仓。 那有没有办法来限制开仓的次数? IF HOLDING=0 THEN BEGIN //若持仓为0 IF ENTRYLONGCOND&&mholding=0 THEN BEGIN //且满足开多条件 mholding:=mholding+1; SETREGVAL('J8','mholding',mholding); BUY(1,手数,LIMITR,KDL),IGNORECHECKPRICE;//开多单 KPJ:=MAX(OPEN,UPPERBAND); END END 这样在5分钟K线下,即使采用固定1秒轮询(Tick)下反复满足ENTRYLONGCOND,也会因为开一次仓后mholding>=1而在一根K线下开一次仓!谢谢 老师,我问的是5分钟K线,信号采用的是固定间隔1秒轮询下,而不是走完K。所以经常出现反复开仓,现在我才用上面的方法,老师看看能不能控制开仓次数。 |
图表不支持是用注册表这类没有历史值的函数,会造成历史信号闪烁。自然holding作为图表的历史理论持仓,自然无法有效控制,因为它一直在变化。