29 12月 2008

小達人下單機(日盛 API - 單帳號 - 單策略)

千年傳統,全新包裝,全新感受!

這次依舊遵循古法,重新釀製!



簡單來說就是換湯不換藥,從上次的初心版下單機
小達人下單機(日盛 API / 網頁 版)

依舊只有單帳號單策略版本,而且還拿掉網頁版下單功能(功能越減越少)
其實有用過API版本都知道,下單的速度就是不一樣,完全不是網頁版可以比。

因此在這個版本就拿掉這個功能,之後視情況在決定要不要加上去吧!


有下載此版本使用的人,如有建議,請踴躍回應



軟體名稱:小達人下單機 - 日盛 API - 單帳號 -單策略

額外需求:需要安裝 Microsoft .NET Framework 3.5
官方網站:Microsoft .NET Framework 3.5

軟體版本:1.0.0.0

支援商品:
  • 國內期貨:台股指數期貨     小型台股指數期貨
         電子期貨       金融期貨
         非金電期貨      櫃買期貨
         台灣五十期貨     台幣黃金期貨
         





下單機概述
-----------------------------------------------------------------------------
首先是認證畫面,第一次使用的人在此
填入E-Mail,就可以申請試用。


申請後請到信箱收信,填入認證碼來進
行下單機認證。

























這就是下單機主頁面

新增了人工下單部分
個別部位:此部位就是一般手癢單
程式部位:在此下單會影響到帳戶部位與策略是否同步

第一次執行程式要先設定帳號跟策略,以及交易的商品
























帳號管理畫面

期貨公司預設日盛期貨需要填入分公司,期貨帳號,以及交易密碼
分公司需要設定代號, 代號為三碼。分公司設定部分,請點擊旁
邊設定鍵進入設定

設定完後記得儲存設定

















分公司設定畫面

日盛有很多分公司,選擇你屬於的分公司,如果知道分公司代號
也可以在 "其他"的地方填代號

























策略管理畫面

填妥策略來源,設定格式以及其他細項

記得儲存設定

























商品設定畫面

設定好交易月份以及目前帳戶部位

設定好後存儲設定






















系統設定頁面

如果HTS路徑不同,記得設定HTS路徑 其他如同預設值即可。

18 12月 2008

回測數據(Backtesting)VS 最佳化(Optimal)

其實這問題已經存在很久了,不過由於自己太忙了也沒有去真實映證看看

很多人都說不要過度的最佳化,但是有參數就一定會伴隨一個問題
這個值是否適合?

因此很多人也喜歡最佳化,不可否認,最佳化的確很吸引人

這篇文章討論的觀點,建立在可以接受最佳化的程式上
在這裡探討三個觀點
  1. 回測完的資料是否為真實獲利?
    這是大家最常做的,利用回測完的資料來代表獲利數據,說幾年幾百萬
    ,但是是否真的資料就是如此呢?這個我們無從得知,但是因為後面的
    實驗,這個就拿來當對照組吧!

    概念圖如下,將歷史資料數據取出間隔的獲利來當基本對照組:


  2. 利用足夠長度的歷史資料跑最佳化
    這個觀念在於很多人會覺得,如果擁有足夠長的歷史資料,幾乎是可以
    當成一個完整的景氣循環的資料,那這樣子跑出來的結果可以涵蓋所有
    多頭空頭或盤整,這樣子的程式比較令人接受。

    概念圖如下,將累積的歷史資料取最佳值,來跑下一個時間區間:


  3. 利用區間歷史跑最佳化
    這觀念在於,認定市場在某段時間內都是有相同趨勢,例如多頭、空頭
    等,往前取一個區間來反應接下來的市場趨勢,隨著時間的前進,區間
    的資料也必須跟著時間軸做改變。

    概念圖如下,區間最佳化參數必須隨著時間變動跟著平移:

根據上面的想法,在這裡利用一個很簡單的交易策略來驗證上面的想法

歷史資料:1999/01/01 ~ 2008/09/30

交易策略:長短均線交叉、單口雙向、波段策略
     買進:交叉向上,且K線收上長均線
     賣出:交叉向下,且K線收破長均線

最佳化參數:短均線(2~40,以2增加)
      長均線(30~100,以2增加)

資料型態:30分鐘K線圖

交易成本:2000元/每筆

區間範圍:以三年為歷史一段區間,比較2004到2008年獲利

實驗結果:

上圖是直接利用完整的歷史資料跑出最佳化的結果,每個間距以年為單位,可
以觀察出該策略,從2002年到2008年9月有1862800的獲利,就波段程式而言
算是滿弱的,但是至少有獲利。根據這些資料發現,2003年的獲利賠了40800
,其他每年都賺有不錯獲利。


這張實驗主要是假設,如果這個想法是2001年寫出來的,那以當時的歷史資料
來最佳化,往後每年資料增加,就將歷史資料重新跑最佳化來跑下一年的績效
。上圖發現,獲利跟完整的歷史回測是有出入的,而且2003年反而是賺錢的,
賠最多的居然是2006與2007年,總績效卻降到1046400。


這個實驗以每三年做區間,往後每個一年,區間就跟著移動跑新的最佳化,來
驗證之後的績效,從這張圖發現,每年都有賺錢呢,雖然獲利依舊不如預期,
但是總績效也有1510000。


總結:
根據這次的實驗,我們發現最佳化的參數的確不適合應用在往後的市場上,但是
要如何取最佳化的方法,這又是另一個議題。
在這次簡單的實驗中,區間最佳化比累積長歷史區間最佳化的績效來的好,是否
都適合每種策略?或者把間距拉小用在5分K或更短是否也是有一樣的結果?這
就等之後的實驗在給大家報告了。

29 11月 2008

電影「赤壁」 三國猛將 甘興

電影「赤壁」中突然冒出一個三國猛將 - 甘興

這是何許人也?

其實劇中的甘興指的就是甘寧

那...甘寧何許人也?

甘寧姓甘名寧字興霸,原為海盜,陸戰水戰無一不精。
少年好游俠,先後投靠劉表、黃祖不受重用,最後到東吳獲得周瑜、孫權賞識。
他戰功顯赫,連關羽都畏懼三分。某次交戰,關羽帶五千精銳渡河,甘寧只領兵
八百相迎,結果關羽「聞其名引兵而返」。

三國名人被後世神化的,蜀有關羽,吳有甘寧,都在宋代登上神壇。中國朝代各
有特色,唐朝多胡氣,宋朝勢弱而樂於封神;甘寧代表力量,正是宋朝皇帝渴望
的,封神後更在聊齋裡被稱為吳王,神化程度不下於武聖關公。今天湖北陽新縣
的吳王廟,實為甘寧廟,洪湖市的吳王廟才是孫權廟

甘寧的後代多名將,相傳清朝的江南大俠甘鳳池也是。傳說中,雍正被刺客砍了
頭,是呂四娘的傑作;她是著名的江南八俠之一,卻是小說虛構人物。甘鳳池也
屬八俠,和呂四娘有深厚微妙感情,卻是歷史上真實人物。吳敬梓「儒林外史」
的義士鳳老爹,寫的就是他。

甘寧為孫吳頭號猛將,演義第六十八回描中,有個描述他「百騎劫魏營」的英勇故事。

故事是這樣的:
赤壁戰後,曹吳兩軍於合淝對峙,孫權為挫曹軍銳氣,
便問帳下諸將誰敢當先破敵。

此時凌統(孫吳的猛將之一)出曰:「某願往。」
孫權問:「帶多少軍去?」
統答曰:「三千人足矣。」

這時甘寧跳出來說:「只須百騎便可破敵,何須三千?」
還說:「若折了一人一騎,也不算功。」
於是孫權便撥一百精銳騎馬兵與寧,又賜酒給這一百名士兵。

出發前,這一百名士兵心想:「我等區區一百人,何以敵彼軍之眾?」
於是眾人便面面相覷。
此時甘寧見狀便怒斥曰:「我為上將,且不惜命,汝等何得遲疑!」
眾人聽罷,士氣大振,也不再畏懼。

後來甘寧引這一百騎殺入曹營,大勝而歸,未失一人一騎。

沒人能肯定演義中的這一段故事是否為真,
但是書中甘寧的勇氣,與這一番豪氣干雲的話,的確令後人神往。

事後孫權更稱讚道:「曹操有張遼,孤有甘興霸,足以相敵也。」


<說法一>
最根本的原因是在赤壁下集的時候,甘興的母親也會出現在劇中,
如果不叫甘興叫甘寧的話,肯定被傳為[甘寧娘] 這聽來就不太雅觀
了,不過這也是劇組求好心切 。

<說法二>
甘興是孫權旁邊一個侍衛,平時盡忠職守,也深得周瑜的喜愛
有一天,甘興在 孫權的桌子上割東西時,因為沒有墊東西,所以刀子力透紙背
,割壞了孫權的愛 桌,孫權非常的生氣,正當要將甘興拖出去斬了的時候…

周瑜特別為甘興求情,他向孫權深明大義,叫孫權不可為了區區一張桌子而殺
害 一位忠臣,孫權最後接受了周瑜的求情,但還是憤恨難平。 周瑜為了讓孫權
消消火氣,便向全國宣告,日後在桌子上割東西,都要先墊紙保 護桌子,才不
會造成像孫權愛桌被割的憾事,而這個佈告獲得全國的響應,也使 得孫權最後
心情平緩,原諒了甘興…

這就是…「全國墊紙 救甘興」

年資之外

動物園新來了一隻獅子。

在餵食的時候,其他的獅子都吃牛排,這隻新獅子只分配到一根香蕉,
起初這隻新來的獅子以為自己資淺,不以為意。

但隔了幾天,牠實在受不了,就開口問了其中一隻獅子:
「為什麼你們每天都在吃牛排,而我只能吃香蕉?」

資深的獅子回答說:
「因為我們這個動物園,獅子的人事凍結,你佔的是猴子的缺。」

這隻新來的獅子再問了其中一隻獅子:
「為什麼隔壁那隻土狗子也在吃牛排,而我還是只能吃香蕉?不能換個缺嗎?」

資深的獅子回答說:
「因為你佔的是猴子的缺。他佔的是老虎的缺,最重要的是 - 那隻狗是園長介紹來的。」

28 11月 2008

單帳戶可否跑多策略?

最近實在是被這個問題問到很煩啊!

答案是可以的...
不同策略不需要開不同的戶頭

雖然不同策略可能會有多空相抵銷的情況,但是其實總收益是不變的

在這裡舉個實際例子給各位:
策略A,帳戶無單
-------------------------------------------------------------
時間   訊號口數   成交價  損益  操作
09:10   多 1    5000       買1
09:45   空 1    5020   +20  賣2
11:30   多 1    5050   -30   買2
13:30   平 1    5090   +40  賣1
-------------------------------------------------------------
總損益:+30
策略B,帳戶無單
-------------------------------------------------------------
時間   訊號口數   成交價  損益  操作
09:30   空 1    5040       賣1
12:30   平 1    5080   -40   買1
-------------------------------------------------------------
總損益:-40
兩個策略總損益:-10
上面是個別看策略的損益表
如果在同一個帳戶上面操作會發現對帳單如下:
-------------------------------------------------------------
時間   訊號口數   成交價  損益  操作  策略  帳戶部位
09:10   多 1    5000       買1  A   多單*1
09:30   空 1    5040   +40   賣1  B   空手
09:45   空 1    5020        賣2  A   空單*2
11:30   多 1    5050   -60   買2  A   空手
12:30   平 1    5080         買1  B   多單*1
13:30   平 1    5090   +10   賣1  A   空手
-------------------------------------------------------------
總損益:-10

所以當單帳戶跑多策略的時候,不要太追究現在是什麼單
只要注意是否訊號出現的時候有成功成交

畢竟跑了多策略後,帳戶損益就是兩個合起來的
不過自己在紀錄績效的時候要分開紀錄就是了

根據上面的介紹...
這問題應該不會再度困擾了吧!

12 11月 2008

小達人下單機(日盛 API / 網頁 版)

這兩天先把日盛的API整合進去原本的下單機中

雖然介面還是醜醜的,不過先測試看看能不能正常使用吧^^

跟原本的介面比起來只有多了一個選項

可以選擇使用API下單(API)或者網頁(Web)下單


OS:這樣設計的話只是怕說如果API掛掉還可以用網頁版
   雖然說...有API版,網頁版應該跟廢掉沒兩樣^^

10 11月 2008

小達人下單機 -- 測試心得(日盛網頁版)

昨天修改了一些Bug,今天再次上線測試,就下單的部份來說

讀取訊號到下單部分應該是沒什麼大問題


接下來是下單速度上的檢討

畢竟這是網頁版的下單機,速度慢一點也是沒辦法的事情 > <

不過我也不清楚API有沒有比較快~哈

從今天的交易看起來,從偵測到訊號到得到回報訊息大約10~13秒

但是還不知道實際成交單是在多久,等API下單機寫出來再來比較好了!

03 11月 2008

小達人下單機(日盛網頁版)

最近實在是太忙了,好久沒有上來寫文章,當個學生壓力也是很大啊!


最近針對日盛的下單部分寫一個簡易的下單機:

就暫時叫小達人下單機(Auto Trade Machine)吧!
下單機暫時也沒想到什麼特殊的設定,反正簡單易懂就好啦!

12 10月 2008

小達人績效評估程式

一個策略完成後,怎麼知道這個策略的好壞?除了最基本的獲利曲線我們
當然是希望呈現45度角上揚的狀態,但是對於這些報表中的數據,網路上
已經有些人利用簡單的數學運算來幫自己的策略打分數:

程式績效評分
人性因子
凱利公式

本篇將上述的三個評分標準,寫成一個簡單的小程式



中文對照HTS,英文對照TS,使用者只需要將報表欄位填入即可

下載位置:小達人績效評估程式

凱利公式

出處:凱利公式

在機率論中,凱利公式(也稱凱利方程式)是一個用以使特定賭局中,擁有
正期望值之重複行為長期增長率最大化的公式,由約翰·拉里·凱利於 1956 年
在《貝爾系統技術期刊》中發表,可用以計算出每次遊戲中應投注的資金比
例。除可將長期增長率最大化外,此方程式不允許在任何賭局中,有失去全
部現有資金的可能,因此有不存在破產疑慮的優點。方程式假設貨幣與賭局
可無窮分割,而只要資金足夠多,在實際應用上不成問題。

凱利公式的最一般性陳述為,藉由尋找能最大化結果對數期望值的資本比例
f*,即可獲得長期增長率的最大化。對於只有兩種結果(輸去所有注金,或
者獲得資金乘以特定賠率的彩金)的簡單賭局而言,可由一般性陳述導出以
下式子:
f* = p - q/b  

其中
f* 為現有資金應進行下次投注的比例;
b 為投注可得的賠率;
p 為獲勝率;
q 為落敗率,即 1 - p;

舉例而言,若一賭博有 40% 的獲勝率(p = 0.4,q = 0.6),而賭客在贏得
賭局時,可獲得二對一的賠率(b = 2),則賭客應在每次機會中下注現有
資金的 10%(f* = 0.1),以最大化資金的長期增長率。

凱利公式最初為 AT&T 貝爾實驗室物理學家約翰·拉里·凱利根據同僚
克勞德·艾爾伍德·夏農於長途電話線雜訊上的研究所建立。凱利說明夏農的
資訊理論要如何應用於一名擁有內線消息的賭徒在賭馬時的問題。賭徒希望
決定最佳的賭金額,而他的內線消息不需完美(無雜訊),即可讓他擁有有
用的優勢。凱利的公式隨後被夏農的另一名同僚 愛德華·索普應用於二十一點
和股票市場中。

1738年丹尼爾·伯努利曾提出等價的觀點,可是伯努利的文章直到1954年才首
次譯成英語。不過對於只投資一次的人來說,應選擇算術平均最高的投資組合。

Kelly Value and Equity Curve of a trading system

人性因子

發明者:程式交易老祖

A值 = 平均每筆獲利/平均每筆損失
B值=錯的總次數/對的總次數
C值=A減B

C值=人性因子高低

我稱它為循環比,也就是完成一個程式循環,這個公式算來簡單,但其中已透視了
交易程式的一切,簡單的說循環比高等於失誤率低 獲利率高循環比 低 等於失誤率
高獲利率低如何判斷                 

低於0.5不能用 不是失誤率高 就是獲利率低 容易中途而廢
0.5-0.75可採用 但仍稍嫌不足
0.75-1.0相當不錯 跟單時符合人性
1.0以上兩個字 完美

程式績效評分

1. 賠償比率 = 總收益 / 總損失
2. 平均收益比率 = 平均收益 / 平均損失
3. 勝率 = 收益交易回數 / 總交易回數 ( 以 小數點表示 例: 45% = 0.45 )
4. 平均各買賣損益 = 純益 / 交易回數
5. 最大評價損失幅 ( 即 程式曾經連續損失的最大金額 )

A值 = ( 賠償比率 - 1 ) / ( 賠償比率 + 1 )
B值 = ( 平均收益比率 - 1 ) / ( 平均收益比率 + 1) * 勝率
C值 = 平均各買賣損益 / 最大評價損失幅
平均各買賣損益 若為負數,則保留負號 ; 最大評價損失幅 則不論如何,都不用加上負號
總分 = A + B + C

分數 0.5 以上 即可考慮使用 ; 分數越接近 1 就越近乎完美 . 分析期間 當然越長越好

25 9月 2008

HTS函數庫大蒐集

資料來源:期貨和選擇權-大人的網路遊戲

按照字母排序函數庫:
Accumulation Distribution
Accum Swing Index
ADX
Average
Average Modified Method
Average True Range

Balance Of Power

Bar Number
Bullish Engulfing Candle Pattern

CCI
cDate
Close Of D
Close Of Day
CMO-Chande Momentum Oscillator
CNDL Black Line
CNDL Body
CNDL Doji
CNDL Down Shadow
CNDL Engulfing
CNDL Gap Down
CNDL Gap Up
CNDL Harami
CNDL Height
CNDL High Body
CNDL Long Body
CNDL Low Body
CNDL Marubozu
CNDL Mid Body
CNDL Range
CNDL Short Body
CNDL Trend Down
CNDL Trend Up
CNDL Up Shadow
CNDL White Line
Confluence
cTime
cTxt

Daily MA
Derivative MA

Ease Of Movement
Elliott Trend
Elliott Wave Osc
EMA

FastD-Fast %D in Stochastics
FastK-Stochastic Fast %K
Find Bar Number

GenDEMA-Generalized Double Exponential Moving Average

Hammer-Hammer Candle Pattern
HeapSort Array
Hhv Bars-Highest High Value bars Ago
Highest
HighestSoFar
Highest Value
High Of D
Historical Volatility

IB-BackGrounf Color is Black
IntraDay Multipier

Keltner

LastBarOnChart
Linear Reg Line
Linear Reg Slope
Linear Reg Slope FC
LinearRegValue
Llv Bars
Lowest
LowestSoFar
Lowest Value
Low Of D

MA
MACD
MAFC
Minus DI
Minus DM

NRTR-Nick Rypock Trailing Reverce Function

Open Of D

Parabolic Sar
PrecentR
PivotBullBear
Plus DI
PlusDM

Rainbow F
Rate Of Change
Relative Volatility
RSI

SMA
Std Dev
Sum
Sum FC
Swing High
Swing High Bar
Swing High Point
Swing Index
Swing Low
Swing Low Bar
Swing Low Point
SWMA
Symmetrical Shark

T3 Average
T3xStdDev
Trend Analysis Index
TrueHigh
TrueLow
True Range
Typical Price

Up & Down Correlation

Volume Oscillator
Volatility
Volume Ratio

Wave345 Elliott
Weight Average
WRO-Widner Resistance Oscillator
WSO-Widner Support Oscillator

X Average
xLinearRegSlope-Exponential Linear Regression Slope
xStdDev-Exponential moving Standard Deviation

Zig Zag

Zig Zag

ZigZag函數顯著地高點和低點所連結之趨勢線是為了讓使用者連續到被看
之函數。

格式:
ZigZag( Price, RetraceMethod, Retrace, LineColor, LineWidth, DrawLine )
Price:輸入資料排列值
RetraceMethod:反轉方法之選擇
Retrace:輸入反轉值
LineColor:線之顏色值(常數,選擇)
LineWidth:線之寬度(常數,選擇)
DrawLine:是否畫線(True/False)

X Average

把指數移動平均使用在簡單移動平均線之情況下,為了減少所發生之股價
與移動平均線間之時差(time lag)問題來使用,還有MACD或指標等移動平
均在活用技術性指標中所經常使用移動平均之方法。

Volatility

尋找並給予波動性之值是使用者函數。

格式:
Volatility(Length)
Length:輸入期間

Typical Price

最高價、最低價、收盤價相加再除3所成之值。

True Range

Werrys和Ildo為了確認交易之範圍發表了True Range,把True Range使
用在移動平均函數並加以平闊的話可以變成Average True Range。

A:今日高價和今日低價之差異
B:昨日收盤價和今日高價差異之絕對值
C:前日收盤價和今日之低價差異之絕對值
在上面之A、B、C值中最大之值為True Range。

格式:TrueRange

Trend Analysis Index

買入流動者所確認之使用者函數。

格式:
TrendAnalysisIndex(MALength, HighLowLength)
MALength:輸入移動平均之期間
HighLowLength:為了尋找期間輸入期間中最高價和最低價

T3 Average

B變數(稱為所謂之“hot”)是制動之係數,把B提為0.7,在那以外更頻繁及
noise(錯誤之signal)為了使之緩和使用所推薦,傳統之移動平 均(簡單
移動平均,指數移動平均等)及為了做出相似T3平均,在期間變數中以2
來分割,這樣用傳統移動平均與相似所使用之noise可以變少之方法。

格式:
T3Average(Price, Length, hot)
Price:輸入資料排列上之值
Length:輸入期間
hot:調整b之變數(0.5~0.7)

SWMA

Sine-Weighted Moving Average之簡字是使用sine函數也是調整之移動平均。

格式:
SWMA(Price,Length)
Price:輸入資料排列上之值
Length:輸入期間

Swing Low Point

所指定之條件若滿足於SwingLowBar顯示出來並回覆為True,若不是的話
就回覆為False是使用者之函數。

格式:
SwingLowPoint(Price, Length)
Price:資料排列值
Length:輸入期間

Swing Low Bar

所指定之條件中滿足於Swing Low Bar時會出現之時候在現在之bar中,以
起點在之前做幾個bar,Swing Low Bar並不是形成有關Swing Low之價格,
而是在發生時點中,有關bar於今日bar中是以基準之方式回覆幾個以前bar
之個數,所稱之SwingLow Bar是指在一定bar中,前一日價格比第二日時
還要低所稱之。

格式:
SwingLowBar(Occur, Price, LeftStrength,Rightstrength, Length)
Period:期間內以第Occur次出顯示所發生Swing low bar從現在開始與在
峰之前發生並出現
Occur:序列順位(1=最近,2=以第2次最近)
Value:資料還有計算式
LeftStrength:swing low bar左側之峰個數
Rightstrength:swing low bar右側之峰個數
Period:swing low bar之期間
最近30個蜂之期間以第二次為最近之Swing high bar(左側3個,右側2
個)與發生在峰在之前若想求取的話,請輸入 Occur=1,Value=H,Leftstrength=3,Rightstrength=2,Period=3就可
以 了,SwingHighBar(1, H, 3, 2, 30)中Swing low bar從現在開始發生在第
五個前峰中之話就回覆為5,在指定之期間內沒有滿足於Swing low bar條
件時就回覆-1值。

Swing Low

在所指定之條件中滿足Swing Low Bar出現時求取在Swing Low Bar之值
,Swing Low Bar在一定之bar中之前日比第二日價格較低時所稱之。

格式:
SwingLow(Occur, Value, LeftStrength,RightStrength, Period)
Period:期間內以第Occur次出顯示所發生Swing low bar之Value值
Occur:序列順位(1=最近,2=以第2次最近)
Value:資料還有計算式
LeftStrength:swing low bar左側之峰個數
Rightstrength:swing low bar右側之峰個數
Period:swing low bar之期間

Swing High Bar是指在一定bar中之左側價格比右側中一定期間內之價格還
高所形成bar之意思,最近30個峰期間以3個左側中心為基準bar,右側之2
個高價比基 準 bar之高價更高若想求取最近Swing high bar之最高價之話
輸入Occur=1,Value=H,Leftstrength=3,Rightstrength=2,Period=3
就可以了,SwingHigh(1, H, 3, 2, 30)所指定之期間內沒有滿足
Swing high bar之條件情形下就回覆-1值。

Swing Index

SwingIndex求取兩個bar之間的開盤價、最高價、最低價以及收盤價之值來
做比較。

Swing Index下面之5種值以複合之方式來比較並計算上升日及下降日:
1‧收盤價和前日收盤價之間之差異。
2‧收盤價和開盤價之間之差異。
3‧最高價和前日收盤價之間之差異。
4‧今天最低價和前日收盤價之間之差異。
5‧前日收盤價-前日開盤價
SwingIndex表示100到-100之間的值。

格式:
SwingIndex
沒有參數,當上升時輸入漲停價比率及下跌時跌停價比率

計算公式:
K=下面A和B中之高值。
A=H2-C1
B=L2-C1

L=漲停價比率還有跌停價比率
R=選擇下面3個中之其中1個
若H2-C1最大的話
R=(H2-C1)-0.5(L2-C1)+0.25(C3-O1)
若L2-C1最大的話
R=(L2-C1)-0.5(H2-C1)+0.25(C3-O1)
若H2-L2最大的話
R=(H2-L2)+0.25(C3-O1)

Swing High Point

所指定之條件若滿足SwingHighBar就顯現若True的話就回覆,不是的話
False是使用者回覆之使用者函數。

格式:
SwingHighPoint(Price, Length)
Price:資料排列值
Length:輸入期間

Swing High Bar

Swing High Bar是指在一定bar中之左側價格比右側中一定期間內之價格
還高所形成bar之意思,最近30個峰期間以3個左側中心為基準bar,右側
之2個高價比基 準 bar之高價更高若想求取最近Swing high bar之最高價
之話輸入Occur=1,Value=H,Leftstrength=3,Rightstrength=2,
Period=3就可以了,SwingHigh(1, H, 3, 2, 30)所指定之期間內沒有滿足
Swing high bar之條件情形下就回覆-1值。

所指定之條件中滿足於Swing High Bar時會出現之時候在現在之bar中,
以起點在之前做幾個bar,Swing High Bar並不是形成有關Swing High之
價格,而是在發生時點中,有關bar於今日bar中是以基準之方式回覆幾
個以前bar之個數,所稱之Swing High Bar是指在一定bar中,前一日價格
比第二日時還要高時所稱之。

條件滿足SwingHighBar在出現時,現在之bar以起點來形成之前幾個bar

格式:
SwingHighBar(Occur, Value, LeftStrength,RightStrength, Period)
Period:期間內出現以第Occur次所發生Swing high bar從現在開始與之
前峰所發生並出現
Occur:排列順位(1=最近,2=以第二個方式最近)
Value:資料還有計算式
LeftStrength=swing high bar左側之峰個數
Rightstrength=swing high bar右側之峰個數
預尋找Period = swing high bar之期間

最近30個蜂之期間以第二次為最近之Swing high bar(左側3個,右側2
個)與發生在峰在之前若想求取的話,請輸入Occur=1,Value=H,Leftstrength=3,Rightstrength=2,Period=3就可以
了,SwingHighBar (1, H, 3, 2, 30)中Swing high bar從現在開始發生在
第五個前峰中之話就回覆為5,在指定之期間內沒有滿足於Swing high bar
條件時就回覆-1值。

Swing High

所指定之條件滿足Swing High Bar出現之時候求取在Swing High Bar之值,
Swing High Bar是指在一定之bar之價格中前一日比第二日高之時候所稱之。

格式:
SwingHigh(Occur, Value, LeftStrength,RightStrength, Period)
Period:期間內出現以第Occur次所發生Swing high bar之Value值
Occur:排列順位(1=最近,2=以第二個方式最近)
Value:資料還有計算式
LeftStrength=swing high bar左側之峰個數
Rightstrength=swing high bar右側之峰個數
預尋找Period = swing high bar之期間

Sum FC

雖在Sum函數相同時選擇其他之計算方式,以相同之意思來解釋使用者函
數。

格式:
SumFC( Price, Length)
Price:輸入所期待之資料排列值(收盤價、開盤價等)
Length:輸入期間

Sum

Data之合算值是所求取之使用者函數。

格式:
Sum(Price, Length)
Price:輸入所期待之資料排列值(收盤價、開盤價等)
Length:輸入期間

Std Dev

各個資料會告知與平均有多大之差異,所給予之分散量之平方根。
(一定期間之標準偏差)

格式:
StdDev( Price, Length )
Price:輸入所期待之資料排列值(收盤價、開盤價等)
Length:輸入期間

SMA

平滑移動平均(Smoothed Moving Average)具有顯示相同MA使用者函數
一樣的意思。指標在具體呈現計算法上之差異是存在。

格式:
SMA(Price, Length)
Price:輸入所期待之資料排列值(收盤價、開盤價等)
Length:輸入期間

RSI

從市場價格變動幅度當中,如市場價格之上升幅度,分析會有多少程度
變化,股價之上升趨勢情況就會有多強之上升,但是如果下跌以著會出
現多大之下跌百分比之指標,以客觀之數值來表現趨勢之強度之分析方
法。

格式:
RSI( Price, Length )
Price:表示價格
Length:表示期間

Relative Volatility

RelativeVolatility是為了測定變動性之方向而使用之,看到用指標字體出
現之買賣信號,從其他之指標中為了確認發生之買賣信號,而主要使用之。

格式:
RelativeVolatility(Length)
Length:輸入期間

注意:計算過程並非絕對之價格變化,如果除了測定價格變動之標準偏差
以外,就會與RSI相同。

Rate Of Change

RateOfChange今日股價和n日前股價之間之差異所顯示之指標。

格式:
RateOfChange(Price,Length)
Price:輸入資料排列值(收盤價,(H+C)/2等)
Length:輸入期間

Rainbow F

為了繪出Rainbow chart之更快計算之函數。

PlusDM

PlusDM乃是把今日之低價及昨日之低價相比較,以之間之差異,今日之
高價若高時,即是量(+)的值,若今日之高價比起昨日高價為低時,代表
是零值。

格式:
PlusDM

計算公式:
PlusDM=是(當日高價-前日高價>0)及
若為(當日高價-前日高價>前日低價-當日低價)的話
為(當日高價-前日高價)。
除此之外都為0。

Plus DI

把PlusDI(Plus Directional Indicator)是用
PlusDM(Plus Directional Movement)及TR(True Range)方式來區分。

格式:
PlusDI( Length )
Length:輸入期間

計算公式:
PlusDM=是(當日高價-前日高價>0)及
若為(當日高價-前日高價>前日低價-當日低價)的話
為(當日高價-前日高價)。
除此之外都為0。

PlusDI=PlusDMn/TRn
PlusDMn=PlusDM之n日移動平均
TRn=TrueRange之 n日 移動平均

Parabolic Sar

是按照J. Welles Wilder. Jr.所開發之指標,為了改善趨勢追蹤型指標中內
在之後行性,趨勢持續之情況,按照所經歷之時間,考慮加速變數在剛開
始會快速增加,會與趨勢之持續一起漸 漸以加快速度來變遷之一種指標。
是利用代替極端值中所使用之高價及低價之收盤價之指標。

格式:
ParabolicSaR( AF, MaxAF)
AF:加速變數(小數點表示到第2個位置為止,預設值為0.02)
MaxAF:加速變數之最大值(小數點表示到第2個位置為止,預設0.2)

Minus DM

在求MinusDI之前所求之使用者函數。

格式:
MinusDM

計算公式:
MinusDM=是(前日低價-當日低價>0和
若是(當日高價-前日高價<前日低價-當日低價)的話
是(前日低價-當日低價)
除此之外為0。

Minus DI

DMI指標構成MinusDM值是移動平均值。

格式:
MinusDI(Length)
Length:輸入期間

計算公式:
MinusDM=是(前日低價-當日低價>0和
若(當日高價-前日高價<前日低價-當日低價)的話
是(前日低價-當日低價)
除此之外為0。

TrueRange=MAX((高價-低價),
(前日收盤價-當日高價)之絕對值,
(前日收盤價-當日低價)之絕對值)

MinusDMn=MinusDM之n日移動平均

MAFC

指定期間之單純移動平均。

格式:
MAFC(Price, Length)
Price:輸入所期待之資料排列值(收盤價、最低價、交易量等)
Length:輸入期間

注意:FC為Fast Calculate之簡寫,消除FC所使用之方法是統一之。
只有計算方法之差異而已。

MACD

看到所謂股價之兩條移動平均線之間之關係為動量指標。即是如果短期移
動平均線與長期移動平均線漸漸遠離,利用再次使之可以漸漸靠近之性質
,去尋找出兩個移 動平均線之差異之最大時點之分析方法。MACD通常是
以12天與26天指數移動平均求得之。還有使用Signal Line之方式來求
MACD之9天指數移動平均。

格式:
MACD( Price, FastMA, SlowMA )
Price:表示價格
FastMA:輸入短期移動平均值
SlowMA:輸入長期移動平均值

計算公式 :
MACD=短期指數移動平均-長期指數移動平均
Signal:MACD n日指數移動平均

參照:
MACDOscillator=MACD-Signal Line

MA

期間之單純移動平均。

格式:
MA(Price, Length)
Price:輸入所期待之資料排列值(收盤價、最低價、交易量等)
Length:輸入期間

Low Of D

在日中圖表中可以表示過去圖表之低價是所給之函數。
60分間在圖表中可以計算最大84日間之日間移動平均。

格式:
LowOfD( DaysAgo, CloseArray )
DaysAgo:設定之前之收盤值
CloseArray:在日中圖表中指定所輸入前一日低價值群之陣列數字

注意:日間圖表以上(DataCompression為2以上)的話統一日間圖表值。

Lowest Value

LowestValue在所指定完成之期間內最低價格是所求取之函數。

格式:
LowestValue( Price, Length)
Price:輸入所期待之資料排列值
Length:輸入期間

Lowest

一定期間之最低值。

格式:
Lowest(Price, Length)
Price:輸入所期待之資料排列值(收盤價、開盤價等)
Length:輸入期間

Llv Bars

LlvBars在指定之期間當中最低之價格出現之時,是以現在之bar之起點
,從前幾個bar中,對於Lowest Low Bar之形成之地方,並非是
Lowest Low Value而是以今日之 bar為基準有關發生時點之bar,來回覆
前幾個bar之個數。

格式:
LlvBars(Price, Length)
Price:輸入最高價、收盤價等所找尋之資料排列值

Length = Highest High Bar的對象日數即指定時間
回覆Lowest Low Bar之bar和距離(Bar個數)值

Linear Reg Slope FC

所謂線性回歸(Linear Regression)就是以歷史數據,用來預測未來之價值
所使用之統計學之方法。用此方法可以畫出兩個地點之間之趨勢線就是
Linear Regression Line,此值因為具有平均價格之意義,LRL線外之價格
是過買數,而下面之價格也是過買之價格。LinearRegSlope是表示
Linear Regression Line之傾斜之指標,告知市場之過熱停滯之指標。

格式:
LinearRegSlopeFC( Price, Length)
Price:輸入資料之排列值(收盤價、開盤價)
Length:輸入期間

注意:FC為Fast Calculate之簡寫,消除FC所使用之方法是統一之。
只有計算方法之差異而已。

Linear Reg Slope

所謂線性回歸(Linear Regression)就是以歷史數據,用來預測未來之價值
所使用之統計學之方法。用此方法可以畫出兩個地點之間之趨勢線就是
Linear Regression Line,此值因為具有平均價格之意義,LRL線外之價
格是過買數,而下面之價格也是過買之價格。LinearRegSlope是表示
Linear Regression Line之傾斜之指標,告知市場之過熱停滯之指標。

格式:
LinearRegSlope( Price, Length)
Price:輸入所期待之資料排列值(收盤價、開盤價等)
Length:輸入期間

Linear Reg Line

所謂線性回歸(Linear Regression)就是使用歷史數據,用來預測未來之價
值所使用之統計學之方法。用此方法可以畫出兩個地點之間之趨勢線。

注意:利用趨勢線/text函數,在圖表中畫線。以使用者之函數或是其他
函數,於指標中輸入之函數為LinearRegValue之函數。

LastBarOn

現在若有bar最終日期值和最終時間值之話,True是回覆使用者函數
,以獨立方式無法使用,在約定語中使用其他條件之執行。

Historical Volatility

在選擇權中以歷史波動性來表示是使用者函數。

格式:
HistoricalVolatility(Price, Length)
Price:輸入收盤價,最高價等資料排列值
Length:輸入期間

High Of D

日中從圖表中可以表示所給予之函數是過去日間圖表之高價。
從60分間圖表中可以計算84期間之日間移動平均。

格式:
HighOfD( DaysAgo, CloseArray )
DaysAgo:設定以前高價值.
CloseArray:在日中圖表中指定輸入前一日收盤價值群之陣列數字

注意:日間圖表以上(DataCompression為2以上)之話,統一日間圖表之值。

Highest Value

在指定完成之期間內,求取最高之價格的函數。

格式:
HighestValue( Price, Length)
Price:輸入期待排序之值
Length:輸入期間

Highest

一定期間內之最高值。

格式:
Highest(Price,Length)
Price:輸入所找尋之值
Length:輸入期間

Hhv Bars

HhvBars在所指定之期間內顯示最高價格時,現在bar以起點方式作幾個
從前bar形成有關之Highest High Bar,在發生時點中相關bar,在今日bar
以基準方式回覆幾個從前bar之個數。

格式:
HhvBars(Price, Length)
Price:最高價,找尋收盤價等並輸入資料排序之值。
Length = Highest High Bar所求的對象日數即指定時間。

GenDEMA

DEMA是Double Exponential Moving Average之省略字,GenDema在這
當中以指數移動平均方式稱指數移動平均之差減。

格式:
GenDEMA(Price, Length, vFactor)
Price:輸入平闊化之值
Length:輸入期間
VFactor:輸入指數移動平均比重值

計算公式:
Value1 = EMA(Price, Length) * (1 + vFactor)
Value1在指數移動平均中請乘上加重值

Value2 = EMA( EMA(Price, Length), Length) * vFactor
value2在指數移動平均中所乘之值是比重值

GenDema = Value1 - Value2

Find Bar Number

在指定之日期和時間所求取正確之bar是使用者函數。

格式:
FindBarNumber( TgtDate, TgtTime)
TgtDate:指定日期.
TgtTime:指定時間.

FastK

Stochastic是George Lane所創造,現在之股價水準比起過去日程期間之股價水準是更高之情況,下跌之可能性會像那樣變多,比過去水準要低.所形成之情況有增加上升
之可能性,利用股價性質來預測個別個股指數或價格變動幅之指標。

格式:
FastK( HighValue, LowValue, CloseValue, Length)
HighValue:輸入完成期間之最高值
LowValue:輸入完成期間之最低值
CloseValue:輸入當日收盤價
Length: 預做平闊之期間

計算公式:
Stochastic是以下面之階段來計算.
%K之計算:標準期間一般上使用5日
    當日收盤價-選擇完成期間之最低價
%K = ───────────────────────────────── * 100
   選擇完成期間之最高價-選擇完成期間之最低價

FastD

Stochastic是George Lane所創造,現在之股價水準比起過去日程期間之股
價水準是更高之情況,下跌之可能性也會像那樣變多,比過去水準要低,
所形成之情況有增加上升之可能性,利用股價性質來預測個別個股指數或
價格變動幅之指標。

格式:
FastD( High, Low, Close, HighLowTerm)
High:選擇完成期間之最高價
Low:選擇完成期間之最低價
Close:當日收盤價
HighLowTerm:預做平闊之期間(預設為3)

計算公式:
Stochastic是下一個之階段計算
%K의計算:標準期間一般使用5日

    當日收盤價-選擇完成期間之最低價
%K = ───────────────────────────────── * 100
   選擇完成期間之最高價-選擇完成期間之最低價

%D計算:%K以平闊(滑)方式一般使用3日之期間,平闊化方式有很多種
或在當中有一個是和下面相同。

    %在計算式中之分子之3日合計
%D = ──────────────────── * 100
    %在計算式中之分母之3日合計

EMA

顯示指數移動平均的使用者函數

格式:
EMA( Price, Length )
Price:輸入欲做指數方式之平闊。
Length:輸入欲做平闊之時間

計算方式:
今日指數移動平均值=今日收盤價*EP+前一日之指數移動平均*(1-EP)
EP=指數係數(Exponential Percentage)=2/(期間+1)

Ease Of Movement

是出現交易量與價格變化關係所給之指標,就像是Equivolume從圖表中
可看到為了價格變化,就是可看到需要多少之交易量所給之指標,按照
W.Arms, Jr來開發Equivolume圖表根據Richard W.Arms, Jr所提案。

格式:
EaseOfMovement

Derivative MA

求助語準備中

Daily MA

從日中圖表內為了可以表示過去日間圖表之最高價、最低價收盤價之移動
平均所給之函數。
從60分間圖表中可以計算最大84日間之日間移動。

格式:
DailyMA( PriceNumber, MALength)
PriceNumber:會出現1:日高價,2:日低價,3:收盤價
MALength:輸入所求移動平均期間值。

cTxt

表示Text,無論是在圖表或是在結果視窗內所給之函數。

cTime

用文字來表示時間所給之函數。

格式:cTime (Time)
    Time:出現時間之約定語。

Confluence

表示從-9到9之值。從-9到-1出現弱勢,且從-0.9到0.9可以用黃色來表
示,而從1到9會出現強勢。

格式:
Confluence(Price, Harmonic)
Price:輸入欲排列之值
Harmonic:調節變化值之調整值。

Chande Momentum Oscillator (CMO)

CMO是依據Tushar Chande來開發的,且可以從欲尋找以純粹動量為首
要來努力。CMO雖然與RSI差不多,但還是有幾點不一樣。
上漲當日之資料與下跌當日資料可以用分子來計算動量。因為計算值急
劇變化,所以一定做指數平闊之使用。

格式:
CMO( Length )
Length:輸入期間值

計算公式:
收盤價>前一日收盤價稱為Value1為情況之值與
收盤價<前一日收盤價稱為Value2情況之值
具備之期間Value1與Value2單獨合併
CMO = ( Value1 - Value2 ) / ( Value1 + Value2 ) * 50 + 50

Close Of Day

與CloseOfD一樣之函數。
在日中圖表中,為了表示過去之日間圖表所給之函數。
從60分間圖表當中可以計算出84日間最大之日間移動平均。

格式:
CloseOfDay( DaysAgo )
DaysAgo:輸入參考前一日收盤價之常數。

Close Of D

在日中圖表中,為了表示過去之日間圖表所給之函數。
從60分間圖表當中可以計算出84日間之日間移動平均。

格式:
CloseOfD( DaysAgo, CloseArray )
DaysAgo:設定以前之收盤價。
CloseArray:指定日中圖表中輸入之前一日之收盤價之排列。

注意:如果日間圖表以上(DataCompression二以上),與日間圖表值統一。

cDate

圖表中可以用字元輸入日期之函數。基本之表現方式YYYY/MM/DD。

格式:
cDate( nDate )
nDate:如果輸入1000101以上,表示2000年以後,
輸入1000101以下,則表示1999年以下。

CCI

CCI表示平均股價與目前股價間的差值。即CCI指標的高點和相關股票比
較時,說明特別高的現在時點;顯示出指標的低點和比起有關股價的平
均價格的現時點要低

格式:
CCI(Length)
Length:出現之期間

計算公式:
M=(最高價+最低價+收盤價)/3
m:M之相關期間(n)單純移動平均值
d:M與m之間偏差絶對值單純移動平均值

Bar Number

回覆固有代碼之bar的函數。

格式:
BarNumber(num)
num:欲尋找之固有代碼

BarNum函數可以與 CurrentBar混合。CurrentBar僅適用在今日之bar,而
BarNum則包含之前所有之bar,所以未提及任何有關BarNum,现有之 情
況求得今日之bar,並欲求滿足特定之條件bar之代碼之情況,可以從語言
文字當中求得滿足條件bar之代碼值。

注意:為了將要求得5個以前bar之代碼值稱為BarNumber(5),雖然可以使
用,但是CurrentBar(5)就無法使用,僅能使用稱為CurrentBar-5。

範例:value1 = BarNumber(5) + 2
可能之預算,參照過去值之可能

Balance Of Power

BalanceOfPower在極端之水平中測定達成值中之賣出與買入勢力之強度
而使用之。

格式:
BalanceOfPower(Length)
Length:輸入期間

計算公式:
BalanceOfPower=(收盤價-開盤價)/(最高價-最低價)
用移動平均來做平闊。
使用者欲使用移動平均來作平闊(在SniperPro當中使用T3Average來做平闊)

Average True Range

ATR在Welles Wilder中表示為了測定創造股價之變動性的指標,一定要
與其他指標一起搭配使用。ATR是以前一日之收盤價為基礎,再與當日
之最高、低價位置相互比較,當日之股價以某種方向為趨勢會有多大之
變動,將會以數值、指標化來表示。

格式:
AverageTrueRange( Length )
Length:表示期間之長度

參照:
A:今日之高低價差
B:前一日收盤價與今日高價之差異之絕對值
C:前一日收盤價與今日低價之差異之絕對值
以上A、B、C值中最大之值即為True Range。

ATR是True Range之n日之移動平均值。(n之預設值為14)

Average Modified Method

使移動平均線對價格變動的反應更加敏感的方法,此方法會隨著股票變動
包含曲線化的要素。

格式:
AverageModifiedMethod(Price, Length)
Price:輸入需要平滑的價格(close, open等)
Length:輸入計算平均值的期間

Average

表示平均之函數。

格式:
Average(Price, Length)
Price:輸入欲求之平均值,如收盤價、交易量、未平倉合約等
Length:指定之平均期間

計算公式:
Average=Sum/n
Sum:欲求之期間值之總合
n:期間

ADX

因為ADX是與DMI指標是常一起使用的指標,所以在DMI指標中會出現
很多鋸齒之現象(棘輪效應:常看到頻繁之登落現象),更多使之單純
化,為了判別市場之流動有甚麼趨勢所開發之指標。

格式:
ADX(Length)
Length:輸入期間值

計算公式:
以Directional Movement Index之移動平均值所求。
+DM = 當日高價-前一日高價>0

若(當日高價-前一日高價>前一日低價-當日低價)的話
則為(當日高價-前一日高價),否則為0。

-DM = 前一日低價-當日低價>0
若(當日高價-前一日高價<前一日低價-當日低價)的話,
則為(前一日低價-當日低價),否則為0。
TR(True Range) = MAX((高價-低價),
(前一日收盤價-當日高價)之絕對值,
(前一日收盤價-當日低價)之絕對值
+DMn = (+DM)之n日移動平均
-DMn = (-DM)之n日移動平均
TRn = (TR)之n日移動平均
+DI = (+DMn) / (TRn)
-DI = (-DMn) / (TRn)
DX = [[(+DI)-(-DI)]之絕對值 / [(+DI) + (-DI)]] × 100
ADX = DX之n日移動平均

Accum Swing Index

累積SwingIndex值之函數。

格式:
AccumSwingIndex(Length)
Length:輸入累積期間之值。

Accumulation Distribution

股價(指數)的上漲通常造成交易量的擴大;股價(指數)的下跌通常造
成交易量的萎縮。在此理論基礎上,A/D Line的上漲表示密集
(Accumulation)的股價上漲,可以預先看到A/D Line的下跌表示分散
(Distribution)的股價下跌。

格式:Accumulation Distribution

計算公式:
總交易量加或減交易日的成交量。
1‧當收盤價越接近當日的最高價,則總交易量加上固定比率的成交量。
2‧當收盤價越接近當日的最低價,則總交易量減除固定比率的成交量。
3‧若收盤價等於最高價或最低價,則總交易量不必變動。

24 9月 2008

Google Adsense 申請通過

測試文章

慢慢的將廣告放到部落閣中...

看看能不能賺點費用

23 9月 2008

TS新增訊號(Signal)

這是一定要會的功能,學TS當然就是要學怎麼樣新增買賣訊號,
跟設計自己的買賣策略,步驟很簡單,學一次就會了!

新增的步驟如下:

在PowerEditor的視窗點選File -> New






點選Signal工作圖











Name:填入策略名稱

今天搞排版搞真久

排版還滿累的,幾乎將這幾篇已經發表過的文章
都拿出來重改,我想這樣子對大部分的人之後想找資料也會比較方便

還花滿多時間就是了,今天就差不多這樣吧

該是做點研究的事情了...

這禮拜又輪到我報告,還不知道要拿什麼東西出來報告勒

TS新增指標(PaintBar)

使用TS的時候常常會需要自行新增指標,或者新增自己的想法,來方
變驗證跟檢查,因此這項功能也滿常用到的。

新增的步驟如下:

在PowerEditor的視窗點選File -> New





點選PaintBar工作圖










Name:填入指標名稱

TS新增指標(Indicator)

使用TS的時候常常會需要自行新增指標,或者新增自己的想法,來方
變驗證跟檢查,因此這項功能也滿常用到的。

新增的步驟如下:


在PowerEditor的視窗點選File -> New






點選Indicator工作圖











Name:填入指標名稱

Acceleration/Deceleration(AC)

Acceleration/Deceleration(AC)-MetaQuotes

Calculation:

AC bar chart is the difference between the value of 5/34 of the driving
force bar chart and 5-period simple moving average, taken from that
bar chart.

AO = SMA(median price, 5)-SMA(median price, 34)
AC = AO-SMA(AO, 5)


Where:
SMA — Simple Moving Average;
AO — Awesome Oscillator.


這個好用的指標居然HTS和TS內建指標沒有支援,我們根據上面的公式
來新增指標:
  • 這公式要注意的地方是SMA指的是Simple Moving Average,這個
    就只是一般的平均值,並非HTS內建的SMA。
  • 此外我們另外設定,當AC值增加時後顯示紅色,AC值減少時顯示
    綠色。
  • 程式碼要記得按 Verify(F3)
  • 指標設定好時,要將指標換成柱狀顯示。

TS新增指標(Indicator)
線圖顯示換成柱狀顯示

TS程式碼
inputs: Length1(5), Length2(34), Length3(5);
vars: AO(0), AC(0), MedianPrice(0);

MedianPrice = (high + low)/2;
AO = Average(MedianPrice , Length1) - Average(MedianPrice , Length2);
AC = AO - Average(AO, Length3);

plot1(AC, "AC", Iff(AC>AC[1], Red, Green), Default,1);


HTS程式碼
parameters: Length1(5), Length2(34), Length3(5)
vars: AO(0), AC(0), MedianPrice(0)

MedianPrice = (high + low)/2
AO = Average(MedianPrice , Length1) - Average(MedianPrice , Length2)
AC = AO - Average(AO, Length3)

draw1(AC, "AC", Iff(AC>AC[1], Red, Green), Default,1)


此指標顯示圖形

Awesome Oscillator(AO)

Awesome Oscillator(AO)-MetaQuotes

Calculation:

AO is a 34-period simple moving average, plotted through the central
points of the bars (H+L)/2, and subtracted from the 5-period simple
moving average, graphed across the central points of the bars
(H+L)/2.

MEDIAN PRICE = (HIGH+LOW)/2

AO = SMA(MEDIAN PRICE, 5)-SMA(MEDIAN PRICE, 34)

Where:
SMA — Simple Moving Average.


這個好用的指標居然HTS和TS內建指標沒有支援,我們根據上面的公式
來新增指標:
  • 這公式要注意的地方是SMA指的是Simple Moving Average,這個
    就只是一般的平均值,並非HTS內建的SMA。
  • 此外我們另外設定,當AO值增加時後顯示紅色,AO值減少時顯示
    綠色。
  • 程式碼要記得按 Verify(F3)
  • 指標設定好時,要將指標換成柱狀顯示。

TS新增指標(Indicator)
線圖顯示換成柱狀顯示

TS程式碼
inputs: Length1(5), Length2(34);
vars: AO(0), MedianPrice(0);

MedianPrice = (high + low)/2;
AO = Average(MedianPrice , Length1) - Average(MedianPrice , Length2);

plot1(AO, "AO", Iff(AO>AO[1], Red, Green), Default,1);


HTS程式碼
parameters: Length1(5), Length2(34)
vars: AO(0), MedianPrice(0)

MedianPrice = (high + low)/2
AO = MA(MedianPrice , Length1) - MA(MedianPrice , Length2)

draw1(AO, "AO", Iff(AO>AO[1], Red, Green), Default,1)


此指標顯示圖形

Exponential Moving Average(EMA)

Exponential Moving Average(EMA)-MetaQuotes
Exponential Moving Average(EMA)-DanielsTrading

Calculation:

Exponential Moving Average (EMA)
Exponentially smoothed moving average is calculated by adding the moving
average of a certain share of the current closing price to the previous value.
With exponentially smoothed moving averages, the latest prices are of more
value. P-percent exponential moving average will look like:

EMA = (CLOSE(i)*P)+(EMA(i-1)*(100-P))

Where:
CLOSE(i) — the price of the current period closure;
EMA(i-1) — Exponentially Moving Average of the previous period closure;
P — the percentage of using the price value.

這指標在TS內部並無內建指標,但是HTS內建有,因此在轉部份HTS
程式到TS上的時候會需要自己新增自訂函數,在這裡就直接把這部
份的程式碼直接轉成TS,使用者自己加入就可以了。

  • 函數名稱取名自定,或者同HTS內建名稱:EMA
  • 設定完後要記得按Verify(F3)

TS新增自訂函數

TS程式碼(修改HTS源碼)
Inputs: Price(Numeric), Length(Numeric);
Variables: Factor(0);

If CurrentBar = 1 Then begin
   EMA = Price;
end
Else begin
   If CurrentBar <= Length -1 Then begin     
       Factor = 2 / (CurrentBar + 1);     
       EMA = Price * Factor + (1 - Factor) * EMA[1];  
   end  
   Else begin     
       Factor = 2 / (Length + 1);                
       EMA = Factor * Price + (1 - Factor) * EMA[1];  
   end;
End;

22 9月 2008

Smoothed Moving Average(SMMA)

Smoothed Moving Average(SMMA)-MetaQuotes
Smoothed Moving Average(SMA)-DanielsTrading

Calculation:

Smoothed Moving Average (SMMA)
The first value of this smoothed moving average is calculated as the
simple moving average (SMA):

SUM1 = SUM(CLOSE, N)

SMMA1 = SUM1/N

The second and succeeding moving averages are calculated according
to this formula:

SMMA(i) = (SUM1-SMMA1+CLOSE(i))/N


Where:
SUM1 — is the total sum of closing prices for N periods;
SMMA1 — is the smoothed moving average of the first bar;
SMMA(i) — is the smoothed moving average of the current bar
(except for the first one);
CLOSE(i) — is the current closing price;
N — is the smoothing period.

這指標在TS內部並無內建指標,但是HTS內建有(SMA),因此在轉
部份HTS程式到TS上的時候會需要自己新增自訂函數,在這裡就直
接把這部份的程式碼直接轉成TS,使用者自己加入就可以了。

  • 函數名稱取名自定,或者同HTS內建名稱:SMA
  • 設定完後要記得按Verify(F3)
TS新增自訂函數

TS程式碼(修改HTS源碼)
Inputs: Price(Numeric), Length(Numeric);
Variables: Summation(0), Counter(0);

If CurrentBar = 1 Then begin
   Summation = 0;
   For Counter = 0 To Length - 1 begin
       Summation = Summation + Price[Counter];
   End;
   SMA = Summation / Length;
end
Else begin
   Summation = Summation[1] - SMA[1] + Price;
   SMA = Summation / Length;
End;

TS新增自訂函數

雖然說TS根HTS之間可以互轉,但是有部分的函數彼此是不相同的,
因此在使用某些指標或函數的時候可能需要自己新增。

新增的步驟如下:


在PowerEditor的視窗點選File -> New






點選Function工作圖











Name:填入函數名稱

設定回傳型態
Return type:
Numeric:數值
TrueFalse:T/F
String(Text):字串

設定好後鍵入OK

線圖顯示換成柱狀顯示

在使用某些指標,或者自己新增指標的時候會發現本來想用柱狀
顯示,但是預設居然跑出來是線圖,雖然對數值分析來說是沒什
麼差別,但是在觀看上的時候總是會有些許的不方便。

在這裡我們只需要修改顯示型態就可以換成柱狀表示,在這裡的
範例我們拿MACD指標中的MADiff來看設定

HTS 設定圖示

TS 設定圖示


設定完後就可以看到下圖的柱狀顯示

21 9月 2008

用量來判斷方向

剛剛在日上發發發看到這篇文章
"用量來判斷方向--附 HTS & TS 的程式原碼"

不管您用 5分k 或是用 15 或 30 分 k,每根 k 都會有成交量,所以技術指
標就有分成價的或是以量為基礎。
本指標就是以量為基礎的技術指標。

這觀念很簡單,就是找出某段區間成交量大量的K線,以這根K的高低
點來當做支撐與壓力分界線,算是一個滿實用的指標。

TS新增指標(Indicator)
指標不會跟著股價連動?

TS程式碼:
inputs: Length(20) ;
vars: index(0), HL(0), LL(0), value(0);

value = highest(volume,Length);

for index = 0 to Length begin
   if volume[index] = value then begin
       LL = low[index];
       HL = high[index];
   end;
end;

plot1(LL[1], "Low Line");
plot2(HL[1], "High Line");


HTS程式碼:
parameter: Length(20)
vars: index(0), HL(0), LL(0), value(0)

value = highest(volume,Length)

for index = 0 to Length
   if volume[index] = value then
       LL = low[index]
       HL = high[index]
   end if
end for

draw1(LL[1], "Low Line")
draw2(HL[1], "High Line")

此指標顯示圖形

TS更改K線型態

匯入歷史資料到TS中,會發現顯示的K線型態怪怪的,因為TS預設的K線
是美國線,美國線就是基本的OHLC Bar,由高低點畫一直線後,左邊標
示出Open,右邊標示Close,但是這種K線型態根平常接觸的不太一樣,
因此在設立要設定成習慣的Candlestick(蠟燭線):



載入歷史資料後,選 Format -> Symbol









選定第三個分頁 Style,將
形態設置如下:

Bar type:Candlestick

由於全世界只有台灣上漲用
紅色,下跌用綠色,因此顏
色部分我們也做修改:

Filled:
Hollow:

將Use as symbol default
勾選之後就不用重複設定




設定前,預設K線型態

設定後,平常接觸的K線型態

TS歷史資料匯入

安裝完 TS 之後,在測試策略之前,當然是需要把歷史資料匯入TS內;
這個時候,根據手頭中的歷史數據,來選擇不同的匯入方式,在這裡介
紹其中一種匯入歷史資料的方法。

這裡的歷史資料是一般比較容易取得或自己收集的Ascii檔,這裡細分成
四個步驟:
  1. 打開 Omega Research ProSuite
  2. 選定畫圖功能
  3. 設定資料來源
  4. 設定顯示型態

具體說明如下:

Step 1. 打開 Omega Research ProSuite

打開這套軟體後,會出現設
定視窗,選擇Create a new
workspace










Step 2. 選定畫圖功能

選擇圖示,利用這功能來畫出K線圖




Step 3. 設定資料來源


第一次進入設定視窗會什麼都沒顯示
這個時候我們需要導入資料源給TS

這步驟設定好後之後就不用重複設定

選 3rd Party Directory Symbol List
點 New List..新增資料源列表












由於我們的資料源是Ascii,在這裡
選定資料型態為Ascii,然後自己取
一個方便辨識的名字,在這裡的例
子是取名FITX

選定好後按下OK









利用 Add...這功能鍵,將資
料源的路徑設定好,由下圖
列表中來選定資料檔案。

選定好後按下OK











這是要載入的資料
,可以觀察出資料
的格式。





確定好資料格式後,選定適
當的資料格式,與時間格式

選定好後按下OK




接下來要設定資料的代表數
值、時間範圍和每點價值。

Display Value:As Is
Start:08:45am
Stop:01:45pm
Value:200(大台)

選定好後按下OK





設定好上面步驟後,可以發現列表
中已經有剛剛新增好的資料來源,
之後重複開啟,除非要再次新增或
者更改路徑,否則不用重複設定

選定要顯示的資料來源

選定好後按下Plot










Step 4. 設定顯示型態

最後一個步驟會跳出要設定格式
的視窗,Data range 部份設定要
顯示的時間範圍,Compression
設定要顯示的K線型態。

Intra-day:分鐘線
Daily:日線
Weekly:週線
Monthly:月線









成功匯入歷史資料於TS