最初玩股票的時候,有幾次懊惱的經驗,我總是習慣關注未起漲股,並期待他追上其他股票,然後在看到大單敲進時腎上腺素也跟著噴出,一檔接著一檔的往上攻,再考慮下去又過了四五檔,就在那個當下,一個短暫的暫態,貪婪的神經取得了大腦的控制權,顧不了這麼多了!大漲在即!快買!
2013年10月30日 星期三
2013年8月20日 星期二
金融市場的致富之路
這是最近寫給我戰友的一封信。從08年金融海嘯前夕踏入這悲慘市場,已經有六年了,今年就是當初暗地立誓給自己的最後通牒期限,失敗了就老老實實夾著尾巴回職場賣命吧,這是我最不情願的退路了,雖然是貪婪的出發點,但我就是想要自由。
為了這背水一戰隔年我就離開了職場,並頃全力開發研究工具,大概沒人能體會頃全力有多瘋狂吧,如果我說夢境裡有個迴路偵測出程式寫錯,然後我就像做惡夢般驚醒彈起來修改程式你信嗎?用走火入魔來形容應該也是剛好而已!研究的後期已經不再著重開發工具了,而是在交易邏輯,那更是會讓人驚醒的惡夢,有次誤以為自己找到了通往天堂的門卡,一覺醒來就以光速重摔地獄,心情低落更是難以言喻。
其實08年後我就沒再交易了,也不再看盤,只是偶爾關心一下收盤或趨勢,我的壓力與恐懼也完全不在盤勢上,我約束自己如果沒有找到穩定的方法就永遠不再下單,但坐吃山空好一陣子著實讓我煩惱最後通牒的日子無情的逼近。 從前常常會想問金融交易到底有沒有聖杯,都已經付出到這樣的地步了...還不夠嗎!?
...直到一個輾轉的緣份,讓我看到了十年之後...這一眼十年突然就讓我豁達了,甚至提早夾著尾巴回到了職場...這封信只有一個公式外加一些廢話。
財富 = 本金 x ((報酬率?風險) ^ 時間)
如果你的研究也遇到了瓶頸,試著細細品嚐這個公式吧!
為了這背水一戰隔年我就離開了職場,並頃全力開發研究工具,大概沒人能體會頃全力有多瘋狂吧,如果我說夢境裡有個迴路偵測出程式寫錯,然後我就像做惡夢般驚醒彈起來修改程式你信嗎?用走火入魔來形容應該也是剛好而已!研究的後期已經不再著重開發工具了,而是在交易邏輯,那更是會讓人驚醒的惡夢,有次誤以為自己找到了通往天堂的門卡,一覺醒來就以光速重摔地獄,心情低落更是難以言喻。
其實08年後我就沒再交易了,也不再看盤,只是偶爾關心一下收盤或趨勢,我的壓力與恐懼也完全不在盤勢上,我約束自己如果沒有找到穩定的方法就永遠不再下單,但坐吃山空好一陣子著實讓我煩惱最後通牒的日子無情的逼近。 從前常常會想問金融交易到底有沒有聖杯,都已經付出到這樣的地步了...還不夠嗎!?
...直到一個輾轉的緣份,讓我看到了十年之後...這一眼十年突然就讓我豁達了,甚至提早夾著尾巴回到了職場...這封信只有一個公式外加一些廢話。
財富 = 本金 x ((報酬率?風險) ^ 時間)
如果你的研究也遇到了瓶頸,試著細細品嚐這個公式吧!
2013年8月19日 星期一
腳本運作的流程
AC裡腳本的執行流程與一般Java程式的執行流程不同,Java程式語言的進入點是一個static的main函數,進入後流程的控制權就完全交給程式設計師了,一旦離開main函數,程式完全消滅,但AC的腳本不是這樣。
在AC裡執行Java腳本時,是以事件驅動的方式執行,大流程是由事件觸發,小流程是由設計師控制。所謂事件,舉例來說,像是腳本一開始被執行時處在尚未初始化的狀態,AC就會呼叫腳本裡的init函數(大流程),執行開發者的初始化流程,開發者可以趁機做一些變數的宣告或初始化的動作(小流程),當離開init函數後程式也不會結束,只是靜靜的等待下個事件的到來,下個事件很可能是'發生新的報價'或'游標移動到某根K棒'。以事件觸發的方式來驅動流程,可以很容易的區別每個函數的工作,我們先簡單看看常用的三個事件函數:
---
通知腳本可以開始執行初始化流程。
通知腳本有新的報價資料出現(報價可能來自歷史資料,或即時接收到的報價),這時候可以做一些指標的運算,或數值的分析等。
通知腳本某種週期結束(EO事件),像是EOB(1根K棒結束)、EOD(一天結束)、EOH(歷史報價結束)等。此時就可以做一對應的工作,例如當歷史報價結束時(EOH),可以檢查選股邏輯是否成立等。
---
另外還有些比較不常用上...
通知腳本有顯示參數選單的需求,這時後可以決定要輸出什麼樣的選單給使用者看。
通知腳本滑鼠游標移動到某根K棒上,這時候可以更新圖格標題顯示的時間或報價訊息。
在AC裡執行Java腳本時,是以事件驅動的方式執行,大流程是由事件觸發,小流程是由設計師控制。所謂事件,舉例來說,像是腳本一開始被執行時處在尚未初始化的狀態,AC就會呼叫腳本裡的init函數(大流程),執行開發者的初始化流程,開發者可以趁機做一些變數的宣告或初始化的動作(小流程),當離開init函數後程式也不會結束,只是靜靜的等待下個事件的到來,下個事件很可能是'發生新的報價'或'游標移動到某根K棒'。以事件觸發的方式來驅動流程,可以很容易的區別每個函數的工作,我們先簡單看看常用的三個事件函數:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | public class MyScript extends ScriptCore { public void init() { } public void run() { } public void endOfPeriod(int type) { } } |
---
public void init()
public void run()
public void endOfPeriod(int type)
---
另外還有些比較不常用上...
public void eventShowInput()
public void eventHilightMovin(int t)
腳本的基礎框架
原始
public class MyScript是主腳本固定的開頭,也就是一定要命名為MyScript,並且繼承(extends)ScriptCore,這樣就已經是一個可以被執行的腳本了。ScriptCore就是腳本核心,是任何MyScript一定要繼承的對象。
1 2 3 4 5 6 | public class MyScript extends ScriptCore { public void init() { } } |
public class MyScript是主腳本固定的開頭,也就是一定要命名為MyScript,並且繼承(extends)ScriptCore,這樣就已經是一個可以被執行的腳本了。ScriptCore就是腳本核心,是任何MyScript一定要繼承的對象。
2013年7月16日 星期二
2013年7月9日 星期二
如何建立第一個腳本
1.) 開啟AC。
2.) 到AC的script\chart\目錄下新增一個名為"我的第一個腳本.java"的文字文件(不要留.txt)。
3.) 回到AC,在圖格上點擊滑鼠右鍵叫出選單,並選到>更換腳本>我的第一個腳本。
2.) 到AC的script\chart\目錄下新增一個名為"我的第一個腳本.java"的文字文件(不要留.txt)。
3.) 回到AC,在圖格上點擊滑鼠右鍵叫出選單,並選到>更換腳本>我的第一個腳本。
2013年7月1日 星期一
Java程式語言入門 - C與JAVA的轉換
Java其實很簡單~又很好用...但許多人不這麼認為,以我過來人的解讀,是物件導向四個字太艱深了,其實一腳踏進去後才知道水並沒有那麼深。本篇我試著用較簡短白話的方式敘述兩者差異與轉換,不過我並不是做學問的人,用字遣辭難免不夠專業,還請包含!
訂閱:
文章 (Atom)