【通達信】自編公式指標模板的快速生成法(喜歡折騰指標模板的同學看一下)

最近大盤行情不太好,自行折騰點小玩意。玩指標少不了折騰模板,指標雖然不是萬能的,但離開指標又空蕩蕩的。相信很多同學都習慣將常用指組合成一個個模板,方便看大盤行情及作出趨勢判斷。但用過通達信的同學都知道,通達信的模板管理功能很弱的,不能自由組合編輯,並且還有模板數量限制。如果你只是需要幾個模板看盤的話,自已動動手,在通達信K線圖裡組合一下就行了,也不需要看下去了。如果你有大量的用戶指標,要不斷的生成新模板,刪除舊模板的話,就要花不少時間精力去組合模板了,而且很多指標都用不上,你還得刪掉,折騰來折騰去,人累不說,連看盤的精力都沒了。有沒有更好的模板組合方法呢?目前好像沒有,下面是自己折騰出的一點小玩法,拋磚引玉,供大家參考一下。一、原理方法其實很簡單,用一張excel表格(大概65536行*256列),將你需要的指標名稱放入表格中,(當然,前提是T0002prics.dat或prigs.dat文件中要有這些指標公式,並且名稱完全相同),按照主圖、副圖組合的方式形成一個個指標模板,50個指標模板為一組(與系統限制對應),每個指標模板含一個主圖和至多9個副圖(與系統限制對應)。這樣,在表格里就可以實現指標的自由組合,模板的自由編輯,並且你所有用得著的公式指標統統都可以放進去,即便通達信把你的指標模板整丟了,也可以通過這種方式重新生成原模板,也可以生成新模板。二、首先通過prigs.xls中的vba代碼,從prigs.dat讀取所有用戶指標公式名稱(下圖中已經把vba代碼設置成菜單選項,呵呵,大家不必去學習vba編程,只看看如何操作就行了)

上圖中,中間空白行上面是各主圖公式名稱,下面是各副圖公式名稱。三、接下來打開pripack.xls文件,其中sheet1就是我們需要製作的模板格式,再把前面導出的主、副圖公式名稱複製到sheet2中,這樣的可以在pripack.xls文件中進行各個模板製作了。下面是一張pripack.xls表格,看看做成的模板是什麼樣的。

說明一下:1、表格中陰影部分是一組指標模板,其第一列數據為該組模板各行的說明兼模板組定位。第2列至51列分別對應該組的1~50個指標模板。52列之外為空白。2、各個指標模板的數據結構如下:第一行:模板名稱(小於8個漢字或16個字元即可,上圖中以數字命名,需手工填寫);第二行:指標窗口數(主、副圖窗口總和,由程序自動統計);第三行:綁定周期(手工填入);第四行:主圖名稱(複製,粘貼即可);其餘各行為副圖名稱(複製粘貼即可)。3、每組模板數據結構是完全相同的。(只是副圖數量不同,行數也不同)三、表格中各組模板編輯好後,保存一下,下面還要用到。如果是嚴格按上述格式填入數據的,就不用檢查了,否則要一項項檢查是否有錯。四、模板寫入通達信只能使用其中一組模板(最多50個指標模板,最新版本好像也有這個限制),因此你可以任意寫入一組,其餘的作為備用,當然如果需要隨時可以再次寫入其它模板組,達到短時間切換模板看盤的目的。寫入方法:1、先點擊任意指標,(如果你編輯沒有錯誤的話),該指標對應的模板組被選中,其背景為陰影(如上圖所示)。2、點擊自定義菜單的「模板寫入」項,這樣,選中的模板組就被寫到了T0002pripack.dat當中了。(註:通達信啟動時是通過pripack.dat調用用戶指標模板的)。說明一下:自定義菜單中有三個菜單項,這裡分別給它們編寫了三個宏模塊,(excel一般都自帶vba編輯器,其實你懂點vba的話也可以自行編寫相關命令,高手都懂的),分別執行模板檢查、模板寫入、模板讀出功能,三個模塊配合運行。各個模塊的原碼都在附件里。這裡就貼一下「模板寫入」原碼,有點凌亂,感興趣的同學請自行完善。)Option Base 1Sub writing()Dim temm$, r As Integer, n As Integer, m As Integer, a As Integer, b As Integer, c As Integer, i As IntegerDim j As Integer, k As Integer, s As Integer, p As Integer, q As Integer, arr() As StringApplication.ScreenUpdating = FalseIf UBound(moban) > 0 And log = True Theni = ActiveCell.Rowj = ActiveCell.ColumnFor k = 1 To UBound(moban) - 1If i >= moban(k) And i < moban(k + 1) Thenp = moban(k): q = moban(k + 1) - moban(k)r = Application.CountA(Range(Cells(p, 2), Cells(p, 51)))Exit ForEnd IfNext kIf q > 0 ThenReDim Preserve arr(r, q)b = 0For m = 2 To 51If Cells(p, m).Formula <> "" And b <= r Thenb = b + 1c = 0For n = p To p + q - 1c = c + 1arr(b, c) = Cells(n, m).FormulaNext nEnd IfNext mEnd IfKill pathOpen path For Binary As #1temm = Chr(0)For m = 1 To rk = 356For n = 1 To qIf arr(m, n) <> "" And n <> 2 And n <> 3 Thenarr(m, n) = Trim(arr(m, n))Put #1, , arr(m, n)For s = 1 To 32 - LenB(StrConv(arr(m, n), vbFromUnicode))Put #1, , temmNext sk = k - 32ElseIf n = 2 Thenarr(m, n) = Trim(arr(m, n))Put #1, , CInt(arr(m, n))k = k - 2ElseIf n = 3 And arr(m, n) <> "" Thenarr(m, n) = Trim(arr(m, n))Put #1, , CInt(arr(m, n))k = k - 2ElseIf n = 3 And arr(m, n) = "" ThenPut #1, , temm + temmk = k - 2End IfNext nIf k > 0 ThenFor s = 1 To kPut #1, , temmNext sEnd IfNext mClose #1ElseMsgBox ("模板有錯誤,請檢查!!!")End IfApplication.ScreenUpdating = TrueEnd Sub五、接下來看看寫入的效果。以上圖表格中選中的模板組(陰影部分)寫入為例。重啟一下通達信,(因為pripack.dat只在通達信啟動時才讀入內存,不重啟新模板是不生效的),如下圖(見截圖8)呵呵,各個指標模板在K線圖裡已經有了。點擊6號模板,看看是不是表格中組合的模板。如下圖:(見截圖9)呵呵,還真的一樣,說明寫入成功!!!補充一點,如果你的指標模板不見了,可以將任意一個文件放在T0002下,重命名為pripack.dat,然後照上述方法重寫一下,原來的模板又回來了。(註:T0002prics.dat是系統自帶的,裡面是系統公式指標,估計各個版本做得差不多的;T0002prigs,dat裡面是用戶自編公式指標,所以prigs,dat和表格是萬萬不能弄丟的)喜歡的同學請頂一下,不喜請飄過。

PriGs.rar (17.78 KB)

pripack.rar (30.85 KB)

userini.rar (25.24 KB) (鑒於重新編輯時間有限,請喜歡的同學跟帖交流。)簡單說下:prigs.xls用於讀取 prigs.dat中的用戶指標名稱;pripack.xls用於向pripack.dat讀取、寫入新模板;(user.xls用於向user.ini讀取,寫入50個常用指標名稱,也許有的同學用不上。);各個文件已包含完整原碼。注意備份prigs.dat,pripack.dat,user.ini文件;注意修改prigs.xls,pripack.xls,user.xls文件中VBA代碼所對應的文件路徑。祝大家折騰愉快。[ 本帖最後由 蘇州大王 於 2014-6-24 10:12 編輯 ]股票論壇 www.55188.com
推薦閱讀:

3D--獨膽公式
億萬富翁賺錢公式 七大心法戰勝貧窮2
瘦子比胖子易患10種病!一個公式算出你的體重「底線」
3D鐵膽公式
令人相見恨晚的公式輸入技巧

TAG:公式 | 折騰 | 指標 | 模板 |