OHYAOH 發表於 11-6-21 14:05

請問以下的句子如何轉成AmiBroker的語法

狀況如下:

如果 A>B
C=A-B
否則
C=B-A

我把它寫成

if (A-B>0)
C=A-B
else
{
C=B-A
}

結果出現了錯誤如下:
condition in IF, WHILE, FOR statements has to be Numeric or Boolean type.
You can not use array here, please use [] (array subscript operator) to access array elements.

請問我要怎樣把它改成正確的語法, 謝謝了!

kilroy 發表於 11-6-21 14:12


這個要請專業的來了

樓下繼續 {:5_288:}

enochyu 發表於 11-6-21 14:19

試試看, 可不可以
C = IIf( A > B
       , A - B
       , B - A
       );

jason66899 發表於 11-6-21 14:26

這麼專業簡單的問題
就請樓下的大大指導了
{:4_153:}

kilroy 發表於 11-6-21 14:28

這麼專業簡單的問題
就請樓下的大大指導了
jason66899 發表於 11-6-21 02:26 PM http://www.coco-in.net/images/common/back.gif


   樓上大大是真的專業的程式寫作者
   小弟是認真的說{:5_260:}

OHYAOH 發表於 11-6-21 14:42

剛亂湊竟然湊出來, 不知道對不對

for( i = 1; i < BarCount; i++ )
{
   if ( A[ i ] > B[ i ] )
   {
       C[ i ]=A[ i ]-B[ i ];
   }
   else
   {
       C[ i ]=B[ i ]-A[ i ];
   }
}

沒有出現錯訊, 不知這樣對不對....

hhy 發表於 11-6-21 17:22

abs()能嗎?
abs()能嗎?

afala 發表於 11-6-21 21:26

我試了一下,沒有錯誤訊息
A=100;
B=50;
if (A-B>0)
C=A-B;
else
{
C=B-A;
}

OHYAOH 發表於 11-6-21 21:50

我試了一下,沒有錯誤訊息
afala 發表於 11-6-21 09:26 PM http://coco-in.net/images/common/back.gif

因為我的A和B是變數, 不能直接用那公式.......

mood 發表於 11-6-25 15:02

因為我的A和B是變數, 不能直接用那公式.......
OHYAOH 發表於 11-6-21 09:50 PM http://www.coco-in.net/images/common/back.gif

應該說大大的A, B & C是"陣列"變數,

condition in IF, WHILE, FOR statements has to be Numeric or Boolean type.
You can not use array here, please use [] (array subscript operator) to access array elements
以上是講述在IF, WHILE, FOR 判斷式需使用數字或布林格式做判斷,不能用"陣列"~~

所以後面大大,if ( A[ i ] > B[ i ] ) 是可以用的~~
A[ i ] or B[ i ] 是傳回一個值而非一個陣列~~

但...Buy = A > B 卻可以用喔!!
頁: [1]
查看完整版本: 請問以下的句子如何轉成AmiBroker的語法