- 精华
- 20
- 在线时间
- 2981 小时
- UID
- 4
- 积分
- 22709
- 帖子
- 4802
- 阅读权限
- 255
- 注册时间
- 2007-7-20
- 最后登录
- 2024-1-15
- 精华
- 20
- UID
- 4
- 积分
- 22709
- 帖子
- 4802
- 主题
- 64
- 阅读权限
- 255
- 注册时间
- 2007-7-20
- 最后登录
- 2024-1-15
|
该交易系统很简单,主要是为了测试自动交易的真实效果。
基本交易规则如下:
开仓条件:
1、当前无持仓;
2、当前Bar的收盘价>上一个Bar收盘价,即开多仓,反之,则开空仓。
反转条件:
1、盈利达到设定的点数即平仓,并马上反转。
止损条件:
1、亏损大于设定的点数即平仓,止损平仓之后并马上反转。
平仓条件:
1、到收市前,即全部平仓。
本交易系统有三个参数,lots为交易数量,WinDots为获利的点数,LossDots为止损的点数。所谓1个点是指应用商品的最小变动单位,本次测试的ru0709最小变动单位为5。
本次测试所选取的参数为(1,5,3),根据公式里的写法,以买入举例:当价格>25(5*5)时即反转,考虑到最小变动为5,即卖出条件为价格等于买入价格+30。条件建仓时,选择了延迟1个Tick发送,因此会到下一个Tick才以上一Tick的Close价发送委托,如Close价和开盘价不相同,以开盘价发送。当价格<=15时,即止损(即时发送,无延迟),并反转建仓。
- Params
- Numeric lots(1);
- Numeric WinDots(5);
- Numeric LossDots(3);
- Vars
- Numeric MinMovePrice;
- Numeric preMP;
- Numeric curMP;
- Begin
- MinMovePrice = MinMove * PriceScale;
- preMP = MarketPosition;
- If(Time > 0.145930 && Time < 0.150030 ) // 收盘平仓
- {
- If(preMP == 1)
- {
- Sell;
- return;
- }else if(preMP == -1)
- {
- BuyToCover;
- return;
- }
- return;
- }
-
- If(preMP == 0)
- {
- If(Close > Close[1])
- {
- Buy(lots,high,true);
- }Else If(Close < Close[1])
- {
- SellShort(lots,low,true);
- }
- }Else If(preMP == 1) // long
- {
- If (Close > AvgEntryPrice() + MinMovePrice *WinDots ) // 获利反转
- {
- SellShort(lots,low,true);
- }
- }else If(preMP == -1) // short
- {
- If (Close < AvgEntryPrice() - MinMovePrice *WinDots ) // 获利反转
- {
- Buy(lots,high,true);
- }
- }
-
- SetStopLoss(1, ContractUnit *BigPointValue *LossDots*MinMovePrice, true); // 止损平仓
- CurMP = MarketPosition;
- If (preMP == 1 && curMP == 0) // 止损之后反转,多反空
- {
- SellShort(lots,low);
- }else if(preMP==-1 && curMP==0) // 止损之后反转,空反多
- {
- Buy(lots,high);
- }
- End
复制代码
[ 本帖最后由 nopain 于 2007-10-18 20:28 编辑 ] |
附件: 你需要登录才可以下载或查看附件。没有帐号?注册
|