设为首页收藏本站

 找回密码
 注册
查看: 1340|回复: 2
打印 上一主题 下一主题

。。。 [复制链接]

Rank: 1

精华
0
UID
233831
积分
10
帖子
5
主题
4
阅读权限
10
注册时间
2016-5-5
最后登录
2016-11-4
跳转到指定楼层
1#
发表于 2016-10-18 22:26:07 |只看该作者 |倒序浏览
本帖最后由 ta69440830 于 2016-10-28 23:09 编辑

Params
   
Numeric lots(1);

Vars
Bool startCondition2(False);         // 启动条件,空单用
    Bool EntryCondition2(False);        // 开仓条件,空单用
    Bool ExitCondition2(False);          // 平仓条件,空单用
NumericSeries highestValue(0);  // 前2个周期的最高价
    NumericSeries lowestValue(0);   // 前2个周期的最低价
Numeric myEntryPrice2(0);          // 开仓价格,空单用
    Numeric myExitPrice2(0);            // 平仓价格,空单用

Begin
      
        highestValue = max(high[2],high[1]);
        lowestValue = min(low[2],low[1]);
    If(MarketPosition ==0 ) // 当前空仓
    {
        
    if (Close[2]< Open[2] && Close[1] < Open[1] && Close[1] < Close[2])
        {
            startCondition2 = True;
  
        }
        
        If(startCondition2)
        {
            EntryCondition2                        
            If( EntryCondition2)
            {
                sellshort(lots,Open);
            }Else // 再看其它价格是否满足
            {
                EntryCondition2
                If(EntryCondition2)
                {
                    myEntryPrice2 = highestValue - (HighestValue - LowestValue ) ;
                    myEntryPrice2 = IntPart(myEntryPrice2 / (PriceScale()*MinMove)) *(PriceScale()*MinMove); // 对价格进行处理                                       
                    If(myEntryPrice2 >= low &&  myEntryPrice2 <= High)
                    {
                        sellshort(lots,MyEntryPrice2);
                    }
                }                        
            }
        }

}  
     If(MarketPosition == -1) // 当前空仓
     {
        ExitCondition2
       If(ExitCondition2)
        {
            myExitPrice2 =  highestValue - (HighestValue - LowestValue ) ;                        
            myExitPrice2 = IntPart(myExitPrice2 / (PriceScale()*MinMove)) *(PriceScale()*MinMove); // 对价格进行处理
            buytocover(CurrentContracts(),myExitPrice2);
           



        }Else // 获利平仓
        {
            ExitCondition2 ; // 获利平仓条件满足
            If(ExitCondition2)
            {
                myExitPrice2 =  AvgEntryPrice() - (HighestValue - LowestValue );                                
                myExitPrice2 = IntPart(myExitPrice2 / (PriceScale()*MinMove)) *(PriceScale()*MinMove); // 对价格进行处理
                If (myExitPrice2 >= low && myEntryPrice2 <= high)
                {
                                        buytocover (lots,myExitPrice2);
                }Else
                {
                                        buytocover (lots,Close);
                }
            }
        }
    }

End

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
2#
发表于 2016-10-19 14:55:05 |只看该作者
止损条件里的 buytocover(CurrentContracts(),myExitPrice2);  这里的平仓手数有问题。
在持空头时,currentcontracts是负值 ,而交易手数不可以为负。
需要改为 buytocover(abs(CurrentContracts),myExitPrice2);

使用道具 举报

Rank: 1

精华
0
UID
233831
积分
10
帖子
5
主题
4
阅读权限
10
注册时间
2016-5-5
最后登录
2016-11-4
3#
发表于 2016-10-19 21:13:00 |只看该作者
谢谢老师指导

使用道具 举报

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

bottom

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

GMT+8, 2024-5-22 04:50

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部