您的策略主要有以下幾個問題:
一、對cross over和cross under的理解不太正確,導致您認為在同一根棒內(nèi)condition1和condition2會同時滿足;事實上這兩個條件不會在一根bar內(nèi)同時滿足; 舉例cross above來說,
Above 指定向上的方向(值從小到大)同over
A cross above B
畫線A向上交叉穿過畫線B的定義如下:當前K棒的A值大于B值且滿足下面的其中一個條件:
1) 前一根K棒中A值小于B值。?
或
2) 前一根或前幾根K棒的A值等于B值,再之前的K棒A值小于B值。
二、set關(guān)鍵字對于初學者,建議放在條件if的外部,不會放在if內(nèi)部;還有就是同一個信號中若setpercenttrailing關(guān)鍵一同執(zhí)行時,只會最后一個有效;更詳細的您可以看一下這個帖子,http://forums.icetech.com.cn/forum.php?mod=viewthread&tid=3152&extra=page%3D6
這就是為什么您的回撤止盈命令沒有執(zhí)行的原因。
?
三、從代碼的執(zhí)行效率來說,不建議多個if語句,能合并的盡量合并在一起,下面對您的代碼進行整理:
[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);
?
您的策略主要有以下幾個問題:
一、對cross over和cross under的理解不太正確,導致您認為在同一根棒內(nèi)condition1和condition2會同時滿足;事實上這兩個條件不會在一根bar內(nèi)同時滿足; 舉例cross above來說,
Above 指定向上的方向(值從小到大)同over
A cross above B
畫線A向上交叉穿過畫線B的定義如下:當前K棒的A值大于B值且滿足下面的其中一個條件:
1) 前一根K棒中A值小于B值。?
或
2) 前一根或前幾根K棒的A值等于B值,再之前的K棒A值小于B值。
二、set關(guān)鍵字對于初學者,建議放在條件if的外部,不會放在if內(nèi)部;還有就是同一個信號中若setpercenttrailing關(guān)鍵一同執(zhí)行時,只會最后一個有效;更詳細的您可以看一下這個帖子,http://forums.icetech.com.cn/forum.php?mod=viewthread&tid=3152&extra=page%3D6
這就是為什么您的回撤止盈命令沒有執(zhí)行的原因。
?
三、從代碼的執(zhí)行效率來說,不建議多個if語句,能合并的盡量合并在一起,下面對您的代碼進行整理:
[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ā)時,前面所下的單都同時被取消”,您的這句話是什么意思?因為您使用的是市價單,所以不存在掛單的情況,也就不存在“前面所下的單都同時被取消”的情況;即使是條件單,只要if的條件不再滿足,也就會自動取消。
?
您給的鏈接看了,也明白了一些。這里再問一下,如果有N個setpercenttrailing語句(在條件式外),會是什么情況?也是只有最后一個有效嗎?如果我的想法是需要有N個這樣的移動止盈命令,那應該如何處理呢?
比如我這樣寫:
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);
?
您給的鏈接看了,也明白了一些。這里再問一下,如果有N個setpercenttrailing語句(在條件式外),會是什么情況?也是只有最后一個有效嗎?如果我的想法是需要有N個這樣的移動止盈命令,那應該如何處理呢?
比如我這樣寫:
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);