簡單公式的莫名其秒的問題。朋友說是BUG
作者:開拓者 TB 來源:cxh99.com 發布時間:2016年05月13日
- 咨詢內容:
本帖最后由 sssaaabbb 于 2016-2-29 09:43 編輯
一個語句,A AND B 改為B AND A,,只是把順序反了一下。結果完全不一樣了。
語句1
Params
Vars
NumericSeries FastMA;
NumericSeries slowMA;
NumericSeries EntPriceL;
NumericSeries ma5;
NumericSeries ma10;
NumericSeries ds;
NumericSeries ks;
NumericSeries MinPoint;
BoolSeries kd;
BoolSeries kk;
BoolSeries pd;
BoolSeries pk;
begin
ma5=Average(c,5);
ma10=Average(c,10);
FastMA = Average(c,9) ;
SlowMA = Average(c,18) ;
pd=CrossUnder(l,Lowest(l[1],8)) ;
pk=Crossover(l,Highest(h[1],8)) ;
PlotNumeric("Highest(h[1],50)",Highest(h[1],50));
PlotNumeric("Lowest(l[1],50)",Lowest(l[1],50));
//開倉條件
if( (CrossOver(ma5,ma10)) && h>Highest(h[1],50) )
{Buy(1,o);}
if( (CrossUnder(ma5,ma10)) && l<Lowest(l[1],50) )
{SellShort(1,o);}
開倉條件的反順序
//if( h>Highest(h[1],50) && (CrossOver(ma5,ma10)) )
//{Buy(1,o);}
//if( l<Lowest(l[1],50) && (CrossUnder(ma5,ma10)))
//{SellShort(1,o);}
if(pd[1])
{sell(1,c);}
if(pk[1])
{BuyToCover(1,c);}
end
效果如圖
FT1.png
(22.23 KB, 下載次數: 1)
2016-2-29 09:29:01 上傳
- TB技術人員:
crossover,highest等是序列函數,不可放在條件中運算。
使用中間變量,布爾型的,將crossover,highest,lowest等語句賦值 給中間變量。
比如你現有的kd,kk等變量再加多二個,將&&前后的二個判斷式分別賦值給中間變量,
再將中間變量代入條件中,A&&B 或是 B&&A就沒有區別了