![]() |
總頁數 (2): [1] 2 » 在這個頁面顯示本主題全部的 16 個文章 |
奇狐社區論壇 (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=21700)
收盤價在排序中的位置標註紅色
有N個(N>100)數據列 當中包含一個收盤價 經過排序後 使用DRAWTEXTEX做排序後的列表 並以每10行做換行
N:=131;
DTC:=DATACOUNT;
CC:=C;
VARIABLE:SLN[N]=0, SLNPOS[N]=0, SS[N]='', QQ[N]='';//SS=變數名稱
ss[1]:='收盤:'; ss[2]:='AW01: '; ss[3]:='AW02: '; ss[4]:='AW03: '; ss[5]:='AW04: '; ss[6]:='AW05: ';
ss[7]:='BW01: '; ...... ss[131]:='ZW05: ';
tmp:=SORT(SLN,1,1,N);
//===上述 列表 沒問題
FOR i=1 TO N DO BEGIN
SLNPOS[i]:=SLN[i];
tmp:=SORTPOS(SLNPOS,1,1,N);
END;
DRAWTEXTEX(1,0,5,0,SS[SLNPOS[1]]+NUMTOSTR(SLN[1],XS2)),Coloryellow;
請協助
1) 如何用不同顏色(例如 紅色)標示出 收盤價 的數值和收盤價的變數名稱
2) 不知哪錯了 對應的變數名稱全亂套了
謝謝您
__________________
至誠能勝天下至偽
至拙能勝天下至巧
前述 SORTPOS書寫方式 經過DRAWTEXTEX列出後 還會出現變數名稱相同的現象 照說 變數名稱為唯一 不該有任何重複
__________________
至誠能勝天下至偽
至拙能勝天下至巧
花了點時間進行比對
另外使用130條均線(參數從1到130並放大5倍 如 NX:=5; A1:=MA(C,1*NX),PRECISION3; A2:=MA(C,2*NX),PRECISION3; )做列表
經過逐一比對 變數名稱全部都有出現且沒重複 因此 前面SORTPOS會出現變數名稱重複"估計"主要是因為不同的變數出現相同的數值所導致
但是 變數名稱和他所對應的數值則錯的很厲害 也許是我在SORTPOS甚麼地方有錯誤 還請您指正
__________________
至誠能勝天下至偽
至拙能勝天下至巧
引用:
最初由 peter109 發表
前述 SORTPOS書寫方式 經過DRAWTEXTEX列出後 還會出現變數名稱相同的現象 照說 變數名稱為唯一 不該有任何重複
__________________
至誠能勝天下至偽
至拙能勝天下至巧
將
FOR i=1 TO N DO BEGIN
SLNPOS[i]:=SLN[i];
tmp:=SORTPOS(SLNPOS,1,1,N);
END;
DRAWTEXTEX(1,0,5,0,SS[SLNPOS[1]]+NUMTOSTR(SLN[1],XS2)),Coloryellow;
改這樣試試
FOR i=1 TO N DO BEGIN
SLNPOS[i]:=SLN[i];
END;
tmp:=SORTPOS(SLNPOS,1,1,N);
DRAWTEXTEX(1,0,5,0,SS[SLNPOS[1]]+NUMTOSTR(SLN[SLNPOS[1]],XS2)),Coloryellow;
已經試過 變數名稱依然無法和相對應數值在同一位置
__________________
至誠能勝天下至偽
至拙能勝天下至巧
引用:
最初由 peter109 發表
已經試過 變數名稱依然無法和相對應數值在同一位置
原碼:
N:=6; XS2:=1; DTC:=DATACOUNT; CC:=C; VARIABLE:SLN[N]=0, SLNPOS[N]=0, SS[N]='', QQ[N]='';//SS=變數名稱 ss[1]:='收盤: '; ss[2]:='AW01: '; ss[3]:='AW02: '; ss[4]:='AW03: '; ss[5]:='AW04: '; ss[6]:='AW05: '; SLN[1]:=666;SLN[2]:=222; SLN[3]:=111;SLN[4]:=333; SLN[5]:=999; SLN[6]:=777; // tmp:=SORT(SLN,1,1,N); <== 請刪掉這行 FOR i=1 TO N DO SLNPOS[i]:=SLN[i]; tmp:=SORTPOS(SLNPOS,1,1,N); DRAWTEXTEX(1,0,5,0,SS[SLNPOS[1]]+NUMTOSTR(SLN[SLNPOS[1]],XS2)),Coloryellow; DRAWTEXTEX(1,0,5,20,SS[SLNPOS[2]]+NUMTOSTR(SLN[SLNPOS[2]],XS2)),Coloryellow; DRAWTEXTEX(1,0,5,40,SS[SLNPOS[3]]+NUMTOSTR(SLN[SLNPOS[3]],XS2)),Coloryellow; DRAWTEXTEX(1,0,5,60,SS[SLNPOS[4]]+NUMTOSTR(SLN[SLNPOS[4]],XS2)),Coloryellow; DRAWTEXTEX(1,0,5,80,SS[SLNPOS[5]]+NUMTOSTR(SLN[SLNPOS[5]],XS2)),Coloryellow; DRAWTEXTEX(1,0,5,100,SS[SLNPOS[6]]+NUMTOSTR(SLN[SLNPOS[6]],XS2)),Coloryellow;
引用:
最初由 cgjj 發表
tmp:=SORT(SLN,1,1,N); 此行是多餘的
精簡範例
原碼:
N:=6; XS2:=1; DTC:=DATACOUNT; CC:=C; VARIABLE:SLN[N]=0, SLNPOS[N]=0, SS[N]='', QQ[N]='';//SS=變數名稱 ss[1]:='收盤: '; ss[2]:='AW01: '; ss[3]:='AW02: '; ss[4]:='AW03: '; ss[5]:='AW04: '; ss[6]:='AW05: '; SLN[1]:=666;SLN[2]:=222; SLN[3]:=111;SLN[4]:=333; SLN[5]:=999; SLN[6]:=777; // tmp:=SORT(SLN,1,1,N); <== 請刪掉這行 FOR i=1 TO N DO SLNPOS[i]:=SLN[i]; tmp:=SORTPOS(SLNPOS,1,1,N); DRAWTEXTEX(1,0,5,0,SS[SLNPOS[1]]+NUMTOSTR(SLN[SLNPOS[1]],XS2)),Coloryellow; DRAWTEXTEX(1,0,5,20,SS[SLNPOS[2]]+NUMTOSTR(SLN[SLNPOS[2]],XS2)),Coloryellow; DRAWTEXTEX(1,0,5,40,SS[SLNPOS[3]]+NUMTOSTR(SLN[SLNPOS[3]],XS2)),Coloryellow; DRAWTEXTEX(1,0,5,60,SS[SLNPOS[4]]+NUMTOSTR(SLN[SLNPOS[4]],XS2)),Coloryellow; DRAWTEXTEX(1,0,5,80,SS[SLNPOS[5]]+NUMTOSTR(SLN[SLNPOS[5]],XS2)),Coloryellow; DRAWTEXTEX(1,0,5,100,SS[SLNPOS[6]]+NUMTOSTR(SLN[SLNPOS[6]],XS2)),Coloryellow;
__________________
至誠能勝天下至偽
至拙能勝天下至巧
引用:
最初由 peter109 發表
收到 謝謝您
請問 如何將收盤價的數值和其變數標註為紅色
目前 我是使用
CCP:IF(SLN[1]=CC[DTC],1,0); CCP:=IF(SLN[2]=CC[DTC],2,CCP); .....
也許您有比較好的解決方案
您辛苦了 謝謝您
__________________
至誠能勝天下至偽
至拙能勝天下至巧
引用:
最初由 peter109 發表
您辛苦了 謝謝您
還是忍不住想問
若使用 SORT(SLN,0,1,N)
經過排序後的SLN 是否可以直接和CC比對
若 SLN[i]=CC[DTC] 那麼CC在排序後的位置就是在第 i 個編號
__________________
至誠能勝天下至偽
至拙能勝天下至巧
引用:
最初由 peter109 發表
還是忍不住想問
若使用 SORT(SLN,0,1,N)
經過排序後的SLN 是否可以直接和CC比對
若 SLN[i]=CC[DTC] 那麼CC在排序後的位置就是在第 i 個編號
引用:
最初由 cgjj 發表
SORT(SLN,0,1,N) 跑完後
SLN 中的值已經被調換次序(案排列優先次序)
排序後 SLN[1] 存放的是SLN中最小的數
跑這段可體驗一下
CC[1]:=30; CC[2]:=20; CC[3]:=10; CC[4]:=40; CC[5]:=50;
x:=SORT(CC,0,1,5); PP:CC[1];
把 SORT 換成 SORTPOS
則 SLN[1] 得到的是,SLN 中最小的數,其原來在數列中的位置
跑這段可體驗一下
CC[1]:=30; CC[2]:=20; CC[3]:=10; CC[4]:=40; CC[5]:=50;
x:=SORTPOS(CC,0,1,5); PP:CC[1];
__________________
至誠能勝天下至偽
至拙能勝天下至巧
引用:
最初由 peter109 發表
您說的我懂
但我不懂的是
經過SORT(不是SORTPOS)的SLN數列 SLN[1] SLN[2]...SLN[N]為何不能和CC[DTC]做等值比較 並因此取得該 i 值也就是CC在SLN排序後的位置 i
全部時間均為台灣時間, 現在時間為01:38 | 總頁數 (2): [1] 2 » 在這個頁面顯示本主題全部的 16 個文章 |
Powered by: vBulletin Version 2.3.0 - Copyright©2000-, Jelsoft Enterprises Limited.
簡愛洋行 製作 Copyright 2003-. All Rights Reserved.