Refresh();
//获取指标中的数据--
double k[],d[];//数组,存放指标数据
double sl_long[],sl_short[];
ArraySetAsSeries(k, true);//倒序排列,形成时间序列排序
ArraySetAsSeries(d, true);
ArraySetAsSeries(sl_long, true);
ArraySetAsSeries(sl_short, true);
GetArray(handle_kdj, 5, 0, 3, k);//读取指标数据
GetArray(handle_kdj, 4, 0, 3, d);
GetArray(handle_kdj, 0, 0, 3, sl_long);//读取指标数据
GetArray(handle_kdj, 4, 0, 3, sl_short);
//下单条件
bool GoLong=k[0]<80&&k[0]>d[0]&&k[1]<d[1];
bool GoShort=k[0]>20&&k[0]<d[0]&&k[1]>d[1];
// 挂单取消条件
if(isNewBar()&&m_positon.PositionType() != POSITION_TYPE_BUY)
{
cancle_long_pos = m_positon.PositionType() != POSITION_TYPE_BUY;
}
if(isNewBar()&&m_positon.PositionType() != POSITION_TYPE_SELL)
{
cancle_short_pos = m_positon.PositionType() != POSITION_TYPE_SELL;
}
bool CancleLong=Low(0)>sl_long[0]&&Low(1)<sl_long[1]&&cancle_long_pos;
bool CancleShort=Low(0)>sl_short[0]&&Low(1)<sl_short[1]&&cancle_short_pos;
// 下单
if(GoLong)
{ m_trade.Buy(inp_lot);
//OpenBuy(inp_lot,0,m_symbol.Ask()+TakeProfitLevel * m_symbol.Point());
}
if(GoShort)
{
m_trade.Sell(inp_lot);
//OpenSell(inp_lot,0,m_symbol.Bid()-TakeProfitLevel * m_symbol.Point());
}
if(m_positon.Volume()!=0) ModifyOrder(sl_long[0], sl_short[0]);
|