到奇狐勝券首頁 奇狐社區論壇 購買奇狐勝券 試用奇狐勝券
 
論壇首頁 你可以在這裡編輯你的資料,查看短訊,訂閱主題和論壇參數等等 免費會員註冊 會員列表 論壇幫助 論壇日曆 論壇搜索 加入我的最愛 登出論壇  
奇狐社區論壇 : Powered by vBulletin version 2.3.0 奇狐社區論壇 > 指標公式 > 問題交流 > 請問:如何用if..then運算式取得period變數?
  上一主題   下一主題
作者
主題 發表新主題    回覆主題
logahsu
資深會員

註冊日期: Jul 2008
來  自:
文章數量: 112

請問:如何用if..then運算式取得period變數?

小弟從論壇總版主文章範例中得知,若要用單行運算式,可以用以下的方式取得,這部分沒有問題,我的問題在於:

若DATAPERIOD=1 then MA(C,5)
若DATAPERIOD=2 then MA(C,10)
若DATAPERIOD=3 then MA(C,15)
.......
若DATAPERIOD=12 then MA(C,50)

end;
end;
end;
.........(共12個end

目前我都是一個、一個設定,也是可以達到目的,但是這絕對不是經濟的做法,想請問各位,若是用if.....then或 for i=0 to 11迴圈,不知道要怎麼寫?寫了半天都會當機,請教各位前輩。

----------------------------------------------------------------(底下是總版主教學if.....then的文章,我實在寫不出正確的語法)


【範例1】單行運算式

若現週期為5分鐘取最高價,若為其它週期則取收盤價
cc:close;
IF DATAPERIOD=2 THEN cc:=high;

若現市場為臺灣期貨則取收盤價3日的均值,若為其它市場則取收盤價6日的均值
均:close;
IF MARKETLABEL='TF' THEN 均:=ma(均, 3); ELSE 均:=ma(均, 6);

__________________
--------------------------------------------------------
奇狐好 奇狐棒 奇狐呱呱叫

向版主報告此篇 | 查IP位址
Old Post 2009-02-09 17:43
logahsu 現在離線 點選這裡查看 logahsu 的個人資料 點選這裡給 logahsu 傳送一條短訊 查找更多關於 logahsu 的文章 增加 logahsu 至你的好友列表 編輯/刪除訊息 引用回覆
peter109
資深會員

註冊日期: Dec 2004
來  自: Taipei
文章數量: 1893

一般公式內如果只有少數的條件句 或許可用迴圈
但 經驗法則是
單行的運行速度比迴圈速度快

http://www.chiefox.com.tw/bbs/forum....php?forumid=46
到這邊看看 或許對您有幫助

__________________
至誠能勝天下至偽
至拙能勝天下至巧

向版主報告此篇 | 查IP位址
Old Post 2009-02-09 20:58
peter109 現在離線 點選這裡查看 peter109 的個人資料 點選這裡給 peter109 傳送一條短訊 查找更多關於 peter109 的文章 增加 peter109 至你的好友列表 編輯/刪除訊息 引用回覆
logahsu
資深會員

註冊日期: Jul 2008
來  自:
文章數量: 112

引用:
最初由 peter109 發表
一般公式內如果只有少數的條件句 或許可用迴圈
但 經驗法則是
單行的運行速度比迴圈速度快

http://59.124.59.118/bbs/forumdisplay.php?forumid=46
到這邊看看 或許對您有幫助



Peter大:

謝謝指導。我的想法是,如果每一個DATAPERIOD都要設定不同的條件句,這當中又有分:期指tf或tw、to,還有加權指數100,如此一來,每個MARKETLABEL的DATAPERIOD都要設定參數時,是不是要設三、四十次?

例如,TF就有秒∼多秒線,至少13個 詢問式條件句
TW、TO:上市及上櫃 (26個)
100 加權 (13個)
會有這種疑惑,是因為我們設定stickline的長度時,往往因為周期、MARKETLABEL的不同,出現柱狀體有時會很長,有時會很短的現象,尤其是一個附圖內必須有兩項指標參數運算結果要用柱體表現時,就會如此,尤其是指數型與現貨股票之間,差距更大。(如果單一附圖裡中有表達一項運算式的結果就沒有這些問題,各周期都適用。)

或許我有某些地方沒弄清楚,總之,這是目前我所碰上的難題。不知是不是還有什麼更好、更精簡、更不吃記憶體的程式表達方式,望請高手指教。能不能用Array的方式表達?我不太懂。

__________________
--------------------------------------------------------
奇狐好 奇狐棒 奇狐呱呱叫

最後由 logahsu 在 2009-02-09 22:13 編輯 向版主報告此篇 | 查IP位址
Old Post 2009-02-09 22:05
logahsu 現在離線 點選這裡查看 logahsu 的個人資料 點選這裡給 logahsu 傳送一條短訊 查找更多關於 logahsu 的文章 增加 logahsu 至你的好友列表 編輯/刪除訊息 引用回覆
cgjj
總版主

註冊日期: Oct 2003
來  自:
文章數量: 18125

回覆: 請問:如何用if..then運算式取得period變數?

您可用類似這樣的技巧來簡化

TT[1]:=5;
TT[2]:=10;
TT[3]:=15;
.........
MM: MA(C,TT[DATAPERIOD]);

向版主報告此篇 | 查IP位址
Old Post 2009-02-10 08:56
cgjj 現在離線 點選這裡查看 cgjj 的個人資料 點選這裡給 cgjj 傳送一條短訊 查找更多關於 cgjj 的文章 增加 cgjj 至你的好友列表 編輯/刪除訊息 引用回覆
logahsu
資深會員

註冊日期: Jul 2008
來  自:
文章數量: 112

回覆: 回覆: 請問:如何用if..then運算式取得period變數?

引用:
最初由 cgjj 發表
您可用類似這樣的技巧來簡化

TT[1]:=5;
TT[2]:=10;
TT[3]:=15;
.........
MM: MA(C,TT[DATAPERIOD]);



謝謝總版主賜教,我先收下,收盤後再試作。感激...

__________________
--------------------------------------------------------
奇狐好 奇狐棒 奇狐呱呱叫

向版主報告此篇 | 查IP位址
Old Post 2009-02-10 09:28
logahsu 現在離線 點選這裡查看 logahsu 的個人資料 點選這裡給 logahsu 傳送一條短訊 查找更多關於 logahsu 的文章 增加 logahsu 至你的好友列表 編輯/刪除訊息 引用回覆
全部時間均為台灣時間, 現在時間為22:16 發表新主題    回覆主題
  上一主題   下一主題
顯示可列印版本 | 訂閱此主題

論壇跳轉:
主題評分:

論壇規定:
你不可以發表新主題
你不可以回覆文章
你不可以上傳附件
你不可以編輯自己的文章
HTML語法禁止
vB 語法核准
表情符號核准
貼圖語法[IMG]核准
 

本站所有內容未經作者授權禁止轉貼節錄, 發表言論僅供參考勿作為投資決策依據。瀏覽本站請使用 IE 5.5 以上版本, 最佳瀏覽解析度 1024 x 768 全彩。

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

簡愛洋行 製作 Copyright 2003-. All Rights Reserved.  聯絡我們