以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://weistock.com/bbs/list.asp?boardid=2)
----  在走完k线交易和轮询模式中非常蛋疼的问题,始终没有版主给我成熟的解决办法  (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=154554)

--  作者:antonyxu99
--  发布时间:2017/6/1 17:56:02
--  在走完k线交易和轮询模式中非常蛋疼的问题,始终没有版主给我成熟的解决办法
就是在走完k线交易和轮询模式中非常蛋疼的问题:
本来很简单的问题,就是给一个参数,在buy和sell中提供一个模式,是走完k线交易还是即时价交易就完了的事情,
最后搞得非常蛋疼。

走完k线模式肯定是不能满足要求的,因为很多止损都必须是即时价的,遇到极端行情等走完k线估计都爆仓了。
而开仓很多必须要走完k线模式,因为走完k线信号才能稳定,指标什么的也才能稳定。
所以只能在轮询模式中去实现走完k线交易。

在轮训模式中实现走完k线交易,你们给的解决方案是放到次周期开盘价交易来代替走完k线交易,
这个问题就严重了,因为如果是下午收盘的k线,
那次日(或者夜盘)可能出现顺向跳空,我必须要求他当根k线交易,而不能允许到第二天(或者到夜盘)。
这还不是最关键的问题,最关键的问题是,如果次周期开盘价交易,代码结构都会变,因为比如代码应该遵从执行的先后顺序结构,
但是如果是次周期开盘价的,那么所有即时价交易的代码,都要放到开仓代码的后面;
如果是收盘价交易,所有即时价交易的代码要放到开仓代码的前面。最后代码的结构就全搞乱了。

另外一种解决方案就是用dynainfo(207)或者currenttime来判断时间,看是否本根k线快要走完了,
但是这种方案的问题更严重,因为这两个函数都是依赖行情数据刷新的,如果走完k线那几秒成交清淡,
结果时间根本不刷新,结果经常出现信号根本发不出来。

最后的结果就是:我到现在都始终无法真正实现在轮询模式中用走完k线下单。
强烈建议标准版本中提供收盘价交易的模式(轮询模式下)!!!!!!!!!!
否则这么简单的一个问题,一直困扰大家,这可是程序化交易的基础啊!!!!!!!!

--  作者:antonyxu99
--  发布时间:2017/6/1 18:03:50
--  
补充一下,次周期开盘价交易代替走完k线交易,如果是一天收盘的k线,第二天(或者夜盘),可能出现大跳空,所以必须走完k线就要平仓(或者开仓),所以这种方案行不通
--  作者:qwer123
--  发布时间:2017/6/1 19:56:03
--  
不要去追求是全十美,可以这样解决:
1.如果要求不高,对于走完k线可以用下根k线开始价交易;
2.如果怕最后一根k线出信号,可以加一个判断,如果是当日最后一根k线出现信号就提前几秒下单。
3.如果怕交易清淡,不触发交易信号可以这样:
p2:=if(islastbar,dynainfo(207),time);
p2a:=if(islastbar,currenttime,time);
p3a:=time0-timetot0(p2),linethick0;
p3b:=time0-timetot0(p2a),linethick0;
p3:=min(p3a,p3b),linethick0;

提前下单就会有信号消失的问题,必须要用持仓同步来纠正仓位。
用currenttime,就必须保证你的计算机时间必须和交易所的服务器一致。有时候交易所的服务器和标准时间并不一致。

其实,你可以精确测试,下根k线开仓和本根k线结束开仓的差别。我测试的结果影响并不大。


--  作者:antonyxu99
--  发布时间:2017/6/2 10:37:17
--  
谢谢qwer123的耐心解答,我再次仔细观察了一下,dynainfo(207)和currenttime 儿这两个时间是完全一样的,都是靠行情数据刷新,
所以你给的解决方案还是无法解决问题,成交清淡的时候根本发不出信号,我实盘的时候就已经吃了好几次亏了,亏大了!!!!!!

另外顺便说下:不是要求高不高的问题,是彻底的无法解决!!!一会儿让次周期开盘价交易,一会儿让我提前几秒下单,这代码彻底乱了,
每个开平仓逻辑都要判断两次?而且执行顺序还不一样,所以代码的位置都不一样。所以并不是你说的测试差别不大的问题,是根本不解决问题。

所以,无论是次周期开盘,还是提前开平,都是根本无法解决问题的,不是我要求高啊

--  作者:王锋
--  发布时间:2017/6/2 10:39:14
--  

图表在遇到行情交易清淡时是无法保证一直刷新的。

你可以使用后台程序化交易,使用不间断监控功能


--  作者:antonyxu99
--  发布时间:2017/6/2 11:35:49
--  
王锋  你好,我是标准版用户,谢谢。走完k线交易就是典型的时间触发型交易,为什么要有行情数据才能刷新图表产生交易呢?
那1秒轮训,难道轮训完了没有行情也就不交易吗?逻辑上讲不通啊
这是一个非常严重的问题!!!!!
[此贴子已经被作者于2017/6/2 11:37:10编辑过]

--  作者:antonyxu99
--  发布时间:2017/6/2 11:39:40
--  
特别是尾盘交易的问题,尾盘必须交易,否则等到第二天跳空就完蛋了,而尾盘一般是比较清淡的,
所以图表交易中,数据不刷新,就不交易,这是个严重的问题啊,我实盘就是这样亏了好多次

--  作者:wenarm
--  发布时间:2017/6/2 12:36:02
--  

固定时间间隔是按设置的时间取抓取信号。

图表实现的机制就是基于历史数据已经行情更新。另外图表消耗资源比较大, 不可能一刻不停的运行策略,进而会影响策略运行效率。

从逻辑角度看,数据不刷新,策略中的条件判断的状态也不会变化。

5楼中已经说明,可以使用后台程序化方式,进行不间断监控处理。


--  作者:antonyxu99
--  发布时间:2017/6/2 17:41:49
--  
你让我们这些标准版的用户情何以堪啊?????

特别是:走完k线下单就是典型的以时间触发的条件,而不是以行情触发的,所以能增加一个走完k线
下单的触发机制吗?不需要一直不停的轮询
[此贴子已经被作者于2017/6/2 17:43:47编辑过]

--  作者:antonyxu99
--  发布时间:2017/6/2 18:03:13
--  
能麻烦版主给公司建议一下吗?其实非常简单,就是在buy,sell等交易函数中给我们一个
参数,能让我们在走完k线提前几秒钟下单(轮询模式中),确保能下单。
这样一个能够成交的简单要求,都要大费周折的用各种土方法来实现吗?
即便是后台程序化不间断的监控,那不也是土方法吗?我要的仅仅是走完k线下单(轮询模式下,因为止损是即时价)
[此贴子已经被作者于2017/6/2 18:04:14编辑过]