开拓者期货期权程序化系统交易论坛

标题: 发个系统,提供源码,效果还可以 [打印本页]

作者: 穿堂风    时间: 2011-6-16 12:38:26     标题: 发个系统,提供源码,效果还可以

本帖最后由 穿堂风 于 2011-6-16 18:17 编辑

默认参数,试了下两个品种RB,SR,还可以,有细推敲的潜力。
SR
[attach]4683[/attach]
[attach]4684[/attach]
RB
[attach]4685[/attach]
[attach]4686[/attach]
作者: 穿堂风    时间: 2011-6-16 12:40:27

详细测试大家可以去试试
  1. //------------------------------------------------------------------------
  2. // 简称:
  3. // 名称:
  4. // 类别: 公式应用
  5. // 类型: 用户应用
  6. // 作者: 穿堂风
  7. // 输出: 2011.06.16
  8. //------------------------------------------------------------------------

  9. Params
  10. Numeric EntryStop(0.5);
  11. Numeric stop(0.5);
  12. Numeric malen(60);
  13. Vars
  14. Numeric ma;

  15. Begin
  16. ma = Average(open,malen);
  17. if(CurrentBar > malen)
  18. {
  19.         if(MarketPosition == 0)
  20.         {
  21.                 if(Open >= ma)
  22.                 {
  23.                         if(high/open >= 1+EntryStop/100)
  24.                         {
  25.                                 Buy(1,open*(1+EntryStop/100));
  26.                                 Return;
  27.                         }
  28.                 }
  29.                 Else
  30.                 {
  31.                         if(low/open <= 1-EntryStop/100)
  32.                         {
  33.                                 SellShort(1,open*(1-EntryStop/100));
  34.                                 Return;
  35.                         }
  36.                 }
  37.         }

  38.         if(MarketPosition == 1)
  39.         {
  40.                 if(low/open <= 1-stop/100)
  41.                 {
  42.                         sell(1,open*(1-stop/100));
  43.                         Return;
  44.                 }
  45.         }

  46.         if(MarketPosition == -1)
  47.         {
  48.                 if(High/open >= 1+stop/100)
  49.                 {
  50.                         BuyToCover(1,open*(1+stop/100));
  51.                         Return;
  52.                 }
  53.         }
  54. }
  55. End
复制代码

作者: 穿堂风    时间: 2011-6-16 20:20:56

V2版,没有过度优化参数,只是引入资金管理和风险控制。
感觉提升空间不是很大
RB
[attach]4691[/attach]
SR
[attach]4690[/attach]
作者: 欲速不达    时间: 2011-6-16 22:58:59

回复 3# 穿堂风

该系统测试结果不真实,会有在同一bar上出现既开多又开空还平仓的条件同时满足的情况出现,究竟谁先出现无法辨别,其中,隐藏的信号消失平仓产生的亏损就没有也无法在测试中体现。因此,实际情况会远远逊色于测试结果。
作者: 穿堂风    时间: 2011-6-17 13:29:25

回复  穿堂风

该系统测试结果不真实,会有在同一bar上出现既开多又开空还平仓的条件同时满足的情况出现, ...
欲速不达 发表于 2011-6-16 22:58



    我只能说你没认真看代码,请仔细看。
一个bar上只会有一个动作,要么开仓,要么平仓;
一个bar上只会有一个方向的动作,open一出来就注定了只能开多或开空;
作者: 穿堂风    时间: 2011-6-17 15:44:44

本帖最后由 穿堂风 于 2011-6-17 15:47 编辑

根据升级后的V2改装了一个日内系统
同样使用RB,SR测试,默认参数,未作优化
RB
[attach]4695[/attach]
SR
[attach]4696[/attach]
作者: 欲速不达    时间: 2011-6-17 15:58:11

回复 5# 穿堂风

你实际运行后就知道了
作者: 穿堂风    时间: 2011-6-17 16:38:07

回复  穿堂风

你实际运行后就知道了
欲速不达 发表于 2011-6-17 15:58



     代码就这几行,我实在看不出来
如果空仓,因为又if(Open >= ma)这样的条件限定,它只会开一个方向的仓,不会出现又满足开多,又满足开空,无法区分先后的问题,限定方向达到开仓要求即开仓,另一个方向就算达到要求也不会开仓,会被过滤掉,而且ma也是以open来计算的,不会闪烁
一个bar上边,不管是开还是平,只会发生一个动作,然后被return,根本不会在一个bar上边开仓后,又需要平仓,也不会平仓后在一个bar上又想开仓。
作者: 穿堂风    时间: 2011-6-17 16:48:35

回复  穿堂风

你实际运行后就知道了
欲速不达 发表于 2011-6-17 15:58



    光从代码逻辑上我确实没看出来。
如果V4会有这方面的问题,那我就不知道了,这个系统我不会去用,所以也不想去实际跑
发给大家参考,或许能多个思路
作者: 天道行健    时间: 2011-6-18 19:36:28

学习了!
作者: rypan    时间: 2011-6-20 15:36:42

后两个markposition判断用else if
作者: beijib    时间: 2011-6-20 20:07:20

测试效果还可以,日内放在几分钟周期上了?
作者: cym138    时间: 2011-6-20 21:39:47

开平仓要用最高最低价判断,这里有未来数据的成份。
如:if(high/open >= 1+EntryStop/100)
在K线未走完时“HIGH”是会变的。
作者: eastpeace    时间: 2011-6-21 08:49:45

回复 13# cym138

感谢楼主提供思路,
另外楼上的,high,low作为极值,在系统交易里能够提供稳定的信号,而不会出去消失与反复的交易信号.当然你是要用high买大于某个标准的买入条件,或者low小于某个标准作为卖出条件.
作者: 穿堂风    时间: 2011-6-21 08:55:00

开平仓要用最高最低价判断,这里有未来数据的成份。
如:if(high/open >= 1+EntryStop/100)
在K线未走完时 ...
cym138 发表于 2011-6-20 21:39



    晕死了,这样做正是解决未来数据的
在一个bar上,high只会越来越高,当high收盘达到了条件,盘中肯定已经达到过条件
很多系统都会牵扯到high和low的这种写法,老兄09年注册的,挺奇怪
作者: cym138    时间: 2011-6-21 09:26:23

回复 15# 穿堂风


但等K线走完时high/open 与已触发下单价是会有差别。
作者: rypan    时间: 2011-6-21 10:08:04

本帖最后由 rypan 于 2011-6-21 10:10 编辑

LZ的想法是对的。只是程序写的不够清晰。

简单的说,就是带均线过滤的固定百分比通道突破。
作者: 穿堂风    时间: 2011-6-21 12:44:39

回复  穿堂风


但等K线走完时high/open 与已触发下单价是会有差别。
cym138 发表于 2011-6-21 09:26



    恩,是会变,但不会影响它曾经到过那个点位,只要它曾经到过那个点位,就会触发成交,跟它走完时收盘价是没关系的,成交价当然是第一次到达那个点位时成交,以致后来到底行情会怎样,那是不知道的。实盘时也是这样,只要它曾经到过那个点位,肯定会发生交易。
作者: cym138    时间: 2011-6-21 16:41:30

这个系统如果用历史数据测试会有较大出入。
历史数据测试时:
多头开仓,开仓价其实一般都会比真正第一次的触发价高。除非触发后这个K线无创新高。
多头平仓,平仓价其实一般都会比真正第一次的触发价低。除非触发后这个K线无创新低。
空头刚相反。

一般历史数据测试过关才模拟,两种测试都过关就可实盘。但这个系统用历史数据测试出入较大。这样就只能用模拟测试,模拟测试是比较花时间的。这个系统盈利能力不易观察到。
作者: cym138    时间: 2011-6-21 17:10:56

LZ的想法是对的。只是程序写的不够清晰。

简单的说,就是带均线过滤的固定百分比通道突破。 ...
rypan 发表于 2011-6-21 10:08


是个老手,一看就知道。
作者: 穿堂风    时间: 2011-6-21 19:35:13

这个系统如果用历史数据测试会有较大出入。
历史数据测试时:
多头开仓,开仓价其实一般都会比真正第一次的 ...
cym138 发表于 2011-6-21 16:41



    恩,是的,历史回测只是验证模型是否有可操作性,要实盘操作,还要分析很多东西,因为历史测试是以历史行情来附和现有模型。
另外,你说的其实是滑点问题,这个大家都知道的,在实盘前要做一个压力测试,双倍手续费,滑点设置为2,4……都试试,如果还表现的很健壮,又无未来数据,才可以实盘试水
作者: 穿堂风    时间: 2011-6-21 19:48:29

能发出来的模型,也都是简单阐述下核心理念
实盘模型会在核心理念上附加很多,如容错、资金管理、风险控制、模型组合等方面的东西,所以代码会比较长,也比较复杂(复杂只是各方面考虑较多,核心理念并不太复杂),这样的模型发出来很难理解,也很少有人会把这种模型无私的发出来吧,国内还是较少。
一个模型的成型到信号准确再到模拟验证,再到实盘试水,这个过程会比较长,严密的思维逻辑性会缩短一些这个过程。
作者: 飞跃    时间: 2011-7-9 19:31:26

呵呵
Else后面是不是应该加上
Else if(Open <= ma)
{
     ......
}
作者: 穿堂风    时间: 2011-7-9 21:07:03

本帖最后由 穿堂风 于 2011-7-9 21:10 编辑
呵呵
Else后面是不是应该加上
Else if(Open
飞跃 发表于 2011-7-9 19:31



    恩,加上会严谨些。不过要加,应该是Else if(Open<ma),因为上边的if已经判断>=的情况,再在else if判断"="的情况没意义了
作者: speed_fj    时间: 2011-7-10 19:28:57

兄弟开始发力了
作者: kings425    时间: 2011-7-18 00:32:53

恩,是的,历史回测只是验证模型是否有可操作性,要实盘操作,还要分析很多东西,因为历史测试是以历史行情来附和现有模型。
另外,你说的其实是滑点问题,这个大家都知道的,在实盘前要做一个压力测试,双倍手续费,滑点设置为2,4……都试试,如果还表现的很健壮,又无未来数据,才可以实盘试水


穿堂风 发表于 2011-6-21 19:35


滑点也要看品种活跃度的吧?
作者: zhy88    时间: 2011-7-30 09:30:42

bu cuo  a  ,xiexie
作者: lzl563    时间: 2011-8-22 23:24:44

顶了再看。。。
作者: zjfuwen    时间: 2011-10-9 21:24:59

if(MarketPosition == -1)

        {

                if(High/open >= 1+stop/100)

                {

                        BuyToCover(1,open*(1+stop/100));

                        Return;

                }

        }

好像这样是平不了仓的啊,触发后如果不回档,当前价根本到不了open*(1+stop/100)怎么能成交呢
作者: zjfuwen    时间: 2011-10-9 21:39:34

触发价位后,不回档,如果收光头阳线和光脚阴线,会很抓狂的
作者: pttost    时间: 2011-10-10 09:17:34

有利价格可以成交
作者: 穿堂风    时间: 2011-10-10 10:08:47

if(MarketPosition == -1)

        {

                if(High/open >= 1+stop/100)

                {
...
zjfuwen 发表于 2011-10-9 21:24


第一次触发,价格就在open*(1+stop/100),以这个价格发单没问题啊,实盘可以加上跳空判断和滑点.   
High/open >= 1+stop/100,只是说条件在盘中肯定成立过,第一次成立时就发单了.第一次成立时的点位就是open*(1+stop/100)
作者: haikov    时间: 2011-10-12 17:33:57

好贴,顶一个。
作者: xiaoshansanzhi    时间: 2011-10-14 16:21:19

学习了不错
作者: ybwusheng    时间: 2011-10-18 11:44:39

好帖,希望论坛的朋友,大侠多提供!我们新手可以借鉴。
作者: livepu    时间: 2011-10-21 21:39:18

V2版,没有过度优化参数,只是引入资金管理和风险控制。
感觉提升空间不是很大
RB

SR
...
穿堂风 发表于 2011-6-16 20:20


资金管理,真学问啊。
作者: robert3144    时间: 2011-10-30 22:02:37

请教一下,这个系统,是用在什么时间周期上的啊?5分钟?15分钟?
多多指教!
作者: zcome    时间: 2011-10-31 09:53:32

我这个新手还需要多学习啊。。。
作者: hal5667    时间: 2011-12-15 09:45:39

没有逻辑问题,加上滑点压力测试即可使用;
作者: cqalan    时间: 2011-12-15 11:19:51

晚上回去研究一下
作者: cqalan    时间: 2011-12-20 23:25:29

学习一下
作者: polo8842    时间: 2011-12-21 11:23:18

还是有一点不明白,测试中如何判断行情先下后上 还是 先上后下
作者: gzadigo    时间: 2012-1-2 08:47:18

穿堂风是高手。之前他有不少共享的有点纰漏主要是实盘会有问题,我还以为他的水平不够。其实实盘的代码是比较复杂,共享意义也不大,否则懒虫直接拿来用了。。。
非常感谢穿堂风!开阔了大家的视野!
作者: 傻了吧    时间: 2012-1-4 20:43:31

收藏学习~~  
作者: TBSTUDENT992    时间: 2012-1-6 22:27:53

学习了,感谢了。
作者: tzs111111    时间: 2012-1-8 00:41:33

顶一个。。。。。。。。。。。。。。。。。。。。
作者: tzs111111    时间: 2012-1-18 17:04:55

顶了再学。。。。。
作者: dituyu    时间: 2012-1-26 12:48:39

if(CurrentBar > malen)

请问老大,这句话该怎么理解?
作者: jiayu128    时间: 2012-1-26 16:43:17

这句是检测k线是有没有大于60 因为程序里用到了60周期ma
作者: jiayu128    时间: 2012-1-26 16:44:05

k线数量是有没有大于60

我qq 1023719831 欢迎加
作者: xyzqy    时间: 2012-1-31 23:29:35

学习了!
作者: xyzqy    时间: 2012-1-31 23:34:20

好帖,希望论坛的朋友,大侠多提供!
作者: jinlifeng    时间: 2012-2-21 23:47:43

很不错,在默认参数下大部分活跃品种都能盈利
作者: ggyyff    时间: 2012-3-30 21:59:40

思路新颖! 谢谢楼主 学习了
作者: 天崖    时间: 2012-4-27 00:13:14

好帖,希望论坛的朋友,大侠多提供!
作者: 天空之城    时间: 2012-4-27 10:11:34

如果用数据回测功能不出现信号闪烁又没有引用未来数据的话是很不错的系统。
作者: nestneptune    时间: 2012-5-2 23:37:32

学习一下...
作者: XIAOZHAN    时间: 2012-5-3 10:22:06

顶大侠,提供思路,多谢
作者: runcai    时间: 2012-5-3 15:28:12

这个系统有没有名字?
作者: runcai    时间: 2012-5-3 15:36:09

不同品种波动大小不一样,如果把 EntryStop/100 换成 (EntryStop/100)*ATR是不是更好?
作者: sheng2012    时间: 2012-6-26 15:02:21

学习了!
作者: 天崖    时间: 2012-6-26 15:57:31


作者: 多多亮-亮多多    时间: 2012-6-29 19:52:08

谢谢提供 学习了
作者: 几何    时间: 2012-6-29 20:51:55

哈哈。LZ 穿堂风 是个高手,在与大家开了一个玩笑,还顶到了20楼。。其实很简单,你每天如何在尾盘时买到开盘价的单子。大家joke了。
作者: 几何    时间: 2012-6-29 20:58:46

如果LZ 真正发一个有用的 代码,我愿你好人有好报。
作者: 草根。    时间: 2012-7-1 11:39:09

支持下。。。
作者: wstccdpbr    时间: 2012-7-2 18:09:29

学习了,谢谢楼主分享。
作者: yml6363    时间: 2012-7-2 22:37:54

学习了!
作者: sqj888    时间: 2012-7-5 07:46:34

好东西
作者: leovone    时间: 2012-8-5 08:50:52

穿堂风 发表于 2011-6-21 19:48
能发出来的模型,也都是简单阐述下核心理念
实盘模型会在核心理念上附加很多,如容错、资金管理、风险控制 ...

说的很有道理!
作者: 松鹏    时间: 2012-8-19 09:34:15

照着好好琢磨琢磨
作者: feijian0000    时间: 2012-9-5 13:50:40

穿堂风 发表于 2011-6-16 12:40
详细测试大家可以去试试

我拷贝进去,没有信号,不知道什么原因。
作者: feijian0000    时间: 2012-9-5 14:00:51

2个问题:
1.因为该系统是按照当分钟K线的涨跌幅度进场,运用1min级别可能会出现很少的交易信号。运用15分钟还可以。

2.语法错误
声明  numeric ma  是错的  ma是一个序列变量
正确声明如下:
       numericSeries ma
作者: tradingart    时间: 2012-9-5 23:15:05

程序有两个问题:
1. 买入价格的点位已经是过去时,实盘的时候可能会无法成交,实盘应该改成用当时的CLOSE;
2. 用HIGH,LOW进行条件判断的时候,如果在一根K线上HIGH,LOW两个条件都满足的话,平仓之后就会继续开仓,当然按照目前BUY,SELLSHORT价位的写法,那是肯定成交不了的
作者: 期市劫匪    时间: 2012-9-7 21:50:33


作者: flyfish    时间: 2012-9-10 08:49:32

楼主顶楼的两个图都是对30m测试的吧?我觉得很不错啊,系统表现非常稳定,特别是对SR能达到这样的稳定程度,感觉比较难得。
作者: 迎风尿十丈    时间: 2012-9-22 21:09:25

就是一根均线加百分比止损
一般一根k线都有相对于开盘价的正负0.5%的波动
除非一字k线

作者: VG0611    时间: 2012-9-23 19:26:51

会存在问题,在实际当中无法预知先出high还是先出low。而测试中,如果开多开空同时满足则只会做多。
作者: huisee    时间: 2012-10-5 02:25:28


作者: JPMorgan    时间: 2012-10-13 11:09:43

永远持有仓位
作者: CHAXINQING    时间: 2012-11-17 20:07:03

坚持最难
作者: 菲儿飞520    时间: 2012-12-9 19:21:42

一个简单思路
作者: 菲儿飞520    时间: 2012-12-9 19:28:54

晕死了 ,代码的错误在于:严重偷价格了。呵呵 。  高手也犯低级错误 。呵呵。看来认真最重要。
作者: tcx    时间: 2012-12-9 21:04:06


作者: shanzi168    时间: 2012-12-19 19:23:14

感谢分享!!!!!!!!!!!!!!!!!!
作者: 石破总会天惊    时间: 2013-1-15 15:59:38

穿堂风 发表于 2011-6-16 12:40
详细测试大家可以去试试

楼主程序确实有逻辑问题,例如历史的某根K线,满足了open>ma,但是他最高点大于开多仓的价格,同时最低点小于开空仓的价格,我们不知道当天是先触发高点还是先触发低点,而程序就统一的把这种情况开了多仓
作者: peeny    时间: 2013-1-24 11:19:33


作者: 杨玉杰    时间: 2013-2-15 19:37:31

我对这个系统看糊涂了

作者: 天崖    时间: 2013-2-15 20:49:43

感谢分享!!!!!!!!!!!!!!!!!!
作者: 散兵游勇    时间: 2013-5-27 15:12:15

学习了,我是你的粉丝了,你的每篇贴子我都学习!
作者: aha100    时间: 2013-7-6 15:54:13

不错,很多人都没看懂这个程序呢。
这其实是用了期货最基本的一个定理做的。
作者: goodstudy    时间: 2013-7-7 12:51:36


作者: 交流电    时间: 2013-7-17 09:48:57

石破总会天惊 发表于 2013-1-15 15:59
楼主程序确实有逻辑问题,例如历史的某根K线,满足了open>ma,但是他最高点大于开多仓的价格,同时最低点 ...

咱不了解楼主的思路就不要说逻辑有什么问题,如果是在open>=ma时,就只开多,那怕是满足开空条件也不开空呢!
作者: vividboy    时间: 2013-7-18 12:57:29

简单明了。谢谢分享。
作者: lonelywind    时间: 2013-9-17 20:26:11

参考一下
作者: caiyuanguangjin    时间: 2013-10-10 09:23:24


作者: Miss_z    时间: 2013-12-4 14:24:30


作者: wsmy1987    时间: 2014-2-2 19:53:21

帮我看看什么问题
作者: zsqh_wp    时间: 2016-2-27 13:43:43

你自己现在在做产品吗?




欢迎光临 开拓者期货期权程序化系统交易论坛 (http://bbs.tb18.net/) Powered by Discuz! X2