 |
peter109
資深會員
註冊日期: Dec 2004
來 自: Taipei
文章數量: 1893 |
收盤價在排序中的位置標註紅色
有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) 不知哪錯了 對應的變數名稱全亂套了
謝謝您
__________________
至誠能勝天下至偽
至拙能勝天下至巧
|
最後由 peter109 在 2018-12-29 11:47 編輯 |
向版主報告此篇 |  |
|
2018-12-29 11:08 |
|
|
|  |
 |
peter109
資深會員
註冊日期: Dec 2004
來 自: Taipei
文章數量: 1893 |
前述 SORTPOS書寫方式 經過DRAWTEXTEX列出後 還會出現變數名稱相同的現象 照說 變數名稱為唯一 不該有任何重複
peter109 附帶上了此圖片:
__________________
至誠能勝天下至偽
至拙能勝天下至巧
|
|
向版主報告此篇 |  |
|
2018-12-29 14:01 |
|
|
|  |
 |
peter109
資深會員
註冊日期: Dec 2004
來 自: Taipei
文章數量: 1893 |
花了點時間進行比對
另外使用130條均線(參數從1到130並放大5倍 如 NX:=5; A1:=MA(C,1*NX),PRECISION3; A2:=MA(C,2*NX),PRECISION3; )做列表
經過逐一比對 變數名稱全部都有出現且沒重複 因此 前面SORTPOS會出現變數名稱重複"估計"主要是因為不同的變數出現相同的數值所導致
但是 變數名稱和他所對應的數值則錯的很厲害 也許是我在SORTPOS甚麼地方有錯誤 還請您指正
peter109 附帶上了此圖片:
__________________
至誠能勝天下至偽
至拙能勝天下至巧
|
最後由 peter109 在 2018-12-29 18:18 編輯 |
向版主報告此篇 |  |
|
2018-12-29 18:06 |
|
|
|  |
 |
peter109
資深會員
註冊日期: Dec 2004
來 自: Taipei
文章數量: 1893 |
引用: 最初由 peter109 發表
前述 SORTPOS書寫方式 經過DRAWTEXTEX列出後 還會出現變數名稱相同的現象 照說 變數名稱為唯一 不該有任何重複
拍謝 剛發現 這部分是因為我的疏忽所造成
變數名稱 全部都有出現
__________________
至誠能勝天下至偽
至拙能勝天下至巧
|
|
向版主報告此篇 |  |
|
2018-12-31 16:00 |
|
|
|  |
 |
cgjj
總版主

註冊日期: Oct 2003
來 自:
文章數量: 18119 |
將
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;
|
|
向版主報告此篇 |  |
|
2019-01-02 08:58 |
|
|
|  |
 |
peter109
資深會員
註冊日期: Dec 2004
來 自: Taipei
文章數量: 1893 |
已經試過 變數名稱依然無法和相對應數值在同一位置
__________________
至誠能勝天下至偽
至拙能勝天下至巧
|
|
向版主報告此篇 |  |
|
2019-01-02 12:17 |
|
|
|  |
 |
cgjj
總版主

註冊日期: Oct 2003
來 自:
文章數量: 18119 |
引用: 最初由 peter109 發表
已經試過 變數名稱依然無法和相對應數值在同一位置
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;
|
|
向版主報告此篇 |  |
|
2019-01-02 12:45 |
|
|
|  |
 |
peter109
資深會員
註冊日期: Dec 2004
來 自: Taipei
文章數量: 1893 |
引用: 最初由 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;
收到 謝謝您
請問 如何將收盤價的數值和其變數標註為紅色
目前 我是使用
CCP:IF(SLN[1]=CC[DTC],1,0); CCP:=IF(SLN[2]=CC[DTC],2,CCP); .....
也許您有比較好的解決方案
__________________
至誠能勝天下至偽
至拙能勝天下至巧
|
最後由 peter109 在 2019-01-02 17:39 編輯 |
向版主報告此篇 |  |
|
2019-01-02 17:35 |
|
|
|  |
 |
cgjj
總版主

註冊日期: Oct 2003
來 自:
文章數量: 18119 |
引用: 最初由 peter109 發表
收到 謝謝您
請問 如何將收盤價的數值和其變數標註為紅色
目前 我是使用
CCP:IF(SLN[1]=CC[DTC],1,0); CCP:=IF(SLN[2]=CC[DTC],2,CCP); .....
也許您有比較好的解決方案
DRAWTEXTEX(SLNPOS[1]=1,0,5,0,SS[SLNPOS[1]]+NUMTOSTR(SLN[SLNPOS[1]],XS2)),Colorred;
DRAWTEXTEX(SLNPOS[1]>1,0,5,0,SS[SLNPOS[1]]+NUMTOSTR(SLN[SLNPOS[1]],XS2)),Coloryellow;
DRAWTEXTEX(SLNPOS[2]=1,0,5,20,SS[SLNPOS[2]]+NUMTOSTR(SLN[SLNPOS[2]],XS2)),Colorred;
DRAWTEXTEX(SLNPOS[2]>1,0,5,20,SS[SLNPOS[2]]+NUMTOSTR(SLN[SLNPOS[2]],XS2)),Coloryellow;
DRAWTEXTEX(SLNPOS[3]=1,0,5,40,SS[SLNPOS[3]]+NUMTOSTR(SLN[SLNPOS[3]],XS2)),Colorred;
DRAWTEXTEX(SLNPOS[3]>1,0,5,40,SS[SLNPOS[3]]+NUMTOSTR(SLN[SLNPOS[3]],XS2)),Coloryellow;
DRAWTEXTEX(SLNPOS[4]=1,0,5,60,SS[SLNPOS[4]]+NUMTOSTR(SLN[SLNPOS[4]],XS2)),Colorred;
DRAWTEXTEX(SLNPOS[4]>1,0,5,60,SS[SLNPOS[4]]+NUMTOSTR(SLN[SLNPOS[4]],XS2)),Coloryellow;
........ 略 .........
|
|
向版主報告此篇 |  |
|
2019-01-02 21:05 |
|
|
|  |
 |
peter109
資深會員
註冊日期: Dec 2004
來 自: Taipei
文章數量: 1893 |
您辛苦了 謝謝您
__________________
至誠能勝天下至偽
至拙能勝天下至巧
|
最後由 peter109 在 2019-01-03 08:18 編輯 |
向版主報告此篇 |  |
|
2019-01-03 07:01 |
|
|
|  |
 |
peter109
資深會員
註冊日期: Dec 2004
來 自: Taipei
文章數量: 1893 |
還是忍不住想問
若使用 SORT(SLN,0,1,N)
經過排序後的SLN 是否可以直接和CC比對
若 SLN[i]=CC[DTC] 那麼CC在排序後的位置就是在第 i 個編號
__________________
至誠能勝天下至偽
至拙能勝天下至巧
|
|
向版主報告此篇 |  |
|
2019-01-05 16:00 |
|
|
|  |
 |
cgjj
總版主

註冊日期: Oct 2003
來 自:
文章數量: 18119 |
引用: 最初由 peter109 發表
還是忍不住想問
若使用 SORT(SLN,0,1,N)
經過排序後的SLN 是否可以直接和CC比對
若 SLN[i]=CC[DTC] 那麼CC在排序後的位置就是在第 i 個編號
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];
|
|
向版主報告此篇 |  |
|
2019-01-06 11:02 |
|
|
|  |
 |
peter109
資深會員
註冊日期: Dec 2004
來 自: Taipei
文章數量: 1893 |
引用: 最初由 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];
您說的我懂
但我不懂的是
經過SORT(不是SORTPOS)的SLN數列 SLN[1] SLN[2]...SLN[N]為何不能和CC[DTC]做等值比較 並因此取得該 i 值也就是CC在SLN排序後的位置 i
__________________
至誠能勝天下至偽
至拙能勝天下至巧
|
|
向版主報告此篇 |  |
|
2019-01-06 16:26 |
|
|
|  |
 |
cgjj
總版主

註冊日期: Oct 2003
來 自:
文章數量: 18119 |
引用: 最初由 peter109 發表
您說的我懂
但我不懂的是
經過SORT(不是SORTPOS)的SLN數列 SLN[1] SLN[2]...SLN[N]為何不能和CC[DTC]做等值比較 並因此取得該 i 值也就是CC在SLN排序後的位置 i
用 SORTPOS 可以對準原來發生的變數名稱(SS)是哪一個
若單純 SORT 搭配 SLN[i]=CC[DTC] 就會無法對準
抓到的可能不是原來該位置相對應的那個變數名稱(SS)
因為可能有好幾個位置,擁有相同的價格(SLN同值)
我前面給的例子,並沒有考量到多個等價的情況,只考量到相等位置的情況
分色顯示在多個等價時,是有可能會出現問題的。
也沒注意到您是以 CC[DTC] 當基準,而非用 SLN[1]當基準
需要改成以下方式,應該才較合乎您的需求:
DRAWTEXTEX(SLN[SLNPOS[1]]=CC[DTC],0,5,0,SS[SLNPOS[1]]+NUMTOSTR(SLN[SLNPOS[1]],XS2)),Colorred;
DRAWTEXTEX(SLN[SLNPOS[1]]<>CC[DTC],0,5,0,SS[SLNPOS[1]]+NUMTOSTR(SLN[SLNPOS[1]],XS2)),Coloryellow;
DRAWTEXTEX(SLN[SLNPOS[2]]=CC[DTC],0,5,20,SS[SLNPOS[2]]+NUMTOSTR(SLN[SLNPOS[2]],XS2)),Colorred;
DRAWTEXTEX(SLN[SLNPOS[2]]<>CC[DTC],0,5,20,SS[SLNPOS[2]]+NUMTOSTR(SLN[SLNPOS[2]],XS2)),Coloryellow;
DRAWTEXTEX(SLN[SLNPOS[3]]=CC[DTC],0,5,40,SS[SLNPOS[3]]+NUMTOSTR(SLN[SLNPOS[3]],XS2)),Colorred;
DRAWTEXTEX(SLN[SLNPOS[3]]<>CC[DTC],0,5,40,SS[SLNPOS[3]]+NUMTOSTR(SLN[SLNPOS[3]],XS2)),Coloryellow;
...........
|
|
向版主報告此篇 |  |
|
2019-01-06 19:16 |
|
|
|  |
本站所有內容未經作者授權禁止轉貼節錄, 發表言論僅供參考勿作為投資決策依據。瀏覽本站請使用 IE 5.5 以上版本, 最佳瀏覽解析度 1024 x 768 全彩。
|
Powered by: vBulletin Version 2.3.0 - Copyright©2000-, Jelsoft Enterprises Limited.
簡愛洋行 製作 Copyright 2003-. All Rights Reserved. 聯絡我們
|