分享一个止盈止损的模版... - TradeBlazer公式 [开拓者 TB]
作者:
开拓者 TB 来源:
cxh99.com 发布时间:2012年07月14日 点击数:
【
收藏到本网的会员中心】
- 咨询内容:
我目前在用的方法。为促进交流,现在跟大家分享~欢迎交流!
有什么疑问欢迎指出。
//------------------------------------------------------------------------
// 简称: AO
// 名称: 日内止盈止损系统模版
// 类别: 交易指令
// 类型: 其他
// 输出:
//------------------------------------------------------------------------
Params
Numeric MyZhiSun(0);//止盈止损开关,1为开,其它为关
Numeric MyJumpScale(1);//每个BAR止线浮动幅度,1为1跳。即,每走完一个BAR,止损线会相应的抬高(多单时)或者降低(空单时)一跳
Numeric ExitOnCloseMins(14.55);//14:55分请仓。
Numeric MyStopLoss(5);//默认5跳止损
Numeric Lots(1); //开仓手数
Vars
NumericSeries MyPositionH(0); //做空时的止损线
NumericSeries MyPositionL(0); //做多时的止损线
Begin
If(Date!=Date[1])
{
MyPositionH = 0; //每天第一个BAR清零
MyPositionL = 0;
}Else
{
MyPositionH = MyPositionH[1]; //止损线得以延续
MyPositionL = MyPositionL[1];
}
if(MyZhiSun == 1 && MarketPosition != 0) //止盈止损
{
if(MarketPosition==1 && Open < MyPositionL && MyPositionL != 0)
{
MyPrice = MyPositionL - MinMove; //保证测试准确,放弃一跳.
if(BarStatus==2)//做多止损
{
Sell(A_BuyPosition,Q_Last);
}Else
{
Sell(Lots,MyPrice);
}
Commentary("Open < MyPositionL " + Text(MyPositionL));
MyPositionL = 0;
Return;
if(MyPositionL < HighD(0))MyPositionL = MyPositionL + MyJumpScale*MinMove;//浮动抬高
}
if(MarketPosition==-1 && Open > MyPositionH && MyPositionH != 0)
{
MyPrice = MyPositionH + MinMove;//保证测试准确,放弃一跳.
if(BarStatus==2)//做空止损
{
BuyToCover(A_SellPosition,Q_Last);
}Else
{
BuyToCover(Lots,MyPrice);
}
Commentary("Open > MyPositionH " + Text(MyPositionH));
MyPositionH = 0;
Return;
if(MyPositionH > LowD(0))MyPositionH = MyPositionH - MyJumpScale*MinMove;//浮动降低
}
if(MyZhiSun == 1)Commentary("止盈启动!");
}
Commentary("MyPositionH == "+Text(MyPositionH));
Commentary("MyPositionL == "+Text(MyPositionL));
// 下面是开仓代码
If(开多条件)
{
MyPrice = 开多价格;
If(Open > MyPrice) MyPrice = Open;
if(MyPrice > High)MyPrice = High;
if(BarStatus==2)
{
Buy(Lots,Q_Last);
}Else
{
Buy(Lots,MyPrice);
}
MyPositionH = 0;
MyPositionL = MyPrice - MyStopLoss*MinMove;//开仓时设定止损线,以跳为单位
Return;
}
If(开空条件)
{
MyPrice = 开空价格;
If(Open < MyPrice) MyPrice = Open;
if(MyPrice < Low)MyPrice = Low;
if(BarStatus==2)
{
SellShort(Lots,Q_Last);
}Else
{
SellShort(Lots,MyPrice);
}
MyPositionL = 0;
MyPositionH = MyPrice + MyStopLoss*MinMove;//开仓时设定止损线,以跳为单位
Return;
}
// 收盘平仓,实际执行代码
If(BarStatus==2 And CurrentTime>=ExitOnCloseMins/100 And MarketPosition!=0)
{
If(A_BuyPosition>0)
{
Sell(A_BuyPosition,Q_Last);
}
If(A_SellPosition>0)
{
BuyToCover(A_SellPosition,Q_Last);
}
}
//保证收盘平仓信号的准确
If(Time >=ExitOnCloseMins/100 And BarStatus!=2 And MarketPosition!=0)
{
Sell(Lots,Open-MinMove);
BuyToCover(Lots,Open+MinMove);
}
End
//------------------------------------------------------------------------
// 编译版本 GS2004.06.12
// 用户版本 2009/10/31 01:03
// 版权所有 na
// 更改声明 TradeBlazer Software保留对TradeBlazer平台
// 每一版本的TrabeBlazer公式修改和重写的权利
//------------------------------------------------------------------------
- TB技术人员:
GOOD!
- TB客服:
未命名.jpg
(59.52 KB, 下载次数: 2)
2010-8-10 21:05:47 上传
下载次数: 2
- 网友回复:
通不过呀!怎办?
- 网友回复:
非常感谢分享 |