根據 "胡立陽的地心引力線說法"
去寫的工具:
使用方法
台灣50那裡買?(How to Invest in 0050)
範例
Source Code
胡立陽從電腦統計數據中發現,「30日移動平均線+72日移動平均線」的「平均數」正是股市地心引力的所在,倘若大盤漲幅超過10%,指數就會乖乖的被吸下來,而跌幅超過10%,指數也會被莫名的吸上去,大盤走勢彷彿跟著這條地心引力線上上下下,準確率高達9成以上。
雖說股市受到地心引力很有規律的上下走動,然而,這世界上,總會有令人意想不到的事情發生,難道,股市都一定按照地心引力來走,都不會有令人驚奇的意外發生嗎?胡立陽說,這樣的情況,的確偶爾發生,他提醒投資人,若大盤遠遠超過了地心引力線上方達10個交易日以上,這可是大牛市的先期預兆,投資人應順勢而為,從起漲點買進,反之,若大盤跌落在地心引力線下方,股市則由多轉空,投資人宜謹慎操作。
使用方法
- 修改 StockGravity.bat 裡面的股票代號。只要 Yhoo! Finance 有的,都可以抓。像目前台灣 ETF 就沒有。(Google Finance 尚未支援下載台股)
- 產生的 HTML 就是上面所描述的圖。抓取的日期是 "今天" 起往前推約兩年。
- 請用 Chrome 或 FireFox 去開產生出來的 html,IE 怪怪的,不想理他。
高股息,低股價波動率的股票比較優。股價波動劇烈或要短期進出股票的,本方法不適合!
- 注意趨勢,要順勢而為,不是跌破就要進場!
- 買賣點請參考 web 上的說明。
- 長期持有
台灣50那裡買?(How to Invest in 0050)
範例
當初發現 172x 的忠嘆是不錯的標的:股息高、股價波動小、又有前景、整體趨勢向上;於是決定納入小孩的教育基金持股。從九十塊起,每個月買個 3000 ~ 5000 塊零股。
台灣十年公債利率大約是 1.5 ~ 2 %,CPI 大約是 1.5% ~ 2%,所以複合的 4% 我當成是通貨膨脹率,股息獲利最少要 5%,所以如果以 6 塊的股息來算,120 塊以後我就停止買。後來股價突然來到 170,遠遠超過心臟所能負荷的程度,所以就賣出 (其實 160 時就想賣了,只是一忙就忘了)。最近又跌到 120 左右,可是趨勢向下,所以謹慎觀之,只小買 100 股。
Source Code
#!/usr/bin/python # -*- coding: utf-8 -*- import os import sys import string import getopt from datetime import date import urllib HtmlName = 'StockGravity.html' class StockGravity: ''' Fetching historical data from Yahoo and Using Google Visualization: Annotated timeline to draw. ''' def __init__(self, stockId = '4123.TWO'): today = date.today() today_y = today.year today_m = today.month today_d = today.day csv = 'http://ichart.finance.yahoo.com/table.csv?s=' + str(stockId) csv += '&a=' + str(today.month) csv += '&b=' + str(today.day) csv += '&c=' + str(today.year-2) csv += '&d=' + str(today.month) csv += '&e=' + str(today.day) csv += '&f=' + str(today.year) urlData = urllib.urlopen(csv).read() if urlData[0] == '<': print "Not Found" return # # Format is Date, Open, High, Low,Close,Volume,Adj Close # 2011-09-28,34.60,34.60,33.35,33.60, 54000,33.60 # 2011-09-27,34.00,34.45,33.00,33.20, 71000,33.20 # with '\n' as line-terminator urlData = string.replace(urlData, '\n', ',') urlData = string.split(urlData, ',') # last '\n' is now ',' urlData = urlData[:(len(urlData) - 1)] # # We only need [Date, Close, Avg30, Avg70, Avg30_70_2, Avg50, Avg50 * 0.9, Avg50 * 1.1] # # Skip Date,Open,High,Low,Close,Volume,Adj Close idx = 7 stockDate = [] stockClose = [] while idx < len(urlData): stockDate.append(urlData[idx]); stockClose.append(float(urlData[idx + 6])); idx += 7 stockAvg30 = [] for i in range(0, len(stockDate) - 30): v = sum(stockClose[i:i+30]) / 30 stockAvg30.append(v) stockAvg70 = [] for i in range(0, len(stockDate) - 70): v = sum(stockClose[i:i+70]) / 70 stockAvg70.append(v) stockAvg = [] for i in range(0, len(stockAvg70)): v = (stockAvg30[i] + stockAvg70[i]) / 2 stockAvg.append(v) f = open(HtmlName, 'w') f.write(''' ''') s = ' StockID: ' + str(stockId) f.write(s) f.write('''''') f.close() print 'Showed on '+HtmlName+'.\n' def __del__(self): pass def main(argv=None): if argv is None: argv = sys.argv try: try: (opts, args) = getopt.getopt(argv[1:], 'h', ['help']) except getopt.error, msg: print >> sys.stderr, 'Usage: ' + argv[0] + ' Stock-ID' if len(args) == 1: sg = StockGravity(args[0]) else: print >> sys.stderr, 'Usage: ' + argv[0] + ' Stock-ID' except Uerr: print >> sys.stderr, 'Usage: ' + argv[0] + ' Stock-ID' return 0 if __name__ == '__main__': sys.exit(main())
rem StockGravity.bat @echo off SET PATH=%PATH%;%cd%\bin rem Stock number e.g. "^TWII", "3019.TW" or "8069.TWO" SET STOCK="^TWII" "1723.TW" "2002.TW" "2412.TW" "8069.TWO" if not exist html ( mkdir html ) for %%s in (%STOCK%) do ( echo Fetching %%s... fetchCSV %%s move /y StockGravity.html html\%%s.html ) pause
沒有留言:
張貼留言