投资者咨询:平仓盈亏23 (文华财经WH8赢智V8.2)
来源:文华财经 日期:2018-7-13 23:56
您好,帮我添加平仓盈亏统计,谢谢
VAR Modname;
VAR Code1;//定义合约名称
VAR Price1;//定义最新价
VAR SellPosition,BuyPosition;//定义模组空头持仓、多头持仓
GLOBAL_VAR LastWithDrawFinsh;
//这个变量的作用是避免撤单的过程中反复的进行撤单
VOID MAIN()
{
Modname="菜粕1809_5秒_JUNXIANZHENGCHANG1分(1)";
Code1=Modname.F_DealCode();
Price1=Price(Code1,"New");//定义最新价为当前模型所加载合约的最新价
SellPosition=AL_SellRemainPosition(Code1);
BuyPosition=AL_BuyRemainPosition(Code1);
IF(T_IsNoOrder()!=1 )
//有挂单的情况
{
IF(CurrentTime()-LastOrderTime()>20 && LastWithDrawFinsh == 1)
//如果20秒有委托未成交,全撤,下次进入会重新下委托
{
T_DeleteOrderAll();
LastWithDrawFinsh=0;
}
RETURN;
}
LastWithDrawFinsh=1;
Modname.F_FreshSig();
//取得一个还未处理的新信号
IF(Modname.F_Sig() == BPK && Modname.F_SigValid() == 1)
//如果取出的信号为BPK 且信号不是消失状态
{
IF(SellPosition!=0&&T_IsNoOrder()==1)
{
MessageOut("信号BPK生效,平掉所有卖仓");
T_ReduceSellOpiTo(Code1, Price1,0); //平掉所有空头持仓
}
IF(BuyPosition == 0)
{
MessageOut("信号BPK生效,开仓");
T_AddBuyOpiTo(Code1, Price1,Modname.F_SigVol()); //补充持仓
}
}
ELSE IF(Modname.F_Sig() == SPK && Modname.F_SigValid() == 1)
//如果取出的信号为SPK 且信号不是消失状态
{
IF(BuyPosition!=0&&T_IsNoOrder()==1)
{
MessageOut("信号SPK生效,平掉所有卖仓");
T_ReduceBuyOpiTo(Code1, Price1,0); //平掉所有多头持仓
}
IF(SellPosition == 0)
//如果买仓为0,不存在止赢止损问题,直接开仓
{
MessageOut("信号SPK生效,开仓");
T_AddSellOpiTo(Code1, Price1,Modname.F_SigVol()); //补充空头持仓
}
}
IF(Modname.F_Sig() == BPK && Modname.F_SigValid() == 0)
//BPK 条件不满足(似可认为BPK信号处在消失状态)
{
IF(BuyPosition!=0)
{
MessageOut("信号BPK失效,平掉所有买仓");
T_ReduceBuyOpiTo(Code1, Price1,0); //平掉所有多头持仓
}
}
ELSE IF(Modname.F_Sig() == SPK && Modname.F_SigValid() == 0) //SPK 条件不满足(似可认为SPK信号处在消失状态)
{
IF(SellPosition!=0)
{
MessageOut("信号SPK失效,平掉所有卖仓");
T_ReduceSellOpiTo(Code1, Price1,0); //平掉所有空头持仓
}
}
}
技术人员回复
日期:2018-7-14 11:03