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()));
}
}
}
上面是 開倉成交后直接掛平倉單 組件范例 的代碼
如果我要在平倉之后再開倉,那么 是否在這一段之后
ELSE IF(F_FreshSig()==0)//如果是處理過的信號
……
后面加上
IF(F_FreshSig()==0&&F_SigValid()==1)//如果是處理過的新信號
是應該這么開頭嗎?
因為上面的ELSE IF大括號內的部分已經處理了該信號,對不對?
還是應該和開頭一樣,寫成
IF(F_FreshSig()==1&&F_SigValid()==1)//如果是未處理過的新信號
這個是綁定形式的組件,開倉都是根據模型出信號以后開倉的
您上面說的,平倉之后再開倉,是指什么?
就是在綁定以后,
模型 a, bk;
剩下的事情就交給組件處理。
開倉成功后,立刻平倉,
平倉以后,組件內直接給出指令下單開倉。
平倉以后,組件內直接給出指令下單開倉。
就是不太理解這個意思,平倉以后,直接下單開倉?
是平倉一成交,馬上用平倉的價格發開倉委托?
平倉一成交,不是馬上用平倉的價格發開倉委托,
而是在組件中指定價格或條件進行下單,再次開倉