下單組件 這兒有語法錯誤嗎? [文華財經(jīng)]
- 咨詢內(nèi)容:
我這個模組,能運(yùn)行,但一會兒就會死,查看模組運(yùn)行,顯示116行有語法錯誤,我就是檢查不出來,麻煩老師看看
ELSE IF(F_Sig()==SPK) //如果取出的信號為SPK
{
IF(T_IsNoOrder()==0&&LastState==0)
{
IF(CurrentTime()-LastOrderTime()>s&&F_SigPrice()-Offers(F_DealCode(),"bid1")<=MinPrice(F_DealCode())*M);
T_DeleteOrderByCode(F_DealCode(),0);
SPID=T_Deal(F_DealCode(),1,1,F_BuyPosition(),Offers(F_DealCode(),"bid1"));
SKID=T_Deal(F_DealCode(),1,0,KN,Offers(F_DealCode(),"bid1"));
}
ELSE IF(T_IsNoOrder()==1&&T_OrderState(SKID)==1&&T_OrderState(SPID)==1)//賣開委托全部成交
{
MessageOut("成交已完成!");
LastState=1;
}
}提示的是這兒 if 附近有語法錯誤,麻煩幫我看看,s是參數(shù),10 秒
IF(CurrentTime()-LastOrderTime()>s&&F_SigPrice()-Offers(F_DealCode(),"bid1")<=MinPrice(F_DealCode())*M);
- 文華技術(shù)人員:
麻煩您告知您的完整組件,可以發(fā)送到[email protected] ,并且在郵件中附上該帖子鏈接,謝謝
- 文華客服:
//該組件僅僅用來示范如何編寫算法交易組件
//用戶需要根據(jù)自己交易經(jīng)驗(yàn),編寫組件再實(shí)際應(yīng)用!!!//主要策略:設(shè)定超價參數(shù),開平倉時,自動根據(jù)超價參數(shù)調(diào)整委托價格,提高成交價幾率。
VAR N;//定義超價參數(shù)。
VAR KN;//定義開倉手?jǐn)?shù)。
//VAR PN;//定義平倉手?jǐn)?shù)。
VAR BKID;//定義BK委托ID
VAR SKID;//定義SK委托ID
VAR BPID;//定義BP委托ID
VAR SPID;//定義SP委托ID
VAR LastState;
VAR valume1;
VAR valume2;
VAR s;
VAR M;
VOID MAIN()//主函數(shù)。
{
KN=1;
M=5;N=0.4;
s=10;
LastState=ReadGlobal("LASTSTATE");
valume1=(Offers(F_DealCode(),"askvol1")+Offers(F_DealCode(),"bidvol1"))>0
&&Offers(F_DealCode(),"askvol1")/(Offers(F_DealCode(),"askvol1")+Offers(F_DealCode(),"bidvol1"))<N;
valume2=(Offers(F_DealCode(),"askvol1")+Offers(F_DealCode(),"bidvol1"))>0
&&Offers(F_DealCode(),"bidvol1")/(Offers(F_DealCode(),"askvol1")+Offers(F_DealCode(),"bidvol1"))<N;
IF(F_High(0)==T_GetRiseLimit(F_DealCode())&&F_BuyPosition()>0)
{
T_Deal(F_DealCode(),1,1,F_BuyPosition(),Offers(F_DealCode(),"bid1"));
}
ELSE IF(F_Low(0)==T_GetFallLimit(F_DealCode())&&F_SellPosition()>0)
{
T_Deal(F_DealCode(),0,1,F_SellPosition(),Offers(F_DealCode(),"ask1"));
}IF(F_FreshSig()==1&&F_SigValid()==1)//如果是未處理過的新信號
{
IF(F_Sig()==BPK) //如果取出的信號為BpK
{
IF(valume1==1)
{
BPID=T_Deal(F_DealCode(),0,1,F_SellPosition(),Offers(F_DealCode(),"bid1"));
BKID=T_Deal(F_DealCode(),0,0,KN,Offers(F_DealCode(),"bid1"));//買開指定手?jǐn)?shù)。
}
ELSE
{
BPID=T_Deal(F_DealCode(),0,1,F_SellPosition(),Offers(F_DealCode(),"ask1"));
BKID=T_Deal(F_DealCode(),0,0,KN,Offers(F_DealCode(),"ask1"));//買開指定手?jǐn)?shù)。
}
}ELSE IF(F_Sig()==SPK) //如果取出的信號為SK
{
IF(valume2==1)
{
SPID=T_Deal(F_DealCode(),1,1,F_BuyPosition(),Offers(F_DealCode(),"ask1"));
SKID=T_Deal(F_DealCode(),1,0,KN,Offers(F_DealCode(),"ask1"));//賣開指定手?jǐn)?shù)。
}
ELSE
{
SPID=T_Deal(F_DealCode(),1,1,F_BuyPosition(),Offers(F_DealCode(),"bid1"));
SKID=T_Deal(F_DealCode(),1,0,KN,Offers(F_DealCode(),"bid1"));//賣開指定手?jǐn)?shù)。
}
}
ELSE IF(F_Sig()==BP&&F_SellPosition()>0) //如果取出的信號為BP
{
IF(valume1==1)
{
BPID=T_Deal(F_DealCode(),0,1,F_SellPosition(),Offers(F_DealCode(),"bid1"));//買平指定手?jǐn)?shù)。
//此句中T_Deal的第3個參數(shù)為2,表示平今,只適用于上交所合約,如果綁定非上交所合約時,請將2改為1即可。下同理。
}
ELSE
{
BPID=T_Deal(F_DealCode(),0,1,F_SellPosition(),Offers(F_DealCode(),"ask1"));//買平指定手?jǐn)?shù)。
//此句中T_Deal的第3個參數(shù)為2,表示平今,只適用于上交所合約,如果綁定非上交所合約時,請將2改為1即可。下同理。
}
}
ELSE IF(F_Sig()==SP&&F_BuyPosition()>0) //如果取出的信號為SP
{
IF(valume2==1)
{
SPID=T_Deal(F_DealCode(),1,1,F_BuyPosition(),Offers(F_DealCode(),"ask1"));//買平指定手?jǐn)?shù)。
}
ELSE
{
SPID=T_Deal(F_DealCode(),1,1,F_BuyPosition(),Offers(F_DealCode(),"ask1"));//買平指定手?jǐn)?shù)。
}
}
}
ELSE IF(F_FreshSig()==0&&F_SigValid()==1)//如果是處理過的信號
{
LastState=0;
IF(F_Sig()==BPK&&LastState==0) //如果取出的信號為BPK
{
IF(T_IsNoOrder()==0)
{
IF(CurrentTime()-LastOrderTime()>s&&Offers(F_DealCode(),"ask1")-F_SigPrice()<=MinPrice(F_DealCode())*M);
T_DeleteOrderByCode(F_DealCode(),0);
BPID=T_Deal(F_DealCode(),0,1,F_SellPosition(),Offers(F_DealCode(),"ask1"));
BKID=T_Deal(F_DealCode(),0,0,KN,Offers(F_DealCode(),"ask1"));
}
ELSE IF(T_IsNoOrder()==1&&T_OrderState(BKID)==1&&T_OrderState(BPID)==1)//買開委托全部成交
{
MessageOut("成交已完成!");
LastState=1;
}
}
ELSE IF(F_Sig()==SPK) //如果取出的信號為SPK
{
IF(T_IsNoOrder()==0&&LastState==0)
{
IF(CurrentTime()-LastOrderTime()>s&&F_SigPrice()-Offers(F_DealCode(),"bid1")<=MinPrice(F_DealCode())*M);
T_DeleteOrderByCode(F_DealCode(),0);
SPID=T_Deal(F_DealCode(),1,1,F_BuyPosition(),Offers(F_DealCode(),"bid1"));
SKID=T_Deal(F_DealCode(),1,0,KN,Offers(F_DealCode(),"bid1"));
}
ELSE IF(T_IsNoOrder()==1&&T_OrderState(SKID)==1&&T_OrderState(SPID)==1)//賣開委托全部成交
{
MessageOut("成交已完成!");
LastState=1;
}
}
ELSE IF(F_Sig()==BP) //如果取出的信號為BP
{
IF(T_IsNoOrder()==0&&LastState==0)
{
IF(CurrentTime()-LastOrderTime()>s&&Offers(F_DealCode(),"ask1")-F_SigPrice()<=MinPrice(F_DealCode())*M);
T_DeleteOrderByCode(F_DealCode(),0);
BPID=T_Deal(F_DealCode(),0,1,F_SellPosition(),Offers(F_DealCode(),"ask1"));
}
ELSE IF(T_IsNoOrder()==1&&T_OrderState(BPID)==1)//買平委托全部成交
{
MessageOut("成交已完成!");
LastState=1;
}
}ELSE IF(F_Sig()==SP) //如果取出的信號為SP
{
IF(T_IsNoOrder()==0&&LastState==0)
{
IF(CurrentTime()-LastOrderTime()>s&&F_SigPrice()-Offers(F_DealCode(),"bid1")<=MinPrice(F_DealCode())*M);
T_DeleteOrderByCode(F_DealCode(),0);
SPID=T_Deal(F_DealCode(),1,1,F_BuyPosition(),Offers(F_DealCode(),"ask1"));
}
ELSE IF(T_IsNoOrder()==1&&T_OrderState(SPID)==1)//賣平委托全部成交
{
MessageOut("成交已完成!");
LastState=1;
}
}
}
WriteGlobal("LASTSTATE", LastState);
} - 網(wǎng)友回復(fù):
我用的這個程序在測試
C>REF(H,1),BPK;
C<REF(L,1),SPK;
AUTOFILTER; - 網(wǎng)友回復(fù): 您的下單組件源碼語法檢測室通過的,您具體有是什么問題嗎?請?jiān)敿?xì)說明
有思路,想編寫各種指標(biāo)公式,程序化交易模型,選股公式,預(yù)警公式的朋友
可聯(lián)系技術(shù)人員 QQ: 262069696 進(jìn)行 有償 編寫!(不貴!點(diǎn)擊查看價格!)
相關(guān)文章
-
沒有相關(guān)內(nèi)容