首页 > > 详细

代做公式选股、股票选股公式代写、调试文华财经、文华财经公式

源码如下:

VAR Price,M,N;
VAR BKID,SKID,BPID,SPID,SPKID1,BPKID1,SPKID2,BPKID2;
//定义BKID,SKID,BPID,SPID
VAR LastWithDrawFinsh;
VAR LastState;
VAR KNALL;
//目标总开仓数
VOID MAIN() //
{
//KPN设为按照模型信号
M=0;
//发出信号时,0为挂价委托,1为对价委托,>=2为超价委托
N=1;
//再委托的委托价参数,0为挂价委托,1为对价委托,>=2为超价委托
Price=Price(F_DealCode());
//
BKID=ReadGlobalStr("BKID");
SKID=ReadGlobalStr("SKID");
BPID=ReadGlobalStr("BPID");
SPID=ReadGlobalStr("SPID");
BPKID1=ReadGlobalStr("BPKID1");
SPKID1=ReadGlobalStr("SPKID1");
BPKID2=ReadGlobalStr("BPKID2");
SPKID2=ReadGlobalStr("SPKID2");
KNALL=ReadGlobal("KNALL");
//下面是3秒没有成交,撤单。
LastWithDrawFinsh=ReadGlobal("LASTWITHDRAW");
IF(T_IsNoOrder()!=1 ) //有挂单的情况
{
//查询挂单然后进行撤单
IF(CurrentTime()-LastOrderTime()==3 LastWithDrawFinsh==1) //如果3秒有委托未成交,全撤,下次进入会重新下委托
{
IF(F_Sig()==BK) //如果取出的信号为BP
{
IF(T_IsNoOrder()==0)
{
MessageOut("BK撤单到了!");
T_DeleteOrder(BKID);
LastState=0;
//
}
}
IF(F_Sig()==SK) //如果取出的信号为SP
{
IF(T_IsNoOrder()==0)
{
MessageOut("SK撤单到了!");
T_DeleteOrder(SKID);
LastState=0;
}
}
IF(F_Sig()==BP) //如果取出的信号为BP
{
IF(T_SellPosition(F_DealCode())>0T_IsNoOrder()==0)
{
MessageOut("BP撤单到了!");
T_DeleteOrder(BPID);
LastState=0;
//
}
}
IF(F_Sig()==SP) //如果取出的信号为SP
{
IF(T_BuyPosition(F_DealCode())>0T_IsNoOrder()==0)
{
MessageOut("SP撤单到了!");
T_DeleteOrder(SPID);
LastState=0;
}
}
IF(F_Sig()==SPK) //如果取出的信号为SP
{
IF(T_IsNoOrder()==0)
{
MessageOut("SPK撤单到了!");
T_DeleteOrder(SPKID1);
T_DeleteOrder(SPKID2);
LastState=0;
}
}
IF(F_Sig()==BPK) //如果取出的信号为BP
{
IF(T_IsNoOrder()==0)
{
MessageOut("BPK撤单到了!");
T_DeleteOrder(BPKID1);
T_DeleteOrder(BPKID2);
LastState=0;
//
}
}

LastWithDrawFinsh=0;
}
WriteGlobal("LASTWITHDRAW", LastWithDrawFinsh);
RETURN;
}
LastWithDrawFinsh=1;
IF(F_FreshSig()==1)//刷新现有的信号,有新信号
{
SEND();
}
ELSE IF(F_FreshSig()==0)//如果是处理过的信号
{
IF((T_OrderState(BKID)==2||T_OrderState(SKID)==2||T_OrderState(BPID)==2||T_OrderState(SPID)==2||T_OrderState(BPKID1)==2||T_OrderState(SPKID1)==2||T_OrderState(BPKID2)==2||T_OrderState(SPKID2)==2||T_OrderState(BKID)==3||T_OrderState(SKID)==3||T_OrderState(BPID)==3||T_OrderState(SPID)==3||T_OrderState(BPKID1)==3||T_OrderState(SPKID1)==3||T_OrderState(BPKID2)==3||T_OrderState(SPKID2)==3)LastState==0)//如果委托撤单
{
RESEND();
LastState=1;

}
}
WriteGlobalStr("BKID",BKID);
WriteGlobalStr("SKID",SKID);
WriteGlobalStr("BPID",BPID);
WriteGlobalStr("SPID",SPID);
WriteGlobalStr("BPKID1",BPKID1);
WriteGlobalStr("SPKID1",SPKID1);
WriteGlobalStr("BPKID2",BPKID2);
WriteGlobalStr("SPKID2",SPKID2);
WriteGlobal("LASTSTATE", LastState);
WriteGlobal("LASTWITHDRAW", LastWithDrawFinsh);
WriteGlobal("KNALL",KNALL);
}
VOID SEND()
{
IF(F_Sig()==BPK F_SigValid()==1) //如果取出的信号为BPK 且信号不是消失状态
{
IF(F_SellPosition()!=0)
{
MessageOut("信号BPK生效,平掉所有卖仓");
BPKID1=T_ReduceSellOpiTo(F_DealCode(), Offers(F_DealCode(),"bid1")+MinPrice(F_DealCode())*M,0);
//平掉所有空头持仓
}
IF(F_BuyPosition()>=0)//
{
MessageOut("信号BPK生效,开仓");
KNALL=F_SigVol()+F_BuyPosition();
BPKID2=T_AddBuyOpiTo(F_DealCode(), Offers(F_DealCode(),"bid1")+MinPrice(F_DealCode())*M,F_SigVol()+F_BuyPosition());
//补充持仓

}
}
IF(F_Sig()==SPK F_SigValid()==1) //如果取出的信号为SPK 且信号不是消失状态
{
IF(F_BuyPosition()!=0)
{
SPKID1=T_ReduceBuyOpiTo(F_DealCode(), Offers(F_DealCode(),"ask1")-MinPrice(F_DealCode())*M,0);
//平掉所有多头持仓
}
IF(F_SellPosition()>=0) //如果买仓为0,不存在止赢止损问题,直接开仓
{
KNALL=F_SigVol()+F_SellPosition();
SPKID2=T_AddSellOpiTo(F_DealCode(), Offers(F_DealCode(),"ask1")-MinPrice(F_DealCode())*M,F_SigVol()+F_SellPosition());
//补充空头持仓
}
}
IF(F_Sig()==BP F_SigValid()==1) //如果取出的信号为BP 且信号不是消失状态
{
IF(F_SellPosition()!=0)
{
MessageOut("信号BP生效,平掉所有卖仓");
BPID=T_ReduceSellOpiTo(F_DealCode(), Offers(F_DealCode(),"bid1")+MinPrice(F_DealCode())*M,0);
//平掉所有空头持仓
}
}
IF(F_Sig()==SP F_SigValid()==1) //如果取出的信号为SP 且信号不是消失状态
{
IF(F_BuyPosition()!=0)
{
SPID=T_ReduceBuyOpiTo(F_DealCode(), Offers(F_DealCode(),"ask1")-MinPrice(F_DealCode())*M,0);
//平掉所有多头持仓
}
}
IF(F_Sig()==BK F_SigValid()==1) //如果取出的信号为BK 且信号不是消失状态
{

IF(F_BuyPosition()>=0 F_SellPosition()==0)//判断是不是部分成交
{
MessageOut("信号BK生效,开仓");
KNALL=F_SigVol()+F_BuyPosition();
BKID=T_AddBuyOpiTo(F_DealCode(), Offers(F_DealCode(),"bid1")+MinPrice(F_DealCode())*M,F_SigVol()+F_BuyPosition());
//
}
}
IF(F_Sig()==SK F_SigValid()==1) //如果取出的信号为SK 且信号不是消失状态
{

IF(F_SellPosition()>=0 F_BuyPosition()==0) //如果买仓为0,不存在止赢止损问题,直接开仓
{
KNALL=F_SigVol()+F_SellPosition();
SKID=T_AddSellOpiTo(F_DealCode(), Offers(F_DealCode(),"ask1")-MinPrice(F_DealCode())*M,F_SigVol()+F_SellPosition());
//
}
}
}
VOID RESEND()
{
IF(F_Sig()==BPK F_SigValid()==1) //如果取出的信号为BPK 且信号不是消失状态
{
IF(F_SellPosition()!=0)
{
MessageOut("信号BPK生效,平掉所有卖仓");
BPKID1=T_ReduceSellOpiTo(F_DealCode(), Offers(F_DealCode(),"bid1")+MinPrice(F_DealCode())*N,0);
//平掉所有空头持仓
}
IF(F_BuyPosition()<=KNALL)//判断是不是部分成交
{
MessageOut("信号BPK生效,开仓");
BPKID2=T_AddBuyOpiTo(F_DealCode(), Offers(F_DealCode(),"bid1")+MinPrice(F_DealCode())*N,KNALL);
//补充持仓
}
}
IF(F_Sig()==SPK F_SigValid()==1) //如果取出的信号为SPK 且信号不是消失状态
{
IF(F_BuyPosition()!=0)
{
SPKID1=T_ReduceBuyOpiTo(F_DealCode(), Offers(F_DealCode(),"ask1")-MinPrice(F_DealCode())*N,0);
//平掉所有多头持仓
}
IF(F_SellPosition()<=KNALL) //如果买仓为0,不存在止赢止损问题,直接开仓
{
SPKID2=T_AddSellOpiTo(F_DealCode(), Offers(F_DealCode(),"ask1")-MinPrice(F_DealCode())*N,KNALL);
//补充空头持仓
}
}
IF(F_Sig()==BP F_SigValid()==1) //如果取出的信号为BP 且信号不是消失状态
{
IF(F_SellPosition()!=0)
{
MessageOut("信号BP生效,平掉所有卖仓");
BPID=T_ReduceSellOpiTo(F_DealCode(), Offers(F_DealCode(),"bid1")+MinPrice(F_DealCode())*N,0);
//平掉所有空头持仓
}
}
IF(F_Sig()==SP F_SigValid()==1) //如果取出的信号为SP 且信号不是消失状态
{
IF(F_BuyPosition()!=0)
{
SPID=T_ReduceBuyOpiTo(F_DealCode(), Offers(F_DealCode(),"ask1")-MinPrice(F_DealCode())*N,0);
//平掉所有多头持仓
}
}
IF(F_Sig()==BK F_SigValid()==1) //如果取出的信号为BK 且信号不是消失状态
{

IF(F_BuyPosition()<=KNALL F_SellPosition()==0)//判断是不是部分成交
{
MessageOut("信号BK生效,开仓");
BKID=T_AddBuyOpiTo(F_DealCode(), Offers(F_DealCode(),"bid1")+MinPrice(F_DealCode())*N,KNALL);
//补多仓
}
}
IF(F_Sig()==SK F_SigValid()==1) //如果取出的信号为SK 且信号不是消失状态
{

IF(F_SellPosition()<=KNALL F_BuyPosition()==0) //如果买仓为0,不存在止赢止损问题,直接开仓
{
SKID=T_AddSellOpiTo(F_DealCode(), Offers(F_DealCode(),"ask1")-MinPrice(F_DealCode())*N,KNALL);
//补空仓
}
}
}




 

联系我们 - QQ: 88652583
© 2014 www.93stock.com
代写选股公式网!
声明:警惕假冒分子冒充本站提供证券咨询服务,选股公式网为非证券咨询机构,本站不提供有关股评、投资分析报告、股市预测,证券咨询等服务。本站仅提供股票、期货、黄金、外汇的软件技术交流与分享。本站文章为互联网文章,其仅供参考,并不构成投资建议。