平仓盈亏23 (文华财经WH8赢智V8.2)

投资者咨询:平仓盈亏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
 AL_OffSetProfit();取算法交易组件中的平仓盈亏。

详细用法您可以双击函数右键》查找函数说明详细了解一下