设为首页收藏本站

 找回密码
 注册
楼主: 大一
打印 上一主题 下一主题

我来学习来了,呵呵 [复制链接]

Rank: 4

精华
0
UID
57
积分
270
帖子
61
主题
14
阅读权限
50
注册时间
2007-7-28
最后登录
2019-3-31
11#
发表于 2007-7-31 21:27:04 |只看该作者
确实应该是减号,我真是粗心,我说嘛,为什么收盘比开盘高的时候仍然开空仓,测试一塌糊涂,原来问题出在这里。。。

多谢斑竹能给我指出毛病!

使用道具 举报

Rank: 4

精华
0
UID
57
积分
270
帖子
61
主题
14
阅读权限
50
注册时间
2007-7-28
最后登录
2019-3-31
12#
发表于 2007-7-31 21:29:14 |只看该作者
另外,今天早上我尝试自动交易的时候,我按你的说法,设置成一天以来的数据,可是我选了好几个品种都是没有数据,提示:正在接受数据。  过了一会还是没有,我就设置成好几天的数据,这下有数据了。。。

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
13#
发表于 2007-8-1 08:55:05 |只看该作者
原帖由 大一 于 2007-7-31 21:29 发表
另外,今天早上我尝试自动交易的时候,我按你的说法,设置成一天以来的数据,可是我选了好几个品种都是没有数据,提示:正在接受数据。  过了一会还是没有,我就设置成好几天的数据,这下有数据了。。。 ...


1、有可能是确实当天以来没有数据。您可以试试点图表工具栏的最后一个按钮,进行刷新。

2、旧的版本在数据库容错方面还有些小问题,有的时候可能导致取不出数据。您可以参照下贴的操作:
每天只有8时前或晚上能登录并收到数据

3、新的版本会最近几天发行。数据容错方面的这些个问题就解决了

[ 本帖最后由 nopain 于 2007-8-14 20:49 编辑 ]

使用道具 举报

Rank: 4

精华
0
UID
57
积分
270
帖子
61
主题
14
阅读权限
50
注册时间
2007-7-28
最后登录
2019-3-31
14#
发表于 2007-8-2 22:07:57 |只看该作者
斑竹看一下,有矛盾的地方吗 ?
Params
        Numeric lots(1);
      
Vars
        Numeric MinMovePrice;
        Numeric preMP;
        
Begin
        MinMovePrice = MinMove * PriceScale;   //每跳动一下是多少点的意思系统已经设定好了
        preMP = MarketPosition;
        If(Time > 0.145930 && Time < 0.150030 && preMP!=0) // 收盘平仓
        {
                If(preMP == 1)
                {
                        Sell;
                }else if(preMP == -1)
                {
                        BuyToCover;
                }
        }        
        
        If(preMP == 0)
        {
                If(Close > Open[CurrentBar] + 3 * minmoveprice  )

                {
                        Buy(lots,high,true);
                }Else If(Close <Open[CurrentBar] - 3 * minmoveprice )
                {
                        SellShort(lots,low,true);
                }
        }
        
        Else If(preMP == 1) // long
        {
                If (Close <Open[CurrentBar] - 3 * minmoveprice ) // 止损反转
                {
                        SellShort(lots,low,true);
                }
        }else If(preMP == -1) // short
        {
                If (Close > Open[CurrentBar] + 3 * minmoveprice ) // 止损反转
                {
                        Buy(lots,high,true);
                }
        }

        
End

使用道具 举报

初级大户

程序化交易探索者

Rank: 5Rank: 5

精华
2
UID
99
积分
662
帖子
159
主题
42
阅读权限
60
注册时间
2007-8-12
最后登录
2015-6-9
15#
发表于 2007-8-14 20:45:22 |只看该作者
思路好,,函数掌握得很好,程序写得好,值得我学习,佩服
复制一遍,学习学习,嘿嘿

Params
        Numeric lots(1);
        Numeric LossDots(5);
Vars
        Numeric MinMovePrice;
        Numeric preMP;
        
Begin
        MinMovePrice = MinMove * PriceScale;  
        preMP = MarketPosition;

        If(Time > 0.145930 && Time < 0.150030 && preMP!=0)         {
                If(preMP == 1)
                {
                        Sell;
                }else if(preMP == -1)
                {
                        BuyToCover;
                }
        }        
        
        If(preMP == 0)
        {
                If(Close > Open[CurrentBar] + 3 * minmoveprice)

                {
                        Buy(lots,high,true);
                }Else If(Close <Open[CurrentBar] - 3 * minmoveprice)
                {
                        SellShort(lots,low,true);
                }
        }
        
        SetStopLoss(1, ContractUnit *BigPointValue *LossDots*MinMovePrice, true); // 止损平仓
        
End

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
16#
发表于 2007-8-14 20:54:12 |只看该作者
原帖由 大一 于 2007-8-2 22:07 发表
斑竹看一下,有矛盾的地方吗 ?
Params
        Numeric lots(1);
      
Vars
        Numeric MinMovePrice;
        Numeric preMP;
        
Begin
        MinMovePrice = MinMove * PriceScale;   //每跳动一下是 ...


Sorry,前一段时间没有看到您这个帖子。
您的这个系统,问题出在平仓指令写错了。。。
Buy对应Sell
SellShort对应BuyToCover.

也可以象ddbq这样直接用止损指令。

[ 本帖最后由 nopain 于 2007-8-14 20:55 编辑 ]

使用道具 举报

高级大户

小马哥

Rank: 7Rank: 7Rank: 7

精华
0
UID
3496
积分
3531
帖子
98
主题
9
阅读权限
80
注册时间
2009-2-11
最后登录
2015-11-26
17#
发表于 2009-3-19 17:16:17 |只看该作者
14楼 “大一”的代码有几个错误:
1、Time < 0.150030  时间为何不是0.150000 ?收盘应该是3点整
2、收盘平仓 If(Time > 0.145930 && Time < 0.150030 && preMP!=0)里面的语句应该有return语句,或者使用
If(Time > 0.145930 && Time < 0.150000 && preMP!=0)
  {...}else if(...)
               {...}
3、按照“大一”的原意,应该是亏5点止损平仓,而不应该是把开仓代码又重写了一遍,应该像15楼一样使用止损指令。不过15楼的代码也存在1和2两个错误

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

bottom

静态版|手机版|联系我们|交易开拓者 ( 粤ICP备07044698   

GMT+8, 2024-5-3 00:19

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部