股巿程式問題1:如何突破array[1..100000,1..8]的限制 |
答題得分者是:acqua
|
conchih
一般會員 發表:41 回覆:33 積分:14 註冊:2003-06-07 發送簡訊給我 |
各位大大:
離上次發問已是1年半的時間了
這些日子在研究股巿,也遇到了不少問題,當然也收獲不少
近日想以程式開發自己的簡單看盤系統
如跑歷史資料,以驗証自已的模式
但對於一個delphi新手而言,似乎不太容易
所以標題將以股巿程式為題,發問所遇到的問題
在此,先感謝各位前輩們的幫忙與指導
若有任何股巿方面的問題,亦可來信詢問(必竟ktop不是一個股巿綱站) 廢話一堆,下面是我的問題
但當我想一口氣將歷史資料抓到array分析時,卻無法做到
原先想設定成
StockData:array[1..100000,1..8] of Integer
其中100000為主要的問題
只好更改成
StockData:array[1..4500,1..8] of Integer
如此就將資料分割成數段做分析模擬,但也相當麻煩 不知要如何在定義變數時,來突破此一個問題
1.是delphi的限制還是和電腦的記憶體容量有關
若和記憶體有關,要如何計算可使用陣列的大小呢
2.還是要用資料結構中的動態連結呢(15年前學的,好像是這個名詞吧,哈)
3.或是有什麼好方法呢?對新手而言,當然是越簡單越好啦!嘻! 感謝前輩們的幫忙與指導
|
jcjroc
高階會員 發表:21 回覆:279 積分:115 註冊:2002-09-18 發送簡訊給我 |
|
暗黑破壞神
版主 發表:9 回覆:2301 積分:1627 註冊:2004-10-04 發送簡訊給我 |
|
acqua
一般會員 發表:3 回覆:24 積分:20 註冊:2005-09-13 發送簡訊給我 |
1.你原本在array[0..100000,1..8] of integer會發生錯誤
其原因是因為"堆疊空間不足",,, 到 Delphi Menu-->Project-->Options-->Linker頁籤-->Max stack size的值
由原本的 $00100000==>$01000000 應該可以 不過你出來的程式會比較占RAM的資源 2.在Delphi中 integer預設是(4 bytes)
以你的需求 我猜只需要到word(2 bytes)就好了...
Integer -2147483648..2147483647
Word 0..65535
依自己的需求 使用自己要的型態,,別過分浪費記憶體空間
所以該改成 array[0..100000,1..8] of word 3.如果可以的話 盡量不要開這麼大的 array 來存讀資料
很傷電腦效能...
我個人覺得比較好的方式 大概是使用更好的演算法來做資料處理
因為演算法才是一切程式的根本
像前人所說的 動態配置 或 分段處理 也是不錯的嘗試
|
scotthsiao
高階會員 發表:13 回覆:324 積分:147 註冊:2005-02-01 發送簡訊給我 |
|
conchih
一般會員 發表:41 回覆:33 積分:14 註冊:2003-06-07 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |