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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 我写的图表交易系统,请高手指点:

   

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


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

主题:我写的图表交易系统,请高手指点:

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


加好友 发短信
等级:论坛游侠 帖子:232 积分:1256 威望:0 精华:0 注册:2010/4/24 21:58:28
我写的图表交易系统,请高手指点:  发帖心情 Post By:2010/9/20 23:51:25    Post IP:116.25.223.123[显示全部帖子]

 

//------------------------
LONG:=C>HHV(5,H);

SHORT:=C<LLV(5,L);
//------------------------


CONBUY:=Long And Not(Ref(Long,1));
CONBUYSHORT:=Short And Not(Ref(Short,1));

CONNo:=OpenPrift>1000 ;


ConTime:=(CURRENTTIME>145920 AND CURRENTTIME<150005);


//不是最后一根Bar,只显示买卖信号(这里给大家提个建议,显示的字体难看啊。。。)

If  Not(IsLastBar) Then Begin


//做多
If ConBuy Then Begin
SellShort(Holding<0,0,ThisClose),TFILTER,ORDERQUEUE;
Buy(Holding=0,1,ThisClose),TFILTER,ORDERQUEUE;
End

 

//做空
If ConBuyShort Then Begin
Sell(Holding>0,0,ThisClose),TFILTER,ORDERQUEUE;
BuyShort(Holding=0,1,ThisClose),TFILTER,ORDERQUEUE;
End

 

//空仓

Sell(CONNO  And holding>0,0,ThisClose);
SellShort(CONNO AND holding<0,0,ThisClose);

End

 

//最后K线

If ConTime And IsLastBar Then Begin

 

//做多
If ConBuy Then Begin
SellShort(Holding<0,0,ThisClose),TFILTER,ORDERQUEUE;
Buy(Holding=0,1,ThisClose),TFILTER,ORDERQUEUE;
End

 

//做空
If ConBuyShort Then Begin
Sell(Holding>0,0,ThisClose),TFILTER,ORDERQUEUE;
BuyShort(Holding=0,1,ThisClose),TFILTER,ORDERQUEUE;
End

 

//空仓
Sell(CONNO  And holding>0,0,ThisClose);
SellShort(CONNO AND holding<0,0,ThisClose);

 

//纠错
If Long And Holding<0 Then SellShort(1,0,MKT);
If Short  And Holding>0 Then Sell(1,0,MKT);

End


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


加好友 发短信
等级:论坛游侠 帖子:232 积分:1256 威望:0 精华:0 注册:2010/4/24 21:58:28
  发帖心情 Post By:2010/9/21 10:34:25    Post IP:116.25.223.123[显示全部帖子]

以下是引用董小球在2010-9-21 10:12:17的发言:

你也不说说你公式要看啥问题,不需要你自己判断是否是最后K线的,系统会自动判断,如果是最后周期的就给你下单,不是最后周期的周期会表示买卖记号而已,不知道你问的是不是这个问题!

 

其实,我把“最后一根K线”和“非最后一根K线”区别开,是想对它们进行不同的处理,因为,交易是在最后一根K线上发生的,所以,我区别开,只在临近收盘时候才下单,避免盘中信号的反复,也让开仓的价格始终尽可能接近当日的收盘价,让真实的盈亏和回测的盈亏尽可能的接近。。。

 

不知道有没有更好的写法呢?


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


加好友 发短信
等级:论坛游侠 帖子:232 积分:1256 威望:0 精华:0 注册:2010/4/24 21:58:28
  发帖心情 Post By:2010/9/21 12:09:01    Post IP:116.25.128.6[显示全部帖子]

以下是引用fly在2010-9-21 10:25:36的发言:
LONG:=C>HHV(5,H);

SHORT:=C<LLV(5,L);

 

HHV和LLV函数用错了,出现低级概念性失误.

 

1.建议改成

H5:=REF(HHV(H,5),1);

L5:=REF(LLV(L,5),1);

 

2.开平仓的时间---模拟的和实盘的要区别对待

http://www.weistock.com/bbs/dispbbs.asp?boardid=2&Id=49

 

这里不是模拟和实盘的区别哈,是这样的,在图表交易中如果使用了 IsLastBar或者CurrentTime,那么图表上就不会显示“回测的开平仓信号”,因为只对最后一根Bar做处理,所以,分开处理,写两段,就是既能让图表上把以前的交易记录显示出来,也能在最后一根BAR的实际交易时,做特殊的处理:比如时间控制、等。。。

 

这样写好不好,大家再思考一下,给点建议啊!

 

 

 

 

 


[此贴子已经被作者于2010-9-21 12:11:08编辑过]

 回到顶部