1. 通達信簡介1.1 通達信軟件概述通達信是國內知名的證券分析軟件,由深圳市財富趨勢科技股份有限公司開發,廣泛應用于券商、投資機構和散戶投資者。軟件提供實時行情、技術分析、基本面分析、量化交易等功能。 1.2 通達信主要功能特點
1.3 通達信界面介紹
![]() 2. 通達信公式系統簡介![]() 2.1 公式系統概述通達信公式系統是一套完整的編程環境,允許用戶創建自定義指標、條件選股公式、交易系統和五彩K線公式等。通達信公式系統是其核心功能之一,其基于特定的語法結構,支持數學運算、邏輯判斷、函數調用等多種編程元素。 公式系統的優勢:
2.2 公式類型
2.3 公式編輯器
3. 通達信公式編程語法基礎公式組成要素: 公式名稱,參數,表達式(計算),輸出 ![]() 3.1 基本語法規則
{示例}N := 5;MA5 : MA(C, N); ![]() 3.2 數據類型
3.3 運算符
運算符優先級表
3.4 變量命名規則3.4.1 基本命名規則
3.4.2 變量命名示例有效命名: MA5ma10_VolRatioDay3_Avg 無效命名:
3.4.3 變量命名約定(建議)3.4.3.1 技術指標變量
示例: MA5:MA(CLOSE,5);VOL_MA5:MA(VOL,5);RSI14:RSI(CLOSE,14); 3.4.3.2 臨時計算變量
示例:
3.4.3.3 條件判斷變量
示例: IS_UP:=CLOSE>OPEN;HasVolume?:VOL>REF(VOL,1)*1.5; 3.4.4 變量作用域規則
3.4.5 變量命名實踐建議
良好命名的公式片段示例:
3.5 賦值語句3.5.1 基本語法結構![]() 3.5.1.1 語法原型:變量名 賦值符 表達式; 3.5.1.2 兩種賦值方式對比
3.5.2 簡單賦值
3.5.3 條件賦值{根據條件動態賦值}TREND := IF(CLOSE > MA(CLOSE,20), 1, -1); 3.5.4 賦值語句實踐舉例成交量加權均價:
3.5.5 常見錯誤3.5.5.1 典型錯誤案例{錯誤示例1:賦值符號混淆}MA5 = MA(CLOSE,5); {錯誤!應使用:=或:}{錯誤示例2:自我引用}RECURSIVE_VAR := RECURSIVE_VAR + 1; {未開啟遞歸選項}{錯誤示例3:類型不匹配}TEXT_SIGNAL := 'BUY' + CLOSE; {字符串與數值不能直接運算} 3.5.5.2 調試方法![]() 3.5.6 關鍵總結:
3.6 控制結構
示例: VAR1:=IF(CLOSE>OPEN,1,0);
通達信公式系統不支持傳統循環結構,但可通過遞歸函數或內置函數實現類似功能。 3.7 函數調用
函數在公式編寫中具有非常重要的作用,在公式編輯器中選擇插入函數,可以看到里面有許多函數,如下圖: ![]()
4. 通達信函數及公式編程實踐調出公式管理器: 公式公式管理器 或 快捷鍵:CTRL+F 公式類型分為四大類:技術指標公式、條件選股公式、交易系統公式、五彩K線公式。
4.1 公式編寫舉例進入公式管理器,新建一技術指標公式 依次點擊菜單“公式公式管理器”,進入公式管理器界面。如下圖: ![]() 左邊的樹型列表中選擇技術指標公式下面的“均線型”,點擊右邊的“新建”,就會進入公式編輯界面,如下圖: ![]() 填寫公式名稱,公式描述; 公式類型:對應的公式可選擇加入不同的類型,設定后查看公式時將會在對應的分類項下列出來; 畫線方法:選擇副圖,指標將會在副圖區顯示,選擇主圖疊加,指標將會在主圖區顯示(如常用指標MA就是主圖指標),也可選擇在副圖上疊加K線,美國線,收盤站線。 ![]() 坐標線位置:默認的是自動,系統自動根據指標值的范圍設定的區間,如下圖的 0.60,0.40,0.2,0, -0.2, 0.00 , -0.2 ;可以手動的設置坐標間隔,用分號分開,手動設置后,默認的將會沒有。 ![]() 額外Y軸分界:在指標上加上一些白色的橫線,如上圖所示。 在公式編輯界面公式編輯界面輸入公式內容,
如下圖: ![]() 點擊 “測試公式”,若顯示測試通過,點擊“確定”按鈕保存公式。之后就可以調出公式使用,如圖: ![]() 注: 公式編輯時,可以點擊“插入函數”,選擇要插入的函數,點擊“確定”按鈕,對應的函數會在公式編輯框內顯示出來。如下圖所示: ![]() 點擊“確定”: ![]() 選擇函數后,可以繼續填寫函數參數,本例MA有兩個參數,第一個參數填寫收盤價,收盤價在公式函數中用 C 表示,第二個參數填寫均線日期,可以直接錄入一數字。(注:公式編寫涉及到符號時用英文字符)。如下圖所示: ![]() 選擇其他函數,可以按提示進行填寫即可完成。 4.2 官方一些基本公式編寫實例4.2.1 今日比昨日的成交量放大了1倍VOL/REF(VOL,1)>2; 4.2.2 今日的五日均量比五天前的五日均量放大了3倍
4.2.3 今天的成交量達到了整個流通盤的10%以上VOL/CAPITAL>10/100;
4.2.4 今日比昨日的成交量縮小了1倍
4.2.5 今日的五日均量比五天前的五日均量縮小了一半AA:=MA(VOL,5);BB:=REF(AA,5);AA/BB<0.5; 4.2.6 今天的成交量不足整個流通盤的0.5%
4.2.7 今日漲幅達到了7%以上CLOSE/REF(CLOSE,1)>1.07; 4.2.8 十日均價繼續上漲
4.2.9 收陽、收陰:1、當天收陽:CLOSE>OPEN; 2、當天收陰:CLOSE<OPEN; 4.2.10 高開、低開1、當天股價高開,即開盤高于昨日收盤:OPEN>REF(CLOSE,1); 2、當天股價低開:OPEN<REF(CLOSE,1); 4.2.11 跳空跳空亦有向上和向下兩種: 當日開盤在昨日最高之上,即為向上跳空:OPEN>REF(HIGH,1); 反之,開盤小于昨日的最高價,為向下跳空:OPEN<REF(LOW,1); 4.2.12 量價齊升AA:=VOL/REF(VOL,1)>2;{成交量是昨日的兩倍}BB:=CLOSE/REF(CLOSE,1)>1.07;{漲幅大于7%}AA AND BB; 4.2.13 創新高創新高指當日最高價是最近一段時間的最高價:
其中的HIGH為當期最高價,HHV(X,N)是求N周期內X最高值。因此該公式的含義是當日最高價創N日新高時返回值為1,否則為0。 4.2.14 橫盤整理橫盤整理指最近一段時期價格在一定幅度之內擺動: (HHV(CLOSE,10)-LLV(CLOSE,10))/CLOSE<0.05; 其中的LLV(X,N)是求N周期內X最低值。因此該公式表示10日收盤價振幅振幅在5%以內。 4.2.15 5日,10日,30日均線多頭排列定義:均線多頭排列,是指從短周期到長周期均線,從上而下的依次排列
以上情況維持一段時間,假設我們這里定為4天以上: COUNT(T1, 4)=4; COUNT(X, N)表示統計在N天內滿足條件X的有幾天。 最終的結果就是如下所示:
4.4.16 某絕對時間段最高價此腳本段求2022年8月3日到2022年12月31日間的最高價: HH:=IF(YEAR=2022 AND (MONTH>8 OR (MONTH=8 AND DAY>=3) ) AND (MONTH<12 OR (MONTH=12 AND DAY<=31) ),H,0);{HH變量在該時間段內等于H,其他時間為0}HHV(HH,0);{此例求2022年8月3日到2022年12月31日間的最高價} 4.4.17 在某個時間段內某條件滿足二十個交易日內時候漲停過
![]() |
|