奇狐社區論壇 總頁數 (2): « 1 [2]
在這個頁面顯示本主題全部的 25 個文章

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


由 cgjj 在 2011-08-29 11:38 發表:

引用:
最初由 megus002 發表
謝版主回話。.
我當然知..在.vbs是用..write 寫出。
我是指..單用...變數.mydata..就可以.把..資料..接收後...
奇狐就會update資料嗎...[按您的說法..?.]

單就第一支程式...讀入txf_file...的寫法...
讀出..一維陣列..給...mydata[i] ...

然..後..K線圖.就會改變嗎?..

[當然.改了一.下..資料格式....不然有錯..].....
請教我囉?...因我不認為可行....
1-
我假設..mydata或許是虛擬變數...去接收值...
但..那..我一跳出奇狐...那..K線不就..消失了...
2-若為實體.table ...那..還是..沒宣告它的結構...c*0 不是吧..
3-若都不是..那表示...只要餵資料給..mydata..就可..update線圖囉...
那..可真強了..........

另一問題...還請告知....
關於.陣列的寫法...我run了一下程式.....
這樣..到最後..最多就寫一筆....不會是整個..file
至少要用二維吧.......
請告知囉.....希望可以.有直接正確的寫法................
[若有困難或其它考量..也請告知.....也好節省時間..謝謝...]



具舉個最簡單的例子來說

只用奇狐來算中價

HH:H; LL:L;
MM:(H+L)/2;


同樣的運算, 將中價部份改用 VBScript 來算

HH:H; LL:L;
MM:C*0; //設置一個與K棒等長的零值數列
<%
VH=FFL.VarData("HH") '將奇狐之 HH 數列傳入 VBScript 之 VH 陣列
VL=FFL.VarData("LL") '將奇狐之 LL 數列傳入 VBScript 之 VL 陣列
VM=FFL.VarData("MM") '將奇狐之 MM 數列傳入 VBScript 之 VM 陣列

'計算中價結果存入 VM 陣列之中
for i=lbound(VM) to ubound(VM)
VM(i) = (VH(i)+VL(i))/2
next

'將 VBScript 之 VM 陣列傳回奇狐之 MM 數列
FFL.VarData("MM")=VM
%>

先澄清一些觀念
1.奇狐系統必須該商品已存在並且擁有數據, 公式才能被執行運算
2.公式無法去創建或變更系統數據(例如:開高低收量等基礎數據)
 故不能利用公式去創造出一個新的商品和產生該商品的K棒


您可利用 VBScript 來做輔助計算或讀入外部文字檔案內容
文字檔案內容可以是註解, 也可以是數值資料
讀入後可在既有的K線當中做資料運算或應用顯示

以前面算中價的例子來說
MM 值您也可以透過文字檔賦予給它(不經由計算得到)
(用VBScript讀TXT檔中的資料,對應到相等K線位置)


由 cgjj 在 2011-08-29 11:43 發表:

引用:
最初由 megus002 發表
我附個摩台.5分資料好了....
看您的範例囉....



若您是要用公式創建一個新個摩台商品和其五分鐘數據
是不可行的
必須於自定義市場中去新建商品, 並匯入數據

若並非要創造新商品或創造新K線
而是利用外部文字檔讀入與當前商品K線相關連的數值(透過公式)
這是可行的


由 yes6689 在 2011-08-30 15:06 發表:

引用:
最初由 cgjj 發表
具舉個最簡單的例子來說

只用奇狐來算中價

HH:H; LL:L;
MMH+L)/2;


同樣的運算, 將中價部份改用 VBScript 來算.........................(省略)
..............................................................
先澄清一些觀念
1.奇狐系統必須該商品已存在並且擁有數據, 公式才能被執行運算
2.公式無法去創建或變更系統數據(例如:開高低收量等基礎數據)
 故不能利用公式去創造出一個新的商品和產生該商品的K棒




請教 cgjj :
依照上面的觀念,是不是意味著
我不能用計算出來的 MM 取代今日的收盤價,使其成為另一個數列呢?


由 cgjj 在 2011-08-30 15:28 發表:

引用:
最初由 yes6689 發表
請教 cgjj :
依照上面的觀念,是不是意味著
我不能用計算出來的 MM 取代今日的收盤價,使其成為另一個數列呢?



Yes
Close 是系統內建的數列, 無法用程式取代或變更其數值
但若是自己設定的數列變數, 則數值可任意被變更

例如:
MM:=CLOSE; //將收盤價存入自己設定的 MM 數列之中
MM[datacount]:=100; //MM數列是自己設定的, 故可被任意變更

計算後
會將 MM 最後一個元素(K棒), 值變更為 100
其他位置的值仍是當初存的收盤價

像以下這行就不被允許執行, 因為Close 是系統內建的數列
CLOSE[datacount]:=100;


由 taiwanyang121 在 2011-11-29 16:34 發表:

如果有2種以上數據要自動讀取?

1971/1/5,123.28,20.1
1971/1/6,122.93,21.3

以上為MyData.txt 的資料

我想要將資料自動讀取到奇狐然後在附圖中畫出圖形,要如何作?


由 taiwanyang121 在 2011-11-29 16:45 發表:

FoxDE:=DATE;
MyData1:C*0;MyData2:C*0;
<%
MyData1 = FFL.VarData("MyData1")
MyData2 = FFL.VarData("MyData2")
FoxDE = FFL.VarData("FoxDE")
Set fs = CreateObject("Scripting.FileSystemObject")
Set wrkfs = fs.OpenTextFile("C:\Da.txt", 1)
MyTxt = wrkfs.ReadLine
wrkfs.close
TxtStr=MyTxt
TxtAry = Split(TxtStr, ",", -1, 1)
GetDE=CLNG(TxtAry(0))
GetVV1=CSNG(TxtAry(1))
GetVV2=CSNG(TxtAry(2))
for i=0 to ubound(MyData)
if FoxDE(i)=GetDE then
MyData1(i)=GetVV1
MyData2(i)=GetVV2
end if
next
FFL.VarData("MyData1")=MyData1
FFL.VarData("MyData2")=MyData2
%>


結果出現以下錯誤? 問題在哪裡?


由 taiwanyang121 在 2011-11-29 16:51 發表:

請問如狐自動讀取外部數據

錯誤附圖


由 cgjj 在 2011-11-29 19:50 發表:

回覆: 請問如狐自動讀取外部數據

引用:
最初由 taiwanyang121 發表
錯誤附圖


1971/1/5 這欄是日期
讀入後因為其中有 "/" 字元
故無法直接用VBScript 的 CLNG 函數轉換為數值
所以會出現型態不符合


由 taiwanyang121 在 2011-11-30 14:11 發表:

請問如狐自動讀取外部數據

那要如何改數據?


由 cgjj 在 2011-11-30 15:04 發表:

回覆: 請問如狐自動讀取外部數據

引用:
最初由 taiwanyang121 發表
那要如何改數據?


奇狐的 date 是1900以來的的年月日

700101 代表 1970/01/01
710105 代表 1971/1/5

在 Excel 先將數據為奇狐的日期格式後, 再存入TXT讀入
這樣就不用每一次載入, 都要浪費CPU再轉換一次

假設 Excel A1 這格內容為 1970/1/1
Excel 轉換方法為:
=(YEAR(A1)-1900)*10000+MONTH(A1)*100+DAY(A1)


全部時間均為台灣時間, 現在時間為06:26 總頁數 (2): « 1 [2]
在這個頁面顯示本主題全部的 25 個文章


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

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