交易指令示例-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 谢谢 学习 向领路人致敬!领路人伟大! 很不错的东西。学习了。 如何把他导入易盛中,并参与测试? 怎么感觉程序和前面的说明有些不符合呢?
》》进场后以进场前一个5分钟的最低最高点止损
入场时前一个5分钟k线的最高最低点在哪里得到数据的? {:soso_e179:} {:soso_e179:} 好措施,好提醒,好办法。 先顶后看. 先顶后看. 先顶后看. 学习{:soso_e179:} 好专业 ,看不明白 ,没入门,我得从0开始学 学习了,谢谢! {:soso_e114:} 高手{:soso_e179:} 学习中,倒入模拟交易中看看 虚心的请都白老师。此例中,是突破多头线后收盘价开仓。如果要写成突破多头线后立马以多头线开仓该怎样写。 学习下,楼主是好人~~~~ 谢谢。。。
页:
[1]
2