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

奇狐社區論壇 (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=18522)


由 Markchu7 在 2014-05-13 20:23 發表:

[問題]排序後求值

CK:=DATE<>REF(DATE,1);
SP:=BARSLAST(CK)+1;
NN:=IF(DATATYPE>5,21,IF(SP>21,21,SP));
NN為天數,請協助:
1.日期排序值.規則為:當天取值=1,前1天取值=2,前2天取值=3,...,前20天取值=21!
2.收盤價排序值.最高價取值=1,次高價取值=2,第三高價取值=3....!
假設最高價有相同三天,次高價有相同四天;則
規則1:最高價取值=(1+2+3)/3=2,次高價取值=(4+5+6+7)/4=5.5,,...依此類推,得到當日之收盤價排序值!
規則2:最高價全部取值=1,次高價全部取值=4,,...依此類推,得到當日之收盤價排序值!
採用較節省資源之寫法!
3.順位值=SUM((日期排序值-收盤價排序值)*(日期排序值-收盤價排序值),NN);
請協助!感謝!


由 cgjj 在 2014-05-14 09:20 發表:

回覆: [問題]排序後求值

引用:
最初由 Markchu7 發表
CK:=DATE<>REF(DATE,1);
SP:=BARSLAST(CK)+1;
NN:=IF(DATATYPE>5,21,IF(SP>21,21,SP));
NN為天數,請協助:
1.日期排序值.規則為:當天取值=1,前1天取值=2,前2天取值=3,...,前20天取值=21!
2.收盤價排序值.最高價取值=1,次高價取值=2,第三高價取值=3....!
假設最高價有相同三天,次高價有相同四天;則
規則1:最高價取值=(1+2+3)/3=2,次高價取值=(4+5+6+7)/4=5.5,,...依此類推,得到當日之收盤價排序值!
規則2:最高價全部取值=1,次高價全部取值=4,,...依此類推,得到當日之收盤價排序值!
採用較節省資源之寫法!
3.順位值=SUM((日期排序值-收盤價排序值)*(日期排序值-收盤價排序值),NN);
請協助!感謝!



規則1 規則2 兩者取用何者?

規則1 邏輯本身
與 最高價取值=1,次高價取值=2,第三高價取值=3 間有矛盾
當 最高價有相同三天,次高價有相同四天, 第三高價僅一天時
將 最高價取值2, 次高價取5
那麼 第三高價 取值3嗎?
會形成 5>3


由 Markchu7 在 2014-05-14 10:29 發表:

版主誤會了!
如果第三高價只有1天應該=8,因為最高價跟次高價加起來共有7天,1~7已經用掉了,如果有相同的2天則=(8+9)/2=8.5!
感謝協助!


由 cgjj 在 2014-05-14 11:29 發表:

引用:
最初由 Markchu7 發表
版主誤會了!
如果第三高價只有1天應該=8,因為最高價跟次高價加起來共有7天,1~7已經用掉了,如果有相同的2天則=(8+9)/2=8.5!
感謝協助!




注意: 此公式計算非常繁重

原碼:

CC
:=C順位值:C*0;
for 
i=NN to datacount do begin
  SKN
:=CCj:=i-NN+1;
  
x:=SORTPOS(SKN,0,j,i); SS:=0;
  for 
k=i downto j do begin
    SS
:=SS+POW((i-SKN[k]+1)-(i-k+1),2);
  
end;
  
順位值[i]:=SS;
end;


由 Markchu7 在 2014-05-14 11:37 發表:

感謝協助!


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


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

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