后臺程式化同一根K線走完后,為何會開兩次倉?
作者:金字塔 來源:cxh99.com 發(fā)布時間:2016年12月25日
- 咨詢內(nèi)容:
if duo and extgbdata(stklabel+'bn1')=0 then begin tbuy(1,手?jǐn)?shù),mkt); extgbdataset(stklabel+'bn1',1); extgbdataset(stklabel+'bn15',手?jǐn)?shù)); extgbdataset(stklabel+'bdcs',0); end s:=ref(15atr,tenterbars); if duo and extgbdata(stklabel+'bn1')=1 and c>=tENTERPRICE+zc*s then begin tbuy(1,手?jǐn)?shù),mkt); extgbdataset(stklabel+'bn1',2); extgbdataset(stklabel+'bn152',手?jǐn)?shù)); extgbdataset(stklabel+'bdcs',0); end s:=ref(15atr,tenterbars);
程式剛開始運行時,達(dá)到條件只按“手?jǐn)?shù)”開倉,只偶爾有同一根K線走完后開兩倍手?jǐn)?shù)的倉位,并且是同一時間重復(fù)開倉,現(xiàn)在經(jīng)常是這樣了,是什么原因。我的策略是限制達(dá)到條件只開一次倉,加一次倉,但是加倉是至少在下一根K線以后,因為是需要價格離第一次開倉有一定的距離了,再加倉的。現(xiàn)在經(jīng)常這樣,同一時間開了兩倍手?jǐn)?shù)的倉位后,等后面達(dá)到條件了,也不會加倉了。這到底是什么原因。
- 金字塔客服:
這兩句中間sleep個1秒。在第一個開倉沒報出去之前會獲取到之前一個開倉價,中間sleep保證第一個開倉已經(jīng)報出去了,在第二個開倉時獲取的是第一個的開倉價
- 用戶回復(fù):
那這個應(yīng)該怎么寫,才能防止重復(fù)開倉呢?
- 網(wǎng)友回復(fù):
if duo and extgbdata(stklabel+'bn1')=0 then begin
tbuy(1,手?jǐn)?shù),mkt);
extgbdataset(stklabel+'bn1',1);
extgbdataset(stklabel+'bn15',手?jǐn)?shù));
extgbdataset(stklabel+'bdcs',0);
end
s:=ref(15atr,tenterbars);
sleep(1000);
if duo and extgbdata(stklabel+'bn1')=1 and c>=tENTERPRICE+zc*s then begin
tbuy(1,手?jǐn)?shù),mkt);
extgbdataset(stklabel+'bn1',2);
extgbdataset(stklabel+'bn152',手?jǐn)?shù));
extgbdataset(stklabel+'bdcs',0);
end
s:=ref(15atr,tenterbars);
- 網(wǎng)友回復(fù):
就在開倉與加倉之間加一句代碼就可以了,sleep(1000)?