投资者咨询:提示非法类型,怎样解决 (文华财经WH8赢智V8.2)
来源:文华财经 日期:2018-6-27 10:10
加入AL_BuyPosition(CodeName)<=4限仓提示非法类型,怎么解决?
{
CodeName = "c1501";
N = 2; // 下单手数
N1 = 2; //当合约价格上涨2个最小变动价位
Lost = 3; //止损3个最小变动价位
Win = 10; //止盈10个最小变动价位
New = Price(CodeName, "New"); //获取当前合约最新价
BPRICE=T_BuyAvgPrice(CodeName);//取得持仓栏中该合约多头持仓均价
data = Def_TickData(CodeName,1,4); // 保存最近四笔的tick数据
CurTime = CurrentTime(); // 获取当前时间
// 收盘前30秒清仓
CONQC = ((Hour( CurTime ) == 14 && Minute( CurTime ) == 59) || ( Hour( CurTime ) == 10 && Minute( CurTime ) == 14 ) || ( Hour( CurTime ) == 11 && Minute( CurTime ) == 29 )) && Second( CurTime ) > 30 ;
IF( Typp == 0&&(CONQC == 1))&&AL_BuyPosition(CodeName)<=4
{
MessageOut("收盘前30秒清仓");
T_Deal(CodeName,1,1,T_BuyRemainPosition( CodeName ),Offers(CodeName,"bid1"));
Type = 0;
Typp = 1;
}
技术人员回复
日期:2018-6-27 10:17
对应行右侧少一个括号:
IF( Typp == 0&&(CONQC == 1)&&AL_BuyPosition(CodeName)<=4)
投资者咨询:提示非法类型,怎样解决 (文华财经WH8赢智V8.2)
来源:文华财经 日期:2018-6-27 10:10
技术人员回复
日期:2018-6-27 11:08
您上传一下完整的源码,我们帮您修改
投资者咨询:提示非法类型,怎样解决 (文华财经WH8赢智V8.2)
来源:文华财经 日期:2018-6-27 10:10
追空,限止最大持仓4手,止损2次退出运行,上海和非上海都可以自动平仓
VAR_TICKDATA data;
VAR N,N1,SPRICE,Lost,Win,CurTime;
GLOBAL_VAR Low,BKID,New,Type,Typp,CONQC;
VAR CodeName;
VOID MAIN()
{
CodeName = "ni1811";
N = 1; // 下单手数
N1 = -2; //当合约价格下跌2个最小变动价位
Lost = 3; //止损3个最小变动价位
Win = 10; //止盈10个最小变动价位
New = Price(CodeName, "New"); //获取当前合约最新价
SPRICE=T_SellAvgPrice(CodeName);//取得持仓栏中该合约多头持仓均价
data = Def_TickData(CodeName,1,4); // 保存最近四笔的tick数据
CurTime = CurrentTime(); // 获取当前时间
// 收盘前30秒清仓
CONQC = (Hour( CurTime ) == 14 && Minute( CurTime ) == 59) || ( Hour( CurTime ) == 10 && Minute( CurTime ) == 14 ) || ( Hour( CurTime ) == 11 && Minute( CurTime ) == 29 ) && Second( CurTime ) > 30 ;
IF( Typp == 0&&(CONQC == 1))
{
MessageOut("收盘前30秒清仓");
T_Deal(CodeName,0,1,T_SellRemainPosition( CodeName ),Offers(CodeName,"ask1"));
Type = 0;
Typp = 1;
}
IF( data.State == 1 ) // 数据保存完成
{
//连续3次当笔TICK的卖一价都小于上一笔TICK的卖一价,并且最新一笔的成交量大于上一笔TICK的成交量,对价做多
IF( Type == 0 && data[0].Ask1 > data[1].Ask1 && data[1].Ask1 > data[2].Ask1 && data[2].Ask1 > data[3].Ask1 && CONQC != 1)
{
IF( data[2].TickVolum - data[1].TickVolum < data[3].TickVolum - data[2].TickVolum )
{
MessageOut("连续3次当笔TICK的卖一价都小于上一笔TICK的卖一价");
BKID = T_Deal(CodeName,1,0,N,Offers(CodeName,"bid1"));
Type = 1;
Typp = 0;
}
}
//当合约价格下跌2个最小变动价位,加仓1手
IF(Type == 1 && T_OrderState(BKID) == 1 && CONQC != 1 )
{
MessageOut("当合约价格下跌2个最小变动价位,加仓1手");
IF( New - T_OrderMatchAvPrice(BKID) > N1 * MinPrice(CodeName) )
{
BKID = T_Deal(CodeName,1,0,1,Offers(CodeName,"bid1"));
Type = 2;
Typp = 0;
}
}
IF( Type == 2 && T_OrderState(BKID) == 1 )
{
Type = 1;
}
//PingCang();
SPDeal();
Low = Price(CodeName, "Low");
}
}
//止盈10个最小变动价位
//止损3个最小变动价位
VOID SPDeal()
{
IF( SPRICE - New <= Lost*MinPrice(CodeName) || New - SPRICE <= Win*MinPrice(CodeName))
{
IF( Type != 0 && T_SellRemainPosition( CodeName ) > 0 )
{
MessageOut("止盈止损");
T_Deal(CodeName,0,1,T_SellRemainPosition( CodeName ),Offers(CodeName,"ask1"));
Type = 0;
}
}
}
//当持仓手数超过了5手,并且最新价格跌破了今天的最低价,对价平仓
VOID PingCang()
{
IF( Type != 0 && T_SellRemainPosition( CodeName ) > 5 && New < Low ) // 该组件多头持仓超过5手
{
MessageOut("当持仓手数超过了5手,并且最新价格跌破了今天的最低价,对价平仓");
T_Deal(CodeName,0,1,T_SellRemainPosition( CodeName ),Offers(CodeName,"ask1"));
Type = 0;
}
}
技术人员回复
日期:2018-6-27 11:22
5楼是系统自带的编写范例并没有语法错误的
您有什么疑问呢?
投资者咨询:提示非法类型,怎样解决 (文华财经WH8赢智V8.2)
来源:文华财经 日期:2018-6-27 10:10
技术人员回复
日期:2018-6-27 11:28
编写范例只是提供一个编写参考,不建议您实盘使用的
此外算法模型的编写比较复杂,如果有需要可以参考这个帖子中的高级教程资料了解一下:【学习资料】程序化培训教程、名词解释,文华能帮我编模型?
如果您编写能力有限,可以付费购买软件成为VIP用户,会有一对一的金融工程师给您编写,您了解一下 |
