设为首页收藏本站

 找回密码
 注册
楼主: 柳长街
打印 上一主题 下一主题

请大侠帮忙改写一个自动交易系统 [复制链接]

Rank: 7Rank: 7Rank: 7

精华
0
UID
397
积分
4818
帖子
87
主题
13
阅读权限
80
注册时间
2007-9-22
最后登录
2021-6-8
1#
发表于 2007-10-16 15:28:15 |显示全部楼层
原帖由 柳长街 于 2007-10-11 11:23 发表
测试了下,成交到是非常迅速。可能是我表达的不够完整,我的意思单子应该是在收盘的时候下单,比如15分钟,应该在9.15 9.30 9.45等收盘时间下单,还有一个问题是开的空单,向上穿越牙齿后立马平了空单,开了多单,这个执行的很好,可 ...



Vars
        NumericSeries MidPrice;   // 定义变量用于保存高低价的平均值。
        NumericSeries myEntryPrice;     // 用来保存中间变量
Begin
        MidPrice = (High + Low)/2;

        myEntryPrice = Average(MidPrice[1],8);

        
        If(CrossOver(high, myEntryPrice[5] ))
        {
                myEntryPrice = IIF(myEntryPrice[5] < Open, Open,myEntryPrice[5]);  
                buy(1, myEntryPrice[5] );
        }

        If(CrossUnder(low, myEntryPrice[5]  ))
        {
                myEntryPrice = IIF(myEntryPrice[5] > Open, Open,myEntryPrice[5]);
                SellShort(1, myEntryPrice[5] );
        }
End

[ 本帖最后由 ilian 于 2007-10-16 15:30 编辑 ]
已有 1 人评分威望 收起 理由
柳长街 + 828 谢谢您的指点,辛苦了

总评分: 威望 + 828   查看全部评分

使用道具 举报

Rank: 7Rank: 7Rank: 7

精华
0
UID
397
积分
4818
帖子
87
主题
13
阅读权限
80
注册时间
2007-9-22
最后登录
2021-6-8
2#
发表于 2007-10-16 19:21:32 |显示全部楼层
原帖由 柳长街 于 2007-10-16 15:42 发表



谢谢,有很多信号不对啊,要求股价穿越牙齿也就是红线发出信号


修改了个版本,这个会精确啦 :
Vars
        NumericSeries MidPrice;   // 定义变量用于保存高低价的平均值。
        NumericSeries AvePrice;     // 用来保存中间变量
                NumericSeries EnterPoint;
                Numeric myEntryPrice ;
               
Begin
    // IF (Currentbar>9)
         //{
            MidPrice = (High[1] + Low[1])/2;

            AvePrice = Average(MidPrice,8);
     
        
             EnterPoint=AvePrice[5];
                 Commentary("触发价:"+Text(EnterPoint));
                If(CrossOver(high, EnterPoint ))
        {
                myEntryPrice = IIF(EnterPoint < Open, Open,EnterPoint);  
                buy(1, myEntryPrice);
        }

        If(CrossUnder(low, EnterPoint ))
        {
                myEntryPrice = IIF(EnterPoint > Open, Open,EnterPoint);
                SellShort(1, myEntryPrice);
        }
                //}
End

[ 本帖最后由 ilian 于 2007-10-16 19:31 编辑 ]
已有 1 人评分威望 收起 理由
柳长街 + 828 这个就好很多了,不过我看是穿越黄线发出信号 ...

总评分: 威望 + 828   查看全部评分

使用道具 举报

Rank: 7Rank: 7Rank: 7

精华
0
UID
397
积分
4818
帖子
87
主题
13
阅读权限
80
注册时间
2007-9-22
最后登录
2021-6-8
3#
发表于 2007-10-16 22:56:35 |显示全部楼层
原帖由 ilian 于 2007-10-16 19:21 发表


修改了个版本,这个会精确啦 :
Vars
        NumericSeries MidPrice;   // 定义变量用于保存高低价的平均值。
        NumericSeries AvePrice;     // 用来保存中间变量
                NumericSeries EnterPoint;
                Numeric  ...

穿红线才买的哦,附配套指标:
Vars
        NumericSeries MidPrice;   // 定义变量用于保存高低价的平均值。
        NumericSeries Value1;     // 定义变量用于保存SMA值
        NumericSeries Value2;     // 定义变量用于保存SMA值
        NumericSeries Value3;     // 定义变量用于保存SMA值

Begin
        MidPrice = (High + Low)/2;
        Value1 = Average(MidPrice,5);
        Value2 = Average(MidPrice,8);
        Value3 = Average(MidPrice,13);
        
        PlotNumeric("上唇",Value1[3]);
        PlotNumeric("牙齿",Value2[5]);
        PlotNumeric("下颚",Value3[8]);
        

      
End
系统和指标的Average可改成你自己的版本。系统是基于NEXT Bar STOP指令的应该比较符合你的意思,而且基于这种指令的系统最适合程序交易。它的思路是这样的,以上一Bar的最终close为触发价,(即本系统上一Bar的"牙齿"),下一Bar的Tick高过触发价,以触发价买进,开盘越过以开盘买进。
已有 1 人评分威望 收起 理由
柳长街 + 954 大侠你好,我有个问题想麻烦你老人家一下 ...

总评分: 威望 + 954   查看全部评分

使用道具 举报

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

bottom

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

GMT+8, 2024-5-19 06:25

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部