奇狐社區論壇
在這個頁面顯示本主題全部的 11 個文章

奇狐社區論壇 (http://www.chiefox.com.tw/bbs/index.php)
- 問題交流 (http://www.chiefox.com.tw/bbs/forumdisplay.php?forumid=28)
-- [問題] 錯誤訊息 至少一個公式輸出表達式 (http://www.chiefox.com.tw/bbs/showthread.php?threadid=12887)


由 lilikikitw 在 2010-01-11 23:58 發表:

[問題] 錯誤訊息 至少一個公式輸出表達式

LongPrice: if(close>open,close,Open);

請問我寫這一行公式,但是有錯誤訊息
需要至少一個公式輸出表達式
請問這樣不會有輸出嗎?
還請高手指導一下!!


由 cgjj 在 2010-01-12 00:41 發表:

回覆: [問題] 錯誤訊息 至少一個公式輸出表達式

引用:
最初由 lilikikitw 發表
LongPrice: if(close>open,close,Open);

請問我寫這一行公式,但是有錯誤訊息
需要至少一個公式輸出表達式
請問這樣不會有輸出嗎?
還請高手指導一下!!



單跑這一行是沒問題的唷
還有其它原碼在同一公式內嗎?


由 lilikikitw 在 2010-01-12 08:49 發表:

回覆: 回覆: [問題] 錯誤訊息 至少一個公式輸出表達式

引用:
最初由 cgjj 發表
單跑這一行是沒問題的唷
還有其它原碼在同一公式內嗎?



謝謝總版主指導.
貼錯程式了:-p

應該是這一個
LongPrice:if(ref(LongPrice,1)>close,close,Open);
程式只有一行
編輯是成功的,但是放到圖上卻沒有指標跑出來.
不知道要如何修改才符合邏輯??


由 cgjj 在 2010-01-12 08:57 發表:

回覆: 回覆: 回覆: [問題] 錯誤訊息 至少一個公式輸出表達式

引用:
最初由 lilikikitw 發表
謝謝總版主指導.
貼錯程式了:-p

應該是這一個
LongPrice:if(ref(LongPrice,1)>close,close,Open);
程式只有一行
編輯是成功的,但是放到圖上卻沒有指標跑出來.
不知道要如何修改才符合邏輯??



LongPrice 您沒有給它初始值唷
當然跑不出結果呀

或許是撰寫觀念上的問題
看看這的討論解說, 會讓您更明瞭
http://www.chiefox.com.tw/bbs/showt...43327#post43327


由 lilikikitw 在 2010-01-12 15:17 發表:

回覆: 回覆: 回覆: 回覆: [問題] 錯誤訊息 至少一個公式輸出表達式

引用:
最初由 cgjj 發表
LongPrice 您沒有給它初始值唷
當然跑不出結果呀

或許是撰寫觀念上的問題
看看這的討論解說, 會讓您更明瞭
http://www.chiefox.com.tw/bbs/showt...43327#post43327




LongPrice:=8300;
LongPrice:if(ref(LongPrice,1)>close,ref(LongPrice,1)+10 ,ref(LongPrice,1)-10);
謝謝總版主,加這一行給初始值,就可以跑了.
可是這樣LongPrice就被8300 的值取代.出來的結果就不對了.
有辦法讓我取得前一根LongPrice的數值 (也就是LongPrice[1]的值) 來當作if 的cond ,和後續的運算嗎?


由 lilikikitw 在 2010-01-12 15:19 發表:

回覆: 回覆: 回覆: 回覆: 回覆: [問題] 錯誤訊息 至少一個公式輸出表達式

引用:
最初由 lilikikitw 發表
LongPrice:=8300;
LongPrice:if(ref(LongPrice,1)>close,ref(LongPrice,1)+10 ,ref(LongPrice,1)-10);
謝謝總版主,加這一行給初始值,就可以跑了.
可是這樣LongPrice就被8300 的值取代.出來的結果就不對了.
有辦法讓我取得前一根LongPrice的數值 (也就是LongPrice[1]的值) 來當作if 的cond ,和後續的運算嗎?



應該寫這樣比較合理.初始值會把後續的運算蓋掉,而無法取得前一週期的LongPrice數值
LongPrice:=open;
LongPrice:if(ref(LongPrice,1)>close,ref(LongPrice,1)+10 ,ref(LongPrice,1)-10);


由 lilikikitw 在 2010-01-13 23:44 發表:

回覆: 回覆: 回覆: 回覆: 回覆: 回覆: [問題] 錯誤訊息 至少一個公式輸出表達式

引用:
最初由 lilikikitw 發表
應該寫這樣比較合理.初始值會把後續的運算蓋掉,而無法取得前一週期的LongPrice數值
LongPrice:=open;
LongPrice:if(ref(LongPrice,1)>close,ref(LongPrice,1)+10 ,ref(LongPrice,1)-10);



想了一天還是沒解出來.可以幫幫我嗎?


由 cgjj 在 2010-01-14 01:44 發表:

回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: [問題] 錯誤訊息 至少一個公式輸出表達式

引用:
最初由 lilikikitw 發表
想了一天還是沒解出來.可以幫幫我嗎?



麻煩把您想算的內容寫出來
僅看算式不易猜出您真正想要的最終結果


由 lilikikitw 在 2010-01-14 10:38 發表:

回覆: 回覆: 回覆: 回覆: 回覆: [問題] 錯誤訊息 至少一個公式輸出表達式

引用:
最初由 lilikikitw 發表
LongPrice:=8300;
LongPrice:if(ref(LongPrice,1)>close,ref(LongPrice,1)+10 ,ref(LongPrice,1)-10);
謝謝總版主,加這一行給初始值,就可以跑了.
可是這樣LongPrice就被8300 的值取代.出來的結果就不對了.
有辦法讓我取得前一根LongPrice的數值 (也就是LongPrice[1]的值) 來當作if 的cond ,和後續的運算嗎?



我現在的主要問題是初始值會覆蓋我計算的結果.
也就是有自定變數的遞迴計算不會寫.

我先假設要寫的程式邏輯為,
1. 當價格持續向上時,以前一根的目標價多加100點當這一根的目標價.
例如:12/21 close 7752 LongPrice=7752+100=7852
12/22 close 7829 LongPrice=7802+100=7952
12/23 close 7866 LongPrice=7952+100=8052

程式寫成以下邏輯
LongPrice:=open;
LongPrice:ref(LongPrice,1)+100

算出來的結果為:
12/21 close 7752 LongPrice=7752+100=7852
12/22 close 7829 LongPrice=7829+100=7929
12/23 close 7866 LongPrice=7952+100=7966
結果LongPrice 被初始設定成每一根的開盤價了,而不是我前一根算的目標價.

不知道這種有自定變數的遞迴計算要如何實做?


由 cgjj 在 2010-01-14 13:04 發表:

回覆: 回覆: 回覆: 回覆: 回覆: 回覆: [問題] 錯誤訊息 至少一個公式輸出表達式

引用:
最初由 lilikikitw 發表
我現在的主要問題是初始值會覆蓋我計算的結果.
也就是有自定變數的遞迴計算不會寫.

我先假設要寫的程式邏輯為,
1. 當價格持續向上時,以前一根的目標價多加100點當這一根的目標價.
例如:12/21 close 7752 LongPrice=7752+100=7852
12/22 close 7829 LongPrice=7802+100=7952
12/23 close 7866 LongPrice=7952+100=8052

程式寫成以下邏輯
LongPrice:=open;
LongPrice:ref(LongPrice,1)+100

算出來的結果為:
12/21 close 7752 LongPrice=7752+100=7852
12/22 close 7829 LongPrice=7829+100=7929
12/23 close 7866 LongPrice=7952+100=7966
結果LongPrice 被初始設定成每一根的開盤價了,而不是我前一根算的目標價.

不知道這種有自定變數的遞迴計算要如何實做?



以前面 +10 和 -10 的狀況來示範

原碼:

CC
:=close;
LongPrice:open;
for 
i=lbound(LongPrice)+1 to datacount do begin
  
if LongPrice[i-1]<CC[ithen begin
    LongPrice
[i]:=LongPrice[i-1]+10;
  
end else begin
    LongPrice
[i]:=LongPrice[i-1]-10;
  
end;
end;


由 lilikikitw 在 2010-01-14 13:34 發表:

喔了解.所以在 loop裡面再實做一次.怎麼沒想到這個好方法.

多謝總版主說明.


全部時間均為台灣時間, 現在時間為20:52
在這個頁面顯示本主題全部的 11 個文章


Powered by: vBulletin Version 2.3.0 - Copyright©2000-, Jelsoft Enterprises Limited.

簡愛洋行 製作 Copyright 2003-. All Rights Reserved.