以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://www.weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://www.weistock.com/bbs/list.asp?boardid=2)
----  [求助]]图表程序化交易,没有下单  (http://www.weistock.com/bbs/dispbbs.asp?boardid=2&id=82022)

--  作者:dustbill
--  发布时间:2015/8/4 13:24:38
--  [求助]]图表程序化交易,没有下单

图表程序化交易,固定时间间隔,间隔1秒,并选择“高频”,运行在1分钟周期。代码如下所示,想表达最新价大于开盘价一个MINDIFF时开仓。

IF ISBUY=0 AND CLOSE>=OPEN+MINDIFF THEN
BEGIN
    BUY(1,1,MARKETR);
    ISBUY:=1;
END;

其中ISBUY是GLOBALVARIABLE变量,初始化为0,在本周期最后一秒中平仓并将ISBUY设置为0。

在屏幕上监控ISBUY的值,可以发现,平时为0,当满足条件时,ISBUY输出为1,即说明此事是满足了开仓条件,但系统并没有下单,图中也没有开多信号,日志中也没有下单记录。

请问可能是什么原因,谢谢。

 


[此贴子已经被作者于2015/8/4 13:25:09编辑过]

--  作者:pyd
--  发布时间:2015/8/4 13:33:47
--  
条件不稳定,CLOSE>=OPEN+MINDIFF 中的close在k线走完之前是会变的,过后条件满足可能当时不满足,建议用走完一根k线模式
--  作者:dustbill
--  发布时间:2015/8/4 13:40:14
--  
是的,条件不稳定,但我用的是固定间隔模式,条件满足时,应该开仓才对啊,因为从代码上看,已经执行到ISBUY:=1了,那么之前的BUY(1,1,MARKETR)也应该是执行到了才对。

--  作者:pyd
--  发布时间:2015/8/4 13:56:52
--  

日志中没有这样的触发记录吗? 没有的话就说明检测下单的那一刻是不满足条件的,建议用走完k线

2015.07.30 10:05:59【图表】框架:Technic 触发下单 BUY 品种 IF00 下单K线 2015.07.30 10:06:00 公式:Formula3 窗格ID:0 代码行:1

[此贴子已经被作者于2015/8/4 13:57:21编辑过]

--  作者:dustbill
--  发布时间:2015/8/4 14:40:02
--  

是的,日志中没有触发记录,让我不明白的是ISBUY明明已经被赋值为1了啊,那为什么在同一个条件判断中上一句的BUY()没有触发。

 

本策略确实需要盘中开仓,不能用走完K线模式。策略的想法如下:在1分钟周期上,如果最新价大于OPEN+MINDIFF(CLOSE>=OPEN+MINDIFF),开仓,盈利3个点或亏损1个点或在最后一秒平仓。

在实际策略中存在如下两个问题:

1、在同一根K线上重复开仓,所以拟使用GLOBALVARIABLE变量来控制重复开仓;

2、因为是用的图表程序化交易,固定轮询模式,盘中有信号时即开仓,但平仓时,如果没有CLOSE>=OPEN+MINDIFF的条件,则该K线上就没有开仓信号,相应的平仓操作也不会执行。


--  作者:十世
--  发布时间:2015/8/4 15:20:32
--  

1、在同一根K线上重复开仓,所以拟使用GLOBALVARIABLE变量来控制重复开仓;

 

图表程序化,同一根K线,开仓条件相同时,只会有一次开仓。要想同一根K先多次开仓,请用不同的条件判断。

 

2、但系统并没有下单,图中也没有开多信号

 

图上没有开多信号,说明当时的条件不满足。可以把 ISBUY=0 AND CLOSE>=OPEN+MINDIFF 这两个条件分别当作变量输出,看看当时是哪个不满足。现在盘后了,可以使用软件的“分笔回放”功能观察验证。

 

 

[此贴子已经被作者于2015/8/4 15:27:58编辑过]