白吉馍 发表于 2012-6-1 15:12:04

交易指令示例-1

//交易思想:
//从开盘后第二个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)
   {
      Sell(0,Q_BidPrice); //卖出,平多仓
      PlotText(Close,"止损");
      Print('11');
   }
   
   if(A_SellPosition >0 && Q_Close>High)
   {
      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

怀念 发表于 2012-6-1 22:06:23

谢谢 学习

白羽鹤王 发表于 2012-6-3 08:57:16

向领路人致敬!领路人伟大!

长春海盗 发表于 2012-6-3 09:46:08

很不错的东西。学习了。

爱拼才能赢 发表于 2012-6-28 08:10:15

如何把他导入易盛中,并参与测试?

dida 发表于 2012-6-30 16:05:57

怎么感觉程序和前面的说明有些不符合呢?
》》进场后以进场前一个5分钟的最低最高点止损
入场时前一个5分钟k线的最高最低点在哪里得到数据的?

期货可居 发表于 2012-8-2 21:35:59

{:soso_e179:}

期货可居 发表于 2012-8-2 21:36:07

{:soso_e179:}

artu001 发表于 2012-8-16 16:30:42

好措施,好提醒,好办法。

wqfeng 发表于 2012-8-23 15:54:01

先顶后看.

多伦多 发表于 2012-8-25 12:27:14

先顶后看.

多伦多 发表于 2012-8-25 12:27:19

先顶后看.

熊猫 发表于 2012-10-21 23:54:44

学习{:soso_e179:}

243880702 发表于 2012-11-13 14:05:17

好专业 ,看不明白 ,没入门,我得从0开始学

微尘量子 发表于 2012-12-13 19:10:03

学习了,谢谢!

sunyh 发表于 2013-3-5 14:03:43

{:soso_e114:} 高手{:soso_e179:}

AYAN 发表于 2013-3-31 19:00:00

学习中,倒入模拟交易中看看

Ocs 发表于 2013-4-23 20:53:20

虚心的请都白老师。此例中,是突破多头线后收盘价开仓。如果要写成突破多头线后立马以多头线开仓该怎样写。

F_Phoebe 发表于 2013-5-16 10:51:57

学习下,楼主是好人~~~~

八斗 发表于 2013-6-17 13:59:33

谢谢。。。
页: [1] 2
查看完整版本: 交易指令示例-1