源代碼如下:
LastState=ReadGlobal("LASTSTATE");
IF(F_FreshSig()==1&&F_SigValid()==1)//如果是未處理過的新信號
{
IF(F_Sig()==BK) //如果取出的信號為BK
{
IF(T_BuyPosition(F_DealCode())==0)
{
BKID=T_Deal(F_DealCode(),0,0,KN,Offers(F_DealCode(),"ask1")+MinPrice(F_DealCode())*N);//買開指定手數。
LastState=0;
}
}
}
ELSE IF(F_FreshSig()==0)//如果是處理過的信號
{
BKID=ReadGlobalStr("BKID");
IF(F_Sig()==BK) //如果取出的信號為BK
{
IF(T_OrderState(BKID)==1&&LastState==0)//買開委托全部成交
{
MessageOut("成交已完成!");
LastState=1;
SPID=T_Deal(F_DealCode(),1,1,PN,F_SigPrice()+50*MinPrice(F_DealCode()));
}
}
}
WriteGlobalStr("BKID",BKID);
WriteGlobal("LASTSTATE", LastState);
在這個組件中,開倉應該是按照模型策略開的是嗎?
那么開倉成交后直接所掛的平倉單,是按照什么條件來掛的?
F_SigPrice()+50*MinPrice(F_DealCode()) 這句什么意思?
開倉應該是按照模型策略開的是嗎?
是的
那么開倉成交后直接所掛的平倉單,是按照什么條件來掛的?
沒有條件 只要開倉成交以后 就按照成交價格加50個最小變價掛平倉單 比如1000成交 那么就以1050掛平倉委托。
多謝,看來我理解對了。
BKID=T_Deal(F_DealCode(),0,0,KN,Offers(F_DealCode(),"ask1")+MinPrice(F_DealCode())*N);//買開指定手數。
上面這一句中, KN 代表什么,是否需要在模型中定義,或者在參數中設置?
還有 ask1 和 N ,是否有同樣的問題?
還是說這些是系統內置的參數,已經有了確切的定義?
這些是需要在組件中定義的 KN為您的組件下單的手數
ASK1為對價
N為在對價的基礎上超價多少個價位發BK委托的意思 N直接寫為10 即為代表超10個最小變價
KN N的數值 您都可以直接填入組件中 用具體數值代替KN N即可。