[求助]請(qǐng)教老師一個(gè)問(wèn)題
作者:金字塔 來(lái)源:cxh99.com 發(fā)布時(shí)間:2015年02月11日
- 咨詢內(nèi)容:
老師,您好~我想在代碼里實(shí)現(xiàn)以下規(guī)則:一,買(mǎi)入條件當(dāng)EMA8上穿EMA21成立后,K線回落至EMA8,即close<=ema8時(shí),發(fā)出買(mǎi)入指令;二,平倉(cāng)條件當(dāng)CLOSE>=ENTERPRICE*1.08時(shí),發(fā)出平倉(cāng)指令;三,止損條件當(dāng)CLOSE<=ENTERPRICE*0.96時(shí),發(fā)出止損指令;四,當(dāng)條件分別成立時(shí),在發(fā)出指令的K線,做上標(biāo)記;
寫(xiě)的代碼如下,但一直沒(méi)有信號(hào),請(qǐng)您改錯(cuò)并指正一下,非常感謝~
ema8:=ema(close,8);ema21:=ema(close,21);
if cross(ema8,ema21) then begin buy(close<=ema8,1000,thisclose); drawtext(holding>0,low,"買(mǎi)入"); end;
if holding>0 and close<enterprice*0.96 then begin sell(holding>0,holding,thisclose); drawtext(holding=0,low,"止損"); end;
if holding>0 and close>=enterprice*1.08 then begin sell(holding>0,holding,thisclose); drawtext(holding=0,low,"平倉(cāng)"); end;
- 金字塔客服:
if cross(ema8,ema21) then
begin
buy(close<=ema8,1000,thisclose);
drawtext(holding>0,low,"買(mǎi)入");
end;
改成
if barslast(cross(ema8,ema21))>0 and close<=ema8 then
begin
buy(holding=0,1000,thisclose);
drawtext(holding>0,low,"買(mǎi)入");
end;
- 用戶回復(fù):
老師,您好:
我在上面的程序段中,加入了提高止損判斷語(yǔ)句。
當(dāng)頭寸持倉(cāng)盈利超過(guò)+4%后,若再次跌破EMA21,則止損離場(chǎng);若盈利超過(guò)+8%,則止盈。
但代碼還是顯示不出來(lái)。
麻煩您能看一下嗎?
ema8:ema(close,8);
ema21:ema(close,21);
if barslast(cross(ema8,ema21))>0 and close<=ema8 then
buy(holding=0,1000,thisclose);
if close<enterprice*0.96 and holding>0 then
sell(1,holding,thisclose);
if close>=enterprice*1.04 and holding>0 then
begin
sell(close>=enterprice*1.08,holding,thisclose);
sell(close<=ema21,holding,thisclose);
end
- 網(wǎng)友回復(fù):
ema8:ema(close,8);
ema21:ema(close,21);
if barslast(cross(ema8,ema21))>0 and close<=ema8 then
buy(holding=0,1000,thisclose);
if close<enterprice*0.96 and holding>0 and enterbars>0 then
sell(1,holding,thisclose);
if barslast(close>=enterprice*1.04)>0 and close>=enterprice*1.08 and holding>0 and enterbars>0 then
begin
sell(holding>0,holding,thisclose);
end
if barslast(close>=enterprice*1.04)>0 and close<=ema21 and holding>0 and enterbars>0 then
begin
- 網(wǎng)友回復(fù):
請(qǐng)教老師關(guān)于這行代碼:
if barslast(cross(ema8,ema21))>0 and close<=ema8 then因?yàn)閎arslast(cross(ema8,ema21))>0 代表了該條件成立,但當(dāng)cross(ema21,ema8)之后,也會(huì)有做多信號(hào)發(fā)出。
若只想在可以cross(ema8,ema21))和cross(ema21,ema8)之間發(fā)出做多信號(hào),需要添加什么條件?
PS:非常感謝老師上面的解答~
以下是引用jinzhe在2013/12/3 8:42:10的發(fā)言:
if cross(ema8,ema21) then
begin
buy(close<=ema8,1000,thisclose);
drawtext(holding>0,low,"買(mǎi)入");
end;
改成
if barslast(cross(ema8,ema21))>0 and close<=ema8 then
begin
buy(holding=0,1000,thisclose);
drawtext(holding>0,low,"買(mǎi)入");
end;