查看: 13149|回复: 22
打印 上一主题 下一主题

[公式] 交易指令示例-1

[复制链接]
跳转到指定楼层
1
发表于 2012-6-1 15:12:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
//交易思想:
//从开盘后第二个15分钟开始交易
//入场:
//突破第一个15分钟的最高价做多
//突破第一个15钟的最低价做空
//止损:
//进场后以进场前一个5分钟的最低最高点止损

//进场后等进场5分钟走完如果仍然没有被止损
//从下一个5分钟开始
//如果做多,以进场的5分钟最低点止损
//如果做空,以进场的5分钟最高价止损

//如果不被止损,则持有到收盘59分平仓

//两个参数:
//1。运行在1分钟线上,就设置为 15;运行在5分钟线上,就设置为3
//2.离场时间,股指:0.1529,其他0.1459
//------------------------------------------------------------------------
// 类别: 交易指令
// 类型: 用户应用
//------------------------------------------------------------------------
Params
Integer StaticsBarCount(3);  //统计阶段K线根数
Numeric LeaveTime(0.1459); //离场时间
GlobalVars
Numeric Min15High(0);  //开盘15分钟的最高价
Numeric Min15Low(1000000);  //开盘15分钟的最低价

Numeric EntryBarHigh(-1);  //进场时K线的最高价
Numeric EntryBarLow(-1);  //进场时K线的最低价

Integer EntryBarIdx(-1);  //进场时的K线索引值
bool bHaveInit(False);
Vars  
//局部变量定义
Begin
   
Integer TodayBars = BarsSinceToday + 1;
if(TodayBars ==1) //当天第一根K线重新初始化
{
  if(!bHaveInit)
  {
   Min15High = 0;
   Min15Low = 1000000;
   bHaveInit = True;
  }
}
Else
{
  bHaveInit = False;
}

if(TodayBars <= StaticsBarCount) //前15分钟只做统计
{
  Min15High = Max(High,Min15High);  //前15分钟的最高价
  Min15Low  = Min(Low,Min15Low);   //前15分钟的最低价
}
Else//15分钟后开始交易
{
  if(A_BuyPosition + A_SellPosition == 0 && Time<LeaveTime) //当前没有持仓,判断是否开仓
  {
   if(Q_Close > Min15High)
   {
    Buy(1,Q_AskPrice);  //以申卖价开1手多仓
    EntryBarIdx = CurrentBar;
    EntryBarHigh = High;
    EntryBarLow = Low;
   }
   Else if(Q_Close < Min15Low)
   {
    SellShort(1,Q_BidPrice); //以申买价开1手空仓
    EntryBarIdx = CurrentBar;
    EntryBarLow = Low;
    EntryBarHigh = High;
   }
  }
  Else  //存在持仓,判断是否止损
  {
   
   if(CurrentTime>=LeaveTime) //到达离场时间
   {
    if(A_BuyPosition>0)
    {
     Sell(0,Q_BidPrice); //卖出,平多仓
     PlotText(Close,"闭市离场");
    }
   
    if(A_SellPosition >0)
    {
     BuyToCover(0,Q_AskPrice);//买入,平空仓
     PlotText(Close,"闭市离场");
    }
   }
   Else
   {
    //时间小于离场时间,判断止损
    if(CurrentBar == EntryBarIdx) //进场K线还没有走完
    {
     EntryBarHigh = High;
     EntryBarLow = Low;
     if(A_BuyPosition>0 && Q_Close<Low[1])
     {
      Sell(0,Q_BidPrice); //卖出,平多仓
      PlotText(Close,"止损");
      Print('11');
     }
     
     if(A_SellPosition >0 && Q_Close>High[1])
     {
      BuyToCover(0,Q_AskPrice);//买入,平空仓
      PlotText(Close,"止损");
      Print('22');
     }     
    }
    Else
    {
     if(A_BuyPosition>0 && Q_Close<EntryBarLow)
     {
      Sell(0,Q_BidPrice); //卖出,平多仓
      PlotText(Close,"止损");
     }
     
     if(A_SellPosition >0 && Q_Close>EntryBarHigh)
     {
      BuyToCover(0,Q_AskPrice);//买入,平空仓
      PlotText(Close,"止损");
     }  
    }
   
   }
  }
  
}


PlotNumeric("多头突破线",Min15High,0,RGB(255,0,255));
PlotNumeric("多头止损线",EntryBarLow,0,RGB(100,0,100));

PlotNumeric("空头突破线",Min15Low,0,RGB(0,255,0));
PlotNumeric("空头止损线",EntryBarHigh,0,RGB(0,100,0));

End

评分

2

查看全部评分






2
发表于 2012-6-1 22:06:23 | 只看该作者
谢谢 学习

评分

1

查看全部评分

3
发表于 2012-6-3 08:57:16 来自手机 | 只看该作者
向领路人致敬!领路人伟大!
4
发表于 2012-6-3 09:46:08 | 只看该作者
很不错的东西。学习了。
5
发表于 2012-6-28 08:10:15 | 只看该作者
如何把他导入易盛中,并参与测试?
6
发表于 2012-6-30 16:05:57 | 只看该作者
怎么感觉程序和前面的说明有些不符合呢?
》》进场后以进场前一个5分钟的最低最高点止损
入场时前一个5分钟k线的最高最低点在哪里得到数据的?
7
发表于 2012-8-2 21:35:59 | 只看该作者
{:soso_e179:}
8
发表于 2012-8-2 21:36:07 | 只看该作者
{:soso_e179:}
9
发表于 2012-8-16 16:30:42 | 只看该作者
好措施,好提醒,好办法。
10
发表于 2012-8-23 15:54:01 | 只看该作者
先顶后看.
11
发表于 2012-8-25 12:27:14 | 只看该作者
先顶后看.
12
发表于 2012-8-25 12:27:19 | 只看该作者
先顶后看.
13
发表于 2012-10-21 23:54:44 | 只看该作者
学习{:soso_e179:}
14
发表于 2012-11-13 14:05:17 | 只看该作者
好专业 ,看不明白 ,没入门,我得从0开始学
15
发表于 2012-12-13 19:10:03 | 只看该作者
学习了,谢谢!
16
发表于 2013-3-5 14:03:43 | 只看该作者
{:soso_e114:} 高手{:soso_e179:}
17
发表于 2013-3-31 19:00:00 | 只看该作者
学习中,倒入模拟交易中看看
18
发表于 2013-4-23 20:53:20 | 只看该作者
虚心的请都白老师。此例中,是突破多头线后收盘价开仓。如果要写成突破多头线后立马以多头线开仓该怎样写。
19
发表于 2013-5-16 10:51:57 | 只看该作者
学习下,楼主是好人~~~~
20
发表于 2013-6-17 13:59:33 | 只看该作者
谢谢。。。
您需要登录后才可以回帖 登录 | 注册入住  

本版积分规则

易家网  ©2015-2023  郑州期米信息技术有限公司版权所有  豫公网安备 41010502005136号 豫ICP备16010300号