請教這樣編寫有什么問題
作者:開拓者 TB 來源:cxh99.com 發(fā)布時間:2013年02月18日
- 咨詢內(nèi)容: 以下這樣編寫在模擬中與預(yù)想的不一樣。原來想要持倉一直保持只有1手,已經(jīng)有持倉就不能連續(xù)開倉,但交易結(jié)果是不停開倉。請問哪里出錯了,應(yīng)該怎樣更改。另外,請教怎樣把K線時間周期設(shè)置為每根8.5分鐘。謝謝
Params
Numeric length(10);
Numeric lots(1);
Vars
NumericSeries MA1;
Begin
MA1=XAverage(Close,length);
If(Close>MA1&&MarketPosition<>1)
{
Buy(lots,Close);
}
If(Close<MA1&&MarketPosition<>-1)
{
SellShort(lots,Close);
}
PlotNumeric("MA1",MA1);
End
- TB技術(shù)人員: 另外,我的原意是在收盤價判斷突破之后才發(fā)出交易委托,但是實(shí)際是盤中突破了就開倉了。請老師指點(diǎn)一下錯在哪里。謝謝
- TB客服: 以你的公式來看,應(yīng)該是不可以加倉的。
不停開倉的表現(xiàn)是什么樣的?方便的話截個圖看一下信號。
條件里使用了close來做判斷,實(shí)時中價格條件滿足了就會委托 ,不會待到收盤之后的。
使用close這樣的條件判斷。有信號消失的可能性,請注意。。。
你前面所說的不停開倉的表現(xiàn),如果信號只一個,而帳戶卻多次開倉,則應(yīng)該是與此信號消失有關(guān)了。
- 網(wǎng)友回復(fù): 實(shí)時行情中,在一根K線走完之前,其Close,High,Low都可能隨之改變,所以在條件判斷中使用Close可能這一Tick突破了,下一Tick又回到突破價以下
所以信號消失
而Marketposition是以圖上的表示為準(zhǔn),而不是以你賬戶里實(shí)際的倉位為準(zhǔn),所以當(dāng)價格再次突破時就會出現(xiàn)同一Bar上反復(fù)開倉的結(jié)果
所以要么你用Close[1]進(jìn)行判斷
或者你干脆用A函數(shù)和Q函數(shù)。。。。
但
- 網(wǎng)友回復(fù): 我是新手,請教什么是A函數(shù)和Q函數(shù),在哪里可以學(xué)習(xí)到。謝謝