有用switch語(yǔ)句做移動(dòng)止盈,以下是開(kāi)1手的語(yǔ)句?
switch(contractprofit)?
? ? ? begin
? ? ? case 1 to 700:
? ? ? SetStopContract;
? ? ? setbreakeven(2*ATR*bigpointvalue);?
? ? ? case 701 to 1000:
? ? ? SetStopContract;?
? ? ? setdollartrailing(maxpositionprofit(0)*0.30);
? ? ? case 1001 to 1500:
? ? ? SetStopContract;
? ? ? setdollartrailing(maxpositionprofit(0)*0.25);
? ? ? case 1501 to 2000:
? ? ? SetStopContract;
? ? ? setdollartrailing(maxpositionprofit(0)*0.20);
? ? ? case 2001 to 3000:
? ? ? SetStopContract;
? ? ? setdollartrailing(maxpositionprofit(0)*0.15);
? ? ? case 3001 to 10000:
? ? ? SetStopContract;
? ? ? setdollartrailing(maxpositionprofit(0)*0.1);
? ? ? end;
問(wèn)題是,我現(xiàn)在要每次開(kāi)2手、3手。。。,但是不知道盈利區(qū)間如何才能相應(yīng)的跟著變化?
?
雖然不太明白您想表達(dá)的意思,但是您的代碼還是有幾點(diǎn)需要說(shuō)明一下:
第一、您的這個(gè)是只允許一筆進(jìn)場(chǎng)還是可以允許多筆進(jìn)場(chǎng),您只是增加每筆進(jìn)場(chǎng)的手?jǐn)?shù)是嗎?
第二、若您只是考慮一筆進(jìn)場(chǎng),并且現(xiàn)在的問(wèn)題是增加進(jìn)場(chǎng)的手?jǐn)?shù),那么您只需要將setbreakeven(2*ATR*bigpointvalue);更改成setbreakeven(2*currentcontracts*ATR*bigpointvalue);即可
第三、若您還考慮多筆進(jìn)場(chǎng),并且增加每次進(jìn)場(chǎng)的手?jǐn)?shù),那么setdollartrailing和setbreakeven的參數(shù)都需要調(diào)整一下,因?yàn)閙axpositionprofit(0)計(jì)算的是當(dāng)前持倉(cāng)合并的最大獲利金額,并不是單獨(dú)每筆持倉(cāng)的最大獲利金額。
第四、對(duì)于setbreakeven(2*ATR*bigpointvalue); 的參數(shù)不建議使用直接使用變量的形式,您可以通過(guò)條件判斷,當(dāng)某個(gè)條件滿(mǎn)足時(shí)再使用某個(gè)參數(shù),當(dāng)另一個(gè)條件滿(mǎn)足時(shí)再使用其它變量的形式;具體原因您需要學(xué)習(xí)一下帖子“Set系列關(guān)鍵字”
?
我的意思是每總共開(kāi)1手,只開(kāi)一次,當(dāng)我1手盈利700-1000時(shí)候開(kāi)啟移動(dòng)止盈,只要回撤0.3就平倉(cāng)出倉(cāng),語(yǔ)句如下
case 701 to 1000:
? ? ? SetStopContract;?
? ? ? setdollartrailing(maxpositionprofit(0)*0.30);
過(guò)一段時(shí)間資金增加了,我每次開(kāi)2手入場(chǎng),這時(shí)候代碼里的止盈區(qū)間應(yīng)該為2*701--2*1000,而不是701-1000,我不知道如何改代碼可以實(shí)現(xiàn)我這個(gè)功能
?
范例如下:
var: var0(1), var1(7);
switch(4)
begin
case var0 to var1:
print("currentbar=",currentbar,",var0=",var0);
end;
您只需要通過(guò)動(dòng)態(tài)更改變量var0和var1的值即可;比如,當(dāng)您委托1手的時(shí)候,設(shè)置var0和var1分別為701和1000,而當(dāng)委托2手的時(shí)候,設(shè)置var0和var1分別為2*701和2*1000即可。