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

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

字串符轉換

想要求 收盤價的每一個值
例如 收盤價是51.26
c1:...=6
c2:...=2
c3:...=1
c4:...=5

試寫公式如下
cs:FRACPART(C)*100,precision0,linethick;//小數化整 也試過不用取小數值 而直接求值
c1:strtonum(strright(numtostr(Cs,0),1)),linethick;//小數右邊第一位數值
c2:strtonum(strleft(numtostr(Cs,0),1)),linethick;////小數左邊第一位數值
vertline(c1<ref(C1,1));//測試用
vertline(c1>ref(C1,1));//測試用
vertline(c2<ref(C2,1));//測試用
vertline(c2>ref(C2,1));//測試用
cz:INTPART(C),precision0,linethick;//取整數部分
c3:strtonum(strright(numtostr(Cz,0),1)),linethick;//整數右邊第一位值
vertline(c3<ref(C3,1));//測試用
vertline(c3>ref(C3,1));//測試用
partline(C,0),linedot;

搞不懂 為何出來的數值全部都是固定的值(全部都是最後一根K線的值) 不會因為K線位置的變動而改變
然而由圖中(TW2353)可以清楚的看到 值應該是有變化的
煩請指導

peter109 附帶上了此圖片:

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

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

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

numtostr 是不支援數列的喔

可用下列方式處理:
CC:=c;
C1:INTPART(mod(CC,1000)/100);
C2:INTPART(mod(CC,100)/10);
C3:INTPART(mod(CC,10));
C4:INTPART(mod(CC*10,10));
C5:INTPART(mod(CC*100,10));

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

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

多謝版大的指導 我試試

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

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

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

還是有問題耶

出來的值有些時候正確 有些時後不正確
請觀看個股 然後比對每一個收盤價 例如最近的20根K線 似乎取整的時候系統會自動四捨五入 導致不正常 例如TW1110東泥 日期5/11和 5/9值就是錯誤的

公式如下
CC:=c;
C1:INTPART(mod(CC,100000)/10000),linethick;//整數萬
c2:INTPART(mod(CC,10000)/1000),linethick;//整數千
C3:INTPART(mod(CC,1000)/100),linethick;//整數百
C4:INTPART(mod(CC,100)/10),linethick;//整數十
C5:INTPART(mod(CC,10)),linethick;//整數個位
C6:INTPART(mod(CC*10,10)),linethick;
C7:INTPART(mod(CC*100,10)),linethick;
C8:INTPART(mod(CC*1000,10)),linethick;

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

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

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

mod(c,10) 和 mod(7.94,10) 目前公式系統處理方式不同
前者有四捨五入後者沒有
已告知研發部修正成均不四捨五入
近期會發佈修正

修正前可採用下列方式處理:
CC:=c+0.005;
MM1:INTPART((cc-10000*INTPART(cc/10000))/1000);
MM2:INTPART((cc-1000*INTPART(cc/1000))/100);
MM3:INTPART((cc-100*INTPART(cc/100))/10);
MM4:INTPART(cc-10*INTPART(cc/10));
MM5:INTPART(cc*10-10*INTPART(cc*10/10));
MM6:INTPART(cc*100-10*INTPART(cc*100/10));
INTPART(cc*100);

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

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

因為奇狐預設是顯示到小數第二位
故需加入 CC:=c+0.005; 來處理

若您顯示的是到第三位
則需加入 CC:=c+0.0005; 來處理

其它依此類推

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

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

我是這麼解的

CC:C*10000,linethick;
C1:mod(CC,10),linethick;//以下小數千位
c2A:=mod(CC,100);//小數兩位
C2:INTPART(MOD(c2A-C1,100)/10),linethick;//小數百位
.... 餘類推

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

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

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

不知是否bug

下式係lillian2005 兄提出來的另解方式
CC:C,linethick,precision4;
cs:cc*10000,precision0,linethick0;
ss:strlen(numtostr(Cs[SYSPARAM(1)],0)),linethick0,colorwhite;
s4:strtonum(strmid(numtostr(Cs[SYSPARAM(1)],0),ss-3,1)),linethick;//小數個位
s3:strtonum(strmid(numtostr(Cs[SYSPARAM(1)],0),ss-2,1)),linethick;//小數十位
s2:strtonum(strmid(numtostr(Cs[SYSPARAM(1)],0),ss-1,1)),linethick;//小數百位
s1:strtonum(strright(numtostr(Cs[SYSPARAM(1)],0),1)),linethick;//小數千位
z1:strtonum(strmid(numtostr(Cs[SYSPARAM(1)],0),ss-4,1)),linethick;//整數個位
//以下是我添加的部分
z2:strtonum(strmid(numtostr(Cs[SYSPARAM(1)],0),ss-5,1)),linethick;//整數十位
z3:strtonum(strmid(numtostr(Cs[SYSPARAM(1)],0),ss-6,1)),linethick;//整數百位

請比對TW1110東泥
您會發覺東泥的整數只有一位數值 然而卻多出了兩位數值z2以及z3
並且z2和z3這多出來的值都沿用前一個數值z1
不知是我作業錯誤 還是 這是一個bug

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

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

註冊日期: Dec 2003
來  自:
文章數量: 291

這不是bug,是用在整數部分時,不能如此行之,看看整個字串長度只有5,怎堪得再減去5或6呢?

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

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

整個字串長度只有5 怎堪得再減去5或6

只是在想一個問題
系統為何不將多出來的字串長度預設為零 而一定要預設為目前的狀態

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

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

論壇跳轉:
主題評分:

論壇規定:
你不可以發表新主題
你不可以回覆文章
你不可以上傳附件
你不可以編輯自己的文章
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.  聯絡我們