您的策略主要有以下幾個(gè)問(wèn)題:
一、對(duì)cross over和cross under的理解不太正確,導(dǎo)致您認(rèn)為在同一根棒內(nèi)condition1和condition2會(huì)同時(shí)滿足;事實(shí)上這兩個(gè)條件不會(huì)在一根bar內(nèi)同時(shí)滿足; 舉例cross above來(lái)說(shuō),
Above 指定向上的方向(值從小到大)同over
A cross above B
畫線A向上交叉穿過(guò)畫線B的定義如下:當(dāng)前K棒的A值大于B值且滿足下面的其中一個(gè)條件:
1) 前一根K棒中A值小于B值。?
或
2) 前一根或前幾根K棒的A值等于B值,再之前的K棒A值小于B值。
二、set關(guān)鍵字對(duì)于初學(xué)者,建議放在條件if的外部,不會(huì)放在if內(nèi)部;還有就是同一個(gè)信號(hào)中若setpercenttrailing關(guān)鍵一同執(zhí)行時(shí),只會(huì)最后一個(gè)有效;更詳細(xì)的您可以看一下這個(gè)帖子,http://forums.icetech.com.cn/forum.php?mod=viewthread&tid=3152&extra=page%3D6
這就是為什么您的回撤止盈命令沒(méi)有執(zhí)行的原因。
?
三、從代碼的執(zhí)行效率來(lái)說(shuō),不建議多個(gè)if語(yǔ)句,能合并的盡量合并在一起,下面對(duì)您的代碼進(jìn)行整理:
[intrabarordergeneration=true];
inputs:x1(21);
variable:aa(0);
value1=waverage(close,x1);
aa=value1 - value1[1] ;
condition1=aa cross over 0;
condition2=aa cross under 0;
if marketposition<>1? and? condition1 then
? ? buy next bar at market;
?
if marketposition<>-1? and? condition2 then
? ? sellshort at next bar market;
?
setstoploss(750);
setpercenttrailing(1250,50);
SetProfitTarget(7500);
?
您的策略主要有以下幾個(gè)問(wèn)題:
一、對(duì)cross over和cross under的理解不太正確,導(dǎo)致您認(rèn)為在同一根棒內(nèi)condition1和condition2會(huì)同時(shí)滿足;事實(shí)上這兩個(gè)條件不會(huì)在一根bar內(nèi)同時(shí)滿足; 舉例cross above來(lái)說(shuō),
Above 指定向上的方向(值從小到大)同over
A cross above B
畫線A向上交叉穿過(guò)畫線B的定義如下:當(dāng)前K棒的A值大于B值且滿足下面的其中一個(gè)條件:
1) 前一根K棒中A值小于B值。?
或
2) 前一根或前幾根K棒的A值等于B值,再之前的K棒A值小于B值。
二、set關(guān)鍵字對(duì)于初學(xué)者,建議放在條件if的外部,不會(huì)放在if內(nèi)部;還有就是同一個(gè)信號(hào)中若setpercenttrailing關(guān)鍵一同執(zhí)行時(shí),只會(huì)最后一個(gè)有效;更詳細(xì)的您可以看一下這個(gè)帖子,http://forums.icetech.com.cn/forum.php?mod=viewthread&tid=3152&extra=page%3D6
這就是為什么您的回撤止盈命令沒(méi)有執(zhí)行的原因。
?
三、從代碼的執(zhí)行效率來(lái)說(shuō),不建議多個(gè)if語(yǔ)句,能合并的盡量合并在一起,下面對(duì)您的代碼進(jìn)行整理:
[intrabarordergeneration=true];
inputs:x1(21);
variable:aa(0);
value1=waverage(close,x1);
aa=value1 - value1[1] ;
condition1=aa cross over 0;
condition2=aa cross under 0;
if marketposition<>1? and? condition1 then
? ? buy next bar at market;
?
if marketposition<>-1? and? condition2 then
? ? sellshort at next bar market;
?
setstoploss(750);
setpercenttrailing(1250,50);
SetProfitTarget(7500);
?
“買賣指令任何一條被觸發(fā)時(shí),前面所下的單都同時(shí)被取消”,您的這句話是什么意思?因?yàn)槟褂玫氖鞘袃r(jià)單,所以不存在掛單的情況,也就不存在“前面所下的單都同時(shí)被取消”的情況;即使是條件單,只要if的條件不再滿足,也就會(huì)自動(dòng)取消。
?
您給的鏈接看了,也明白了一些。這里再問(wèn)一下,如果有N個(gè)setpercenttrailing語(yǔ)句(在條件式外),會(huì)是什么情況?也是只有最后一個(gè)有效嗎?如果我的想法是需要有N個(gè)這樣的移動(dòng)止盈命令,那應(yīng)該如何處理呢?
比如我這樣寫:
setstoploss(750);
? ? SetBreakEven(750);
? ? SetStopPosition;?
? ? setpercenttrailing(1250,50);
? ? SetStopPosition;?
? ? setpercenttrailing(2500,45);?
? ? SetStopPosition;?
? ? setpercenttrailing(3750,40);
? ? SetStopPosition;?
? ? setpercenttrailing(5000,35);
? ? SetStopPosition;?
? ? setpercenttrailing(6250,30);
? ? SetStopPosition;?
? ? setpercenttrailing(8750,25);
? ? SetStopPosition;?
? ? setpercenttrailing(10000,20);
? ? SetStopPosition;?
? ? setpercenttrailing(11250,15);
? ? SetStopPosition;?
? ? setpercenttrailing(12500,10);
? ? SetStopPosition;?
? ? setpercenttrailing(13750,5);
? ? SetProfitTarget(15000);
?
您給的鏈接看了,也明白了一些。這里再問(wèn)一下,如果有N個(gè)setpercenttrailing語(yǔ)句(在條件式外),會(huì)是什么情況?也是只有最后一個(gè)有效嗎?如果我的想法是需要有N個(gè)這樣的移動(dòng)止盈命令,那應(yīng)該如何處理呢?
比如我這樣寫:
setstoploss(750);
? ? SetBreakEven(750);
? ? SetStopPosition;?
? ? setpercenttrailing(1250,50);
? ? SetStopPosition;?
? ? setpercenttrailing(2500,45);?
? ? SetStopPosition;?
? ? setpercenttrailing(3750,40);
? ? SetStopPosition;?
? ? setpercenttrailing(5000,35);
? ? SetStopPosition;?
? ? setpercenttrailing(6250,30);
? ? SetStopPosition;?
? ? setpercenttrailing(8750,25);
? ? SetStopPosition;?
? ? setpercenttrailing(10000,20);
? ? SetStopPosition;?
? ? setpercenttrailing(11250,15);
? ? SetStopPosition;?
? ? setpercenttrailing(12500,10);
? ? SetStopPosition;?
? ? setpercenttrailing(13750,5);
? ? SetProfitTarget(15000);