版主!為啥此程序會(huì)亂發(fā)單? [開拓者 TB]
-
咨詢內(nèi)容:
Params
Numeric offset(6)? ? ? ? ;? ? ? ? //此處添加參數(shù)
Numeric a(5);
Numeric b(10);
Numeric e(20);
Numeric f(80);
Vars
Numeric aa;
Numeric bb;
Numeric cc;
Numeric dd;
Numeric totalequity;
Numeric turtleunits;
? ? ? ? //此處添加變量
Begin
if(date!=date[1] && high==low)
Return;
aa=Average(close,a);
bb=Average(close,b);
cc=average(close,e);
dd=Average(close,f);
TotalEquity = Portfolio_CurrentCapital() + Portfolio_UsedMargin();? ?//賬戶最新資產(chǎn) = 按當(dāng)前Bar開盤價(jià)計(jì)算的可用資金 + 持倉保證金
TurtleUnits=(TotalEquity/(MarginRatio*ContractUnit()*BigPointValue()*Close))*3/10;
TurtleUnits = IntPart(TurtleUnits); // 對(duì)小數(shù)取整
if(BarStatus==2 || GetGlobalVar(0)==InvalidNumeric)
SetGlobalVar(0,0);
if(A_BuyPosition==0 && A_SellPosition==0 && GetGlobalVar(0)==0)
{
if(aa>dd && bb>dd &&??cc>dd)
{
A_SendOrder(Enum_Buy,Enum_Entry,TurtleUnits,Q_BidPrice+offset*MinMove*PriceScale);
}
Else if(aa<dd && bb<dd && cc<dd)
{
A_SendOrder(Enum_Sell,Enum_Entry,TurtleUnits,Q_BidPrice-offset*MinMove*PriceScale);
}
}
if(A_SellPosition>0 && GetGlobalVar(0)==0)
{
if(aa>dd && bb>dd &&??cc>dd)
{
A_SendOrder(Enum_Buy,Enum_Exit,A_SellPosition,Q_BidPrice+offset*MinMove*PriceScale);
A_SendOrder(Enum_Buy,Enum_Entry,TurtleUnits,Q_BidPrice+offset*MinMove*PriceScale);
}
}
if(A_BuyPosition>0 && GetGlobalVar(0)==0)
{
if(aa<dd && bb<dd && cc<dd)
{
A_SendOrder(Enum_Sell,Enum_Exit,A_BuyPosition,Q_BidPrice-offset*MinMove*PriceScale);
A_SendOrder(Enum_Sell,Enum_Entry,TurtleUnits,Q_BidPrice-offset*MinMove*PriceScale);
}
}
End?
?來源:CXH99.COM
-
TB技術(shù)人員:
A函數(shù)的用法與buy\sell等圖表信號(hào)函數(shù)的用法不同。。是需要自己用代碼來控制下單 次數(shù)的 。。
一般是使用全局變量進(jìn)行控制,避免對(duì)一個(gè)條件多次滿足后的重復(fù)發(fā)單 。
上述代碼中,全局變量的初始化并不合理,且在執(zhí)行委托后并沒有及時(shí)將全局變量賦值 改變其值,以達(dá)到控制下單的目的。
建議還是系統(tǒng)學(xué)習(xí)后再來使用A函數(shù)。?
-
TB客服:
謝謝!
?
-
網(wǎng)友回復(fù):
本帖最后由 qsb588986 于 2017-7-5 05:26 編輯
版主!??這樣可以吧!
Params
Numeric offset(6)? ? ? ? ;? ? ? ? //此處添加參數(shù)
Numeric a(5);
Numeric b(10);
Numeric e(20);
Numeric f(80);
Vars
Numeric aa;
Numeric bb;
Numeric cc;
Numeric dd;
Numeric totalequity;
Numeric turtleunits;
? ? ? ? //此處添加變量
Begin
if(date!=date[1] && high==low)
Return;
aa=Average(close,a);
bb=Average(close,b);
cc=average(close,e);
dd=Average(close,f);
TotalEquity = Portfolio_CurrentCapital() + Portfolio_UsedMargin();? ?//賬戶最新資產(chǎn) = 按當(dāng)前Bar開盤價(jià)計(jì)算的可用資金 + 持倉保證金
TurtleUnits=(TotalEquity/(MarginRatio*ContractUnit()*BigPointValue()*Close))*3/10;
TurtleUnits = IntPart(TurtleUnits); // 對(duì)小數(shù)取整
if(BarStatus==0 || GetGlobalVar(0)==InvalidNumeric)
SetGlobalVar(0,0);
setglobalvar(1,1);
setglobalvar(2,1);
if(A_BuyPosition==0 && A_SellPosition==0 && GetGlobalVar(0)==0)
{
if(aa>dd && bb>dd &&??cc>dd)
{
A_SendOrder(Enum_Buy,Enum_Entry,TurtleUnits,Q_BidPrice+offset*MinMove*PriceScale);
SetGlobalVar(0,1);
SetGlobalVar(2,1);
}
Else if(aa<dd && bb<dd && cc<dd)
{
A_SendOrder(Enum_Sell,Enum_Entry,TurtleUnits,Q_BidPrice-offset*MinMove*PriceScale);
SetGlobalVar(0,1);
SetGlobalVar(1,1);
}
}
if(A_SellPosition>0 && GetGlobalVar(1)==1)
{
if(aa>dd && bb>dd &&??cc>dd)
{
A_SendOrder(Enum_Buy,Enum_Exit,A_SellPosition,Q_BidPrice+offset*MinMove*PriceScale);
A_SendOrder(Enum_Buy,Enum_Entry,TurtleUnits,Q_BidPrice+offset*MinMove*PriceScale);
SetGlobalVar(1,2);
SetGlobalVar(2,1);
}
}
if(A_BuyPosition>0 && GetGlobalVar(2)==1)
{
if(aa<dd && bb<dd && cc<dd)
{
A_SendOrder(Enum_Sell,Enum_Exit,A_BuyPosition,Q_BidPrice-offset*MinMove*PriceScale);
A_SendOrder(Enum_Sell,Enum_Entry,TurtleUnits,Q_BidPrice-offset*MinMove*PriceScale);
SetGlobalVar(2,2);
SetGlobalVar(1,1);
}
}
End
有思路,想編寫各種指標(biāo)公式,程序化交易模型,選股公式,預(yù)警公式的朋友
可聯(lián)系技術(shù)人員 QQ: 511411198 進(jìn)行 有償 編寫!(不貴!點(diǎn)擊查看價(jià)格!)
相關(guān)文章
-
沒有相關(guān)內(nèi)容