- 精华
- 0
- 在线时间
- 39 小时
- UID
- 114496
- 积分
- 46
- 帖子
- 29
- 阅读权限
- 10
- 注册时间
- 2012-12-28
- 最后登录
- 2016-11-15
- 精华
- 0
- UID
- 114496
- 积分
- 46
- 帖子
- 29
- 主题
- 15
- 阅读权限
- 10
- 注册时间
- 2012-12-28
- 最后登录
- 2016-11-15
|
周基金 发表于 2013-1-19 11:41
谢谢你的回复,总算可以有所借重啊!仔细研究后将会对于程序的设置表示感谢! ...
花了点时间读了下程序不知道对不对,你所说的效果不好,可能是策略没有解释好的缘故吧?
顺便问下能不能改用75分钟图呢?怎么修改可以实现?
Params
Numeric Lots(1);//交易手数
Numeric Offset(0);//滑点数
Numeric Stoplose(30);//止损点数
Numeric Timelimit(14.59);//反手时间限制
Vars
NumericSeries Highprice;//最高价
NumericSeries Lowprice;//最低价
NumericSeries Enterprice;//入场价格
NumericSeries Stoploseprice;//止损价格
Begin
//计算日内高低价
If(CurrentBar==0 || Date!=Date[1]) //如果最新一根K线不是第一根
{
Highprice=High; //最近高价为最高价
Lowprice=Low; //最近低价为最低价
}
Else并且
{
Highprice=Max(High,Highprice[1]); //最新高价为近期最高价
Lowprice=Min(Low,Lowprice[1]); //最新低价为近期最低价
}
PlotNumeric("Highprice",Highprice); //输出阳K线到图表上
PlotNumeric("Lowprice",Lowprice); //输出阴K线到图表上
//零持仓
If(MarketPosition==0) //如果没有任何持仓
{
//多头突破入场
If(High>Highprice[1] && Low>=Lowprice[1]) //如果最新高价大于近期最高价并且最新低价大于不等于近最低价时
{
Enterprice=Max(Open,High+Offset*MinMove*PriceScale); //最新收盘价突破最近高价时
Buy(Lots,Enterprice); //固定手数开多单
Stoploseprice=Open[1]; //以前K线开盘价止损
}
Else If(High>Highprice[1] && Low<Lowprice[1] && Open<Close) //并且如果最新高价大于最近高价并且最新低价小于最近低价并且开盘价小于收盘价时
{
Enterprice=Max(Open,High+Offset*MinMove*PriceScale); //最新收盘价突破最近高价时
Buy(Lots,Enterprice); //固定手数开多单
Stoploseprice=Open[1]; //以前K线开盘价止损
}
//空头突破入场
If(Low<Lowprice[1] && High<=Highprice[1]) 如果最新低价小于近期最低价并且最新高价小于不等于近最高价时
{
Enterprice=Min(Open,Low-Offset*MinMove*PriceScale); 最新低盘价突破最近低价时
SellShort(Lots,Enterprice); 固定手数开多单
Stoploseprice=Open[1]; 以前K线开盘价止损
}
Else If(Low<Lowprice && High>Highprice[1] && Open>Close) 并且如果最新低价小于最近低价并且最新高价大于最近高价并且开盘价大于收盘价时
{
Enterprice=Min(Open,Low-Offset*MinMove*PriceScale); 最新低盘价突破最近低价时
SellShort(Lots,Enterprice); 固定手数开多单
Stoploseprice=Open[1]; 以前K线开盘价止损
}
}
//多头持仓
If(MarketPosition==1 && BarsSinceEntry>0) 如果持有多仓并且是K线为最新
{
//触及前期开盘价止损
If(Low<Stoploseprice) Sell(0,Min(Open,Stoploseprice-Offset*MinMove*PriceScale));
//触及止损点位止损
If(Low<Enterprice-Stoplose*MinMove*PriceScale) Sell(0,Min(Open,Enterprice-Stoplose*MinMove*PriceScale-Offset*MinMove*PriceScale));
//盘尾反手
If(Time==Timelimit/100 && Low<Close[1] && Low<Close[2]) 当最后一分钟时最低价小于前两日收盘价时
{
Enterprice=Q_BidPrice; //当时持仓价为最新价格
SellShort(Lots,Enterprice); //固定手数开空单
Stoploseprice=Open[1]; //以前开盘价止损
}
}
//空头持仓
If(MarketPosition==-1 && BarsSinceEntry>0)如果持有空仓并且是K线为最新
{
//触及前期开盘价止损
If(High>Stoploseprice) BuyToCover(0,Max(Open,Stoploseprice+Offset*MinMove*PriceScale));
//触及止损点位止损
If(High>Enterprice+Stoplose*MinMove*PriceScale) BuyToCover(0,Max(Open,Enterprice+Stoplose*MinMove*PriceScale+Offset*MinMove*PriceScale));
//盘尾反手
If(Time==Timelimit/100 && High>Close[1] && High>Close[2])当最后一分钟时最高价大于前两日收盘价时
{
Enterprice=Q_AskPrice; //当时持仓价为最新价格
Buy(Lots,Enterprice); //固定手数开多单
Stoploseprice=Open[1]; //以前开盘价止损
}
}
Commentary("止损价:"+Text(Stoploseprice)); //移到K线时止损价以文字显示
End
|
|