欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件金字塔软件问题提交 → 请教下关于轮询模式下的market作用

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有14182人关注过本帖树形打印复制链接

主题:请教下关于轮询模式下的market作用

帅哥哟,离线,有人找我吗?
qwer123
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小飞侠 帖子:1966 积分:0 威望:0 精华:1 注册:2013/6/15 21:56:35
  发帖心情 Post By:2013/9/11 11:31:13 [显示全部帖子]

还是我来回答吧,你的理解应该也没有问题。问题出在你的下单条件上(1楼所示)
t2=145500---这是什么?这个表达是不对的。你的意思是在14:55:00平仓,那么应该这样写

if currenttime>=145500 and holding>0 then
begin
sell(1,1,market);
end

注意:1.用时间做条件是一般不要使用“=”比如你使用dynainfo(207)=145500,这个可能由于145500没有成交就会没有这个时间,会使的你的交易处问题。
         2.time,好好看看它的说明,并加一个语句    r1:time,linethick0;看看输出结果。

版主评定:好评,获得5个金币奖励好评,获得5个金币奖励
(理由:好文章)
 回到顶部
帅哥哟,离线,有人找我吗?
qwer123
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小飞侠 帖子:1966 积分:0 威望:0 精华:1 注册:2013/6/15 21:56:35
  发帖心情 Post By:2013/9/11 12:24:46 [显示全部帖子]

不客气,我没有细看其他帖子,
那当上一段k线穿越了均线,当前这段k线开盘marketr就会马上开仓了吧,但图表是还没开仓,直到这段k线的收盘才有开仓信号 
如果你这样写:
if cross(ma5,ma10) then
begin
buy(1,1,market);
end
只要是相叉,就有信号,并且就下单;
如果这样写;
if ref(cross(ma5,ma10),1) then
begin
buy(1,1,market);
end
那么在相叉的那根k线是没有信号的,也不会出现下单。但这根k线一开始就会市价下单,而信号标记在下一根k线的开盘价处。所以就会出现实际交易和信号不一致的问题。实际交易是没有问题的,但测试程序的时候肯定不能使用market的,你可以查一下我的帖子,这个问题很好解决的。



 回到顶部
帅哥哟,离线,有人找我吗?
qwer123
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小飞侠 帖子:1966 积分:0 威望:0 精华:1 注册:2013/6/15 21:56:35
  发帖心情 Post By:2013/9/11 15:58:35 [显示全部帖子]

不好意思,我也记不住了,如果你只是要解决测试问题,把market换成limitr就可以,仍已均线交叉为例;

if ref(cross(ma5,ma10),1) then
begin
buy(1,1,limitr,o+1.0);
end
如果只是止损,建议吧1.0改成2.0,这样和实盘就很接近了。

如果你要测试一交叉就下单,然后信号消失自动同步,可以这样测试,
1.首先要计算出交叉时的点位,这个好算,你看看阿火的贴子。比如这个点位是a1.(对于均线好办,其他公式还是有一定难度的。)

if h>=a1 then 
begin
buy(1,1,limitr,c+1.0);
end
if ref(h,1)>a1 and ref(c,1)<a1 then
begin
sell(holding>0,1,limitr,o-1.0);
end

所以测试要根据你策略来,和交易程序是不一样的。你也可以用图表程序模拟测试挂单交易的情况。



[此贴子已经被作者于2013/9/11 15:59:32编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
qwer123
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小飞侠 帖子:1966 积分:0 威望:0 精华:1 注册:2013/6/15 21:56:35
  发帖心情 Post By:2013/9/11 16:04:20 [显示全部帖子]

有点错误修改一下:

if ref(cross(ma5,ma10),1) then
begin
buy(1,1,limitr,o+1.0);
end
如果只是止损,建议吧1.0改成2.0,这样和实盘就很接近了。

如果你要测试一交叉就下单,然后信号消失自动同步,可以这样测试,
1.首先要计算出交叉时的点位,这个好算,你看看阿火的贴子。比如这个点位是a1.(对于均线好办,其他公式还是有一定难度的。)

if h>=a1 then 
begin
buy(1,1,limitr,a1+1.0);
end
if ref(h,1)>a1 and ref(c,1)<a1 then
begin
sell(holding>0,1,limitr,o-1.0);
end

所以测试要根据你策略来,和交易程序是不一样的。你也可以用图表程序模拟测试挂单交易的情况。


 回到顶部