下單組件 開多,自動(dòng)減倉后,不停的循環(huán)平倉0手,哪里有問題呢 [文華財(cái)經(jīng)]
- 咨詢內(nèi)容:
//1、當(dāng)策略發(fā)BK信號(hào),買多3手;如果實(shí)時(shí)漲3點(diǎn),止盈平多單2手;如果實(shí)時(shí)跌5點(diǎn),全部止損平倉。
//2、當(dāng)策略發(fā)出SP信號(hào),全部平倉。
//3、當(dāng)策略發(fā)SK信號(hào),買空3手;如果實(shí)時(shí)跌3點(diǎn),止盈平空單2手;如果實(shí)時(shí)漲5點(diǎn),全部止損平倉。
//4、當(dāng)策略發(fā)出BP信號(hào),全部平倉。
//5、如果委托20秒不成交,全部撤單重新委托。
//當(dāng)信號(hào)為BPK或SPK時(shí)可能不會(huì)被執(zhí)行VAR LastWithDrawFinsh;
VAR B,S,F;
VAR K,Y,N;VOID MAIN()//主函數(shù)
{ K=50;//止損參數(shù)(*0.2)
Y=15;//止盈參數(shù)(*0.2)
N=5;//開倉手?jǐn)?shù)LastWithDrawFinsh=ReadGlobal("LASTWITHDRAW");
IF(T_IsNoOrder()!=1 ) //有掛單的情況
{
IF(CurrentTime()-LastOrderTime()>10 && LastWithDrawFinsh==1)//如果10秒有委托未成交,全撤,下次進(jìn)入會(huì)重新下委托
{
T_DeleteOrderAll();//撤掉所有未成交委托。
LastWithDrawFinsh=0;
}
WriteGlobal("LASTWITHDRAW", LastWithDrawFinsh);
RETURN;
}
LastWithDrawFinsh=1;
F=F_FreshSig(); //取一個(gè)新信號(hào)
IF (T_BuyPosition(F_DealCode())>0)//如果多頭持倉大于0
{
IF(F==0) //如果沒有信號(hào)
{
B=ReadGlobal("BKPRICE");//讀取注冊(cè)表中上一次記錄的開多倉價(jià)格。
IF(Price(F_DealCode())>=T_BuyAvgPrice(F_DealCode())+Y*MinPrice(F_DealCode()) )//如果盈利3個(gè)點(diǎn)()
{
T_ReduceBuyOpiTo(F_DealCode(),Price(F_DealCode()),3);//減倉至3手
}
IF(Price(F_DealCode())<=B-K*MinPrice(F_DealCode()))//如果虧5點(diǎn)
{
T_Deal(F_DealCode(),1,1,F_BuyPosition(),0);//市價(jià)全平多
}
}
ELSE IF(F==1) //如果有信號(hào)
{
IF(F_Sig()==SP&& F_SigValid()==1)//當(dāng)前信號(hào)為SP
{
T_Deal(F_DealCode(),1,1,F_BuyPosition(),0); //全平
}
}
RETURN;
}IF (T_SellPosition(F_DealCode())>0) //如果空頭持倉大于0
{
IF(F==0)
{
S=ReadGlobal("SKPRICE");//讀取注冊(cè)表中上一次記錄的開空倉價(jià)格。
IF(Price(F_DealCode())<=T_SellAvgPrice(F_DealCode())-Y*MinPrice(F_DealCode()) )
{
T_ReduceSellOpiTo(F_DealCode(),Price(F_DealCode()),3);
}
IF(Price(F_DealCode())>=S+K*MinPrice(F_DealCode()))
{
T_Deal(F_DealCode(),0,1,F_SellPosition(),0);
}
}
ELSE IF(F==1)
{
IF(F_Sig()==BP&& F_SigValid()==1)//當(dāng)前信號(hào)為BP信號(hào)。
{
T_Deal(F_DealCode(),0,1,F_SellPosition(),0);
}
}
RETURN;
}
IF (T_BuyPosition(F_DealCode())==0 && T_SellPosition(F_DealCode())==0)//如果空倉
{
IF(F==1)
{
IF(F_Sig()==BK&& F_SigValid()==1)//當(dāng)前信號(hào)為開多倉信號(hào)。
{
T_Deal(F_DealCode(),0,0,N,Price(F_DealCode())+MinPrice(F_DealCode()));//開多N手,價(jià)格+1
B=F_SigPrice();
WriteGlobal("BKPRICE",B);
}IF(F_Sig()==SK&& F_SigValid()==1)//當(dāng)前信號(hào)為開空倉信號(hào)。
{
T_Deal(F_DealCode(),1,0,N,Price(F_DealCode())-MinPrice(F_DealCode()));
S=F_SigPrice();
WriteGlobal("SKPRICE",S);
}
}
}
} - 文華技術(shù)人員:
T_ReduceBuyOpiTo(F_DealCode(),Price(F_DealCode()),3);//減倉至3手
會(huì)不會(huì)是上面這句有問題,因?yàn)樽詣?dòng)減倉至3手后,程序就不停的發(fā)出減倉0手的指令。
- 文華客服:
因?yàn)槟氖謹(jǐn)?shù)已經(jīng)是3手了,沒有用別的條件限制,所以軟件在運(yùn)行REDUCE時(shí)會(huì)發(fā)出委托0手的指令
- 網(wǎng)友回復(fù):
在這個(gè)組件里,
"LASTWITHDRAW"是一個(gè)什么參數(shù)?
"BKPRICE"是注冊(cè)表里的數(shù)值嗎?在函數(shù)表里怎么沒有這樣的參數(shù)?還有哪些類似這種類型的參數(shù)呢?
- 網(wǎng)友回復(fù): 工作時(shí)間咨詢相關(guān)同事后回復(fù)您
有思路,想編寫各種指標(biāo)公式,程序化交易模型,選股公式,預(yù)警公式的朋友
可聯(lián)系技術(shù)人員 QQ: 262069696 進(jìn)行 有償 編寫!(不貴!點(diǎn)擊查看價(jià)格!)
相關(guān)文章
-
沒有相關(guān)內(nèi)容