设为首页收藏本站

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

请教 [复制链接]

Rank: 7Rank: 7Rank: 7

精华
0
UID
926
积分
4317
帖子
167
主题
33
阅读权限
80
注册时间
2007-12-15
最后登录
2016-8-9
1#
发表于 2008-10-31 13:33:29 |显示全部楼层
论坛里有一个依据考夫曼均线角度开平仓的交易系统。

使用道具 举报

Rank: 7Rank: 7Rank: 7

精华
0
UID
926
积分
4317
帖子
167
主题
33
阅读权限
80
注册时间
2007-12-15
最后登录
2016-8-9
2#
发表于 2008-11-1 21:59:50 |显示全部楼层
//------------------------------------------------------------------------
// 简称: 1
// 名称: 天健系统基本版
// 类别: 交易指令
// 类型: 其他
// 输出:
//------------------------------------------------------------------------
Params//豆油y0809,15分钟线.第一个投入到实战的系统,豆油0809试用,开仓手数直接定为1。其基本框架是“平仓也要延迟发送”
      //在交易设置里面设定为不可持续开仓。//保证金比例,按照交易所和期货公司要求随时调整
      Numeric effratiolength(15);//用于计算AMA效率系数的时间期限
      Numeric fastlength(2);//快速计算
      Numeric slowlength(30);//慢速计算
      Numeric JDk(5);//开仓所需要的角度
      Numeric JDP(10);//平仓所需要的相反方向的角度
          Numeric R(2750);//豆油2750;白糖1000;天胶3000
          Numeric myUnits(1);//交易单位
          Numeric myMarginRatio(0.11);
Vars
      NumericSeries ama;
          Bool con1;
      Bool con2;
      Bool con3;
      Bool con4;
Begin
      ama = AdaptiveMovAvg(Close,effratiolength,fastlength,slowlength);//计算AMA自适应移动平均值
      con1 = Atan((ama/ama[1]-1)*100)*180/Pi > jdK;//多头开仓所需要的条件
      con2 = Atan((ama/ama[1]-1)*100)*180/Pi + JDK < 0;//空头开仓所需要的条件
      con3 = Atan((ama/ama[1]-1)*100)*180/Pi > JDP;//空头平仓所需要的条件
      con4 = Atan((ama/ama[1]-1)*100)*180/Pi + JDP < 0;//多头平仓所需要的条件

If( BarStatus!=2 && CurrentBar>20 && HighD!=LowD )//从第20个BAR开始计算
          //如果价格不是停板的时候,止损平仓或获利平仓。(考虑到停板:反向指令无法成交,所以不要求平仓;顺向仓位如果平仓,有悖于让利润奔跑的原则)
  {
      SetStopLoss(1,R,False);//初始止损,即撒普的1R;
      SetDollarTrailing( R * CurrentContracts(),True);//跟踪止损退出设置为:价值回落1R;
      SetPercentTrailing(4 * R * CurrentContracts(),0.25,True);//浮动盈利回落百分比退出设置为:4R以上,回落25%
          SetPercentTrailing(6 * R * CurrentContracts(),0.17,True);//浮动盈利回落百分比退出设置为:6R以上,回落17%
      SetProfitTarget(0,9 * R * CurrentContracts(),True);//最大盈利设置为:9R退出
  
  If( MarketPosition==1 && con4)//如果持有多仓;并且满足平多仓的条件
          {
          Sell;//立刻执行
          }
        
  If( MarketPosition==-1 && con3)//如果持有空仓;并且满足平空仓的条件
      {
          BuyToCover;//立刻价执行
          }
         
  If( MarketPosition==0 && con1)//前一个BAR无仓;并且满足开多仓的条件
      {
       If( con3 )
          {
                  Buy(myUnits,Close);
                  }Else
                       {
                                Buy(myUnits,NextOpen,True);
                    }
           }
        
  If( MarketPosition==0 && con2)//前一个BAR无仓;并且满足开空仓的条件
          {
           If( con4 )
            {
            SellShort(myUnits,Close);
            }Else
                 {
                  SellShort(myunits,NextOpen,True);
                 }
      }
  }

If( BarStatus==2 && CurrentBar>20 && High!=Low && CurrentTime>=0.090000 )//从第20个BAR开始计算
  {
      SetStopLoss(1,R,False);//初始止损,即撒普的1R;
      SetDollarTrailing( R * CurrentContracts(),True);//跟踪止损退出设置为:价值回落1R;
      SetPercentTrailing(4 * R * CurrentContracts(),0.25,True);//浮动盈利回落百分比退出设置为:4R以上,回落25%
          SetPercentTrailing(6 * R * CurrentContracts(),0.17,True);//浮动盈利回落百分比退出设置为:6R以上,回落17%
      SetProfitTarget(0,9 * R * CurrentContracts(),True);//最大盈利设置为:9R退出
  
  If( MarketPosition==1 && con4 )//如果持有多仓;并且满足平多仓的条件
          {
          Sell;//立刻执行
          }
        
  If( MarketPosition==-1 && con3 )//如果持有空仓;并且满足平空仓的条件
      {
          BuyToCover;//立刻执行
          }
         
  If( con1 && A_FreeMargin > myUnits * Q_AskPrice * ContractUnit() * BigPointValue() * myMarginRatio )//如果无仓;并且满足开多仓的条件
      {
       If( Q_AskPrice>(Q_UpperLimit - 10 * MinMove * BigPointValue()) Or Q_BidPrice==Q_UpperLimit Or con3)//如果快要涨停或已经涨停或满足条件3
          {
          Buy(myUnits,Q_AskPrice);//立刻以叫卖价执行
          }Else//如果叫卖价离涨停板还有10个价位以上
               {                                
                    Buy(myUnits,NextOpen,True);//延时到下一个BAR的开盘价执行
                    }
       }
           
  If( con2 && A_FreeMargin > myUnits * Q_BidPrice * ContractUnit() * BigPointValue() * myMarginRatio )//如果无仓;并且满足开空仓的条件
          {
       If ( Q_BidPrice<(Q_LowerLimit + 10 * MinMove * BigPointValue()) Or Q_AskPrice==Q_LowerLimit Or con4)//如果快要跌停或已经跌停或满足条件4
           {
        SellShort(myUnits,Q_BidPrice);//立刻执行
           }Else//如果叫买价离跌停板还有10个价位以上
               {                                
                    SellShort(myunits,NextOpen,True);//延时到下一个BAR执行
                    }
       }
}

If( BarStatus==2 && CurrentBar>20 && High==Low && CurrentTime>=0.090030 && MarketPosition!=0 )
  {
  If( Q_AskPrice==Q_LowerLimit Or Q_BidPrice==Q_UpperLimit )
     {
            SetStopLoss(1,R,False);//初始止损,即撒普的1R;
        SetDollarTrailing( R * CurrentContracts(),True);//跟踪止损退出设置为:价值回落1R;
        SetPercentTrailing(4 * R * CurrentContracts(),0.25,True);//浮动盈利回落百分比退出设置为:4R以上,回落25%
            SetPercentTrailing(6 * R * CurrentContracts(),0.17,True);//浮动盈利回落百分比退出设置为:6R以上,回落17%
        SetProfitTarget(0,9 * R * CurrentContracts(),True);//最大盈利设置为:9R退出
         }
  }
End

//------------------------------------------------------------------------
// 编译版本        GS2004.06.12
// 用户版本        2008/05/09 12:48
// 版权所有        hoyoy
// 更改声明        TradeBlazer Software保留对TradeBlazer平台
//                        每一版本的TrabeBlazer公式修改和重写的权利
//------------------------------------------------------------------------

使用道具 举报

Rank: 7Rank: 7Rank: 7

精华
0
UID
926
积分
4317
帖子
167
主题
33
阅读权限
80
注册时间
2007-12-15
最后登录
2016-8-9
3#
发表于 2008-11-1 22:00:52 |显示全部楼层
原帖没找到,上面是代码。

使用道具 举报

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

bottom

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

GMT+8, 2024-5-18 16:34

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部