[求助]請(qǐng)幫忙完善一個(gè)漏洞,謝謝
作者:金字塔 來(lái)源:cxh99.com 發(fā)布時(shí)間:2014年03月06日
- 咨詢(xún)內(nèi)容:
INPUT:M(26,5,500,30);INPUT:N(2,0.1,10,1);INPUT:X(0.2,0.2,10,0.2);MID : MA(CLOSE,M);UPPER: MID + N*STD(CLOSE,M);LOWER: MID - N*STD(CLOSE,M);多:=ALL(C>O+15*X,2) AND ALL(O>MID,2);空:=ALL(C<O-15*X,2) AND ALL(O<MID,2);
if 多 then begin sellshort(holding<0, 0, thisclose); buy(holding=0 {AND TIME<144000}, 100%, LIMIT); endHH:=HHV(H,BARSLAST(HOLDING<=0));多止損1:HH<Enterprice+60*X AND C<=HH-60*X ,LINETHICK0;多止損2:Enterprice*1.02>=HH AND HH>=Enterprice+60*X AND C<Enterprice+2*X ,LINETHICK0;多止損3:HH>Enterprice*1.02 AND C<HH*0.98 ,LINETHICK0;多止損4:TIME>144000 AND C<Enterprice*1.02 ,LINETHICK0;if 多止損1 OR 多止損2 OR 多止損3 OR 多止損4 then sell(holding>0, 0, thisclose);
if 空 then begin sell(holding>0, 0, thisclose); buyshort(holding=0 {AND TIME<144000}, 100%, thisclose); endLL:=LLV(L,BARSLAST(HOLDING>=0));空止損1:LL>Enterprice-60*X AND C>=LL+60*X ,LINETHICK0;空止損2:Enterprice<=LL*1.02 AND LL<=Enterprice-60*X AND C>Enterprice-2*X ,LINETHICK0;空止損3:LL*1.02<Enterprice AND C*0.98>LL ,LINETHICK0;空止損4:TIME>144000 AND C*1.02>Enterprice ,LINETHICK0;if 空止損1 OR 空止損2 OR 空止損3 OR 空止損4 then sellshort(holding<0, 0, thisclose);
這個(gè)程序存在一個(gè)問(wèn)題就是當(dāng)平倉(cāng)和開(kāi)倉(cāng)同時(shí)出現(xiàn)時(shí),只執(zhí)行平倉(cāng)命令而忽略開(kāi)倉(cāng)命令。比如說(shuō)當(dāng)前是開(kāi)空倉(cāng)中,同時(shí)出現(xiàn)平空倉(cāng)和開(kāi)多倉(cāng)信號(hào),系統(tǒng)只執(zhí)行平空倉(cāng),卻沒(méi)執(zhí)行開(kāi)多倉(cāng)。請(qǐng)問(wèn)應(yīng)該如何修正這個(gè)問(wèn)題?
此主題相關(guān)圖片如下:qq截圖20140122212405.jpg
另外,如果下單價(jià)格需要是當(dāng)前價(jià)格的一系列價(jià)格,比如當(dāng)前價(jià)是2200點(diǎn),需要買(mǎi)入2200、2200.2、2200.4、這三個(gè)的全部當(dāng)前賣(mài)單,應(yīng)該如何修改程序?
- 金字塔客服:
if 多 then begin
sellshort(holding<0, 0, thisclose);
buy(holding=0 {AND TIME<144000}, 100%, LIMIT);
end
limit后面沒(méi)有定義價(jià)位
改成thisclose就行
if 多 then begin
sellshort(holding<0, 0, thisclose);
buy(holding=0 {AND TIME<144000}, 100%, thisclose);
end
后面的做不到
- 用戶(hù)回復(fù):
非常感謝"jinzhe"的幫助,謝謝!
- 網(wǎng)友回復(fù):
if 多 then begin sellshort(holding<0, 0, thisclose); buy(holding=0 {AND TIME<144000}, 100%, LIMIT); end
若是修改為:
if 多 then begin sellshort(holding<0, 0, limit,close); buy(holding=0 {AND TIME<144000}, 100%, limit,close); end
這樣是否可行呢?
- 網(wǎng)友回復(fù):
limit是次周期限價(jià)交易,容易因行情波動(dòng)而變成不成交的價(jià)格,所以推薦用limitr,本周期限價(jià)交易
if 多 then begin
sellshort(holding<0, 0, limitr,close);
buy(holding=0 {AND TIME<144000}, 100%, limitr,close);
end |