2015-08-28

長年租屋591奮戰實錄

591收費規則:房東付錢可以貼30天廣告,到期會下架,然後可以再重新刊登一次。付一次錢可以貼60天。但是60天沒租掉,等於浪費兩個月房租。正常行 情不可能拖到兩個月沒人租。

所以591上面的房屋都高於行情,因為正常租金1~2星期就不見了。

正確使用591的方法就是每天上去看,有喜歡的先存下來。假設有間房一星期消失。就代表是正常租金。可以用這點來抓一個地方行情。

以前沒有網路只能用紙本廣告貼在路邊。所以才要花錢請仲介幫忙跑腿。有網路之後,照理講仲介會死光。但是台灣市場很扭曲。就是有很多人打死不退。

房東貼上591,實際上電話來的90%都是仲介。每個仲介都拼命盧。到最後房東會屈服。也會丟給仲介。

仲介收費是跟房東抽半個月,跟房客也抽半個月。反正沒成交不用付錢,屋主也不會痛,自己貼591,然後再丟給三家不同仲介幫忙宣傳。

所以591上面一大票仲介,重複刊登的房屋很多。而且這些仲介都很懶。不一定會換照片。有時候你看到兩間房照片一樣,就是這麼回事。遇到這種情況就直接找 屋主廣告,不需要浪費時間去問仲介。

591有三種身分,屋主/代理人/仲介。

如果房東不想被仲介煩,房東可以選自己身分是代理人,但是寫明不收服務費。騙人說我自己也是仲介。

但是這招大家都知道了,所以很多仲介會寫自己是代理人,網頁不會寫明要收服務費。也不會寫不收。就是故意打迷糊仗。等到了現場才口頭說要服務費。所以你看 文字敘述,其實就可以猜到這個人是真房東,還是仲介。

假設你是新莊搬到板橋,距離夠近。我是建議用傳統方法,機車趴趴走。每個大廈都進去問警衛。屋主會在自家大廈一樓貼廣告。這種方式保證可以避開仲介。
但是紙本廣告缺點就是沒照片,只能電話給屋主東問西問。

假設你是高雄搬到台北,那就沒得選,只能被仲介抽一筆。

591先看一陣子,抓一下當地行情。

一間一間過濾,把真房東的廣告找出來。(通常100間會變成20間。打電話約時間。

隨便找三個仲介,講明自己的預算要求,每個仲介推薦三間。總共九間。 (但是仲介會有重複的房。實際上可能只看到五間房。)

全部看完之後,挑一兩間開始殺價,努力殺用力殺。當然最後簽約一定是房東房客仲介三人一起簽。如果仲介不讓你見房東,那就不租。

其實台灣也有正派經營的仲介。玩法是先收錢(通常是幾千元),然後不限間數看到爽。仲介幫你找到房東,自己跟房東談。

這種仲介的目的是幫你濾掉其他仲介。那因為房租漲跌跟仲介無關。不用擔心仲介耍花招。

2015-08-23

蘋果吃掉93%利潤,HTC裁員15%。手機產業究竟發生什麼事?

全世界最賺的手機商,大家閉上眼睛瞎猜都知道是Apple。但是Apple卻獨拿93%,會不會太超過?


台灣前任股王宏達電(2498)虧的慘兮兮,但同時蘋果卻可賺走手機業93%利潤。手機界究竟發生了什麼天翻地覆的大變化?

我們先來看宏達電HTC的血淚史。HTC靠著Android發跡,我們從第一支Android手機2008年看起。
年份
稅後淨利(新台幣)
2008
286.4億
2009
226.1億
2010
395.3億
2011
619.8億
2012
167.8億
2013
-13.24億
2014
14.83億
2015第一季
3.6億
2015第二季 -80.34億

可以看出HTC真的風光過,2011全盛時期數錢數到抽筋!但是業績衰退的速度比跳樓還快。僅僅3~4年時間,就開始在損益兩平之間掙扎。2015虧損持 續擴大,看不到曙光。

同時間蘋果到底賺得多爽?翻到兩個英文網站。
http://fortune.com/2015/02/09/canaccord-apple-took-home-93-of-mobile-profits-last-quarter/
http://www.wsj.com/articles/apples-share-of-smartphone-industrys-profits-soars-to-92-1436727458

根據網頁貼出的資訊:

2014第四季蘋果大賺194億美金,佔掉整個手機業93%利潤。細節如下:
公司(只計算手機/平板業務) 2014Q4損益(百萬美元)
佔手機市場的百分比
蘋果
19449
93%
微軟
-414
-2%
三星 1823
9%
黑莓
16
0%
聯想
-89
0%
Sony
76
0%
LG 63
0%
HTC
6
0%

事實上不是真的0%,而是比率太低,大概是0.0000000000001%,所以約略是0。當然這是因為iPhone 6無敵狂賣,才有這種驚人的數字。蘋果不可能每季都這麼賺。

那我們看一下究竟賣出了幾隻。根據IDC公佈資料。
作業系統
2014全年賣出幾隻?(單位:百萬支)
市占率
Android
1059.3
81.5%
iOS
192.7
14.8%
Windows Phone
34.9
2.7%
黑莓
5.8
0.4%
其他
7.7
0.6%
合計
1300.4
100%

也就是說iphone數量不多,但是每一支的利潤都高的嚇人,事實上三星賣出的手機數量就已經比蘋果多了。Android已經變成削價競爭,一隻賺個兩三 毛,甚至賠錢也要賣。因為手機放在倉庫也要佔用空間,拖很久賣不掉就非得降價,不賣虧更多。

在此要先解說一下Android/iOS兩大陣營的生態。

iOS:Apple製作iphone,賣出iphone可賺錢。同時到Apple商店付費下載App,金額必須讓Apple抽30%。也就是說0.99美 元買App,Apple可拿0.297元。

Android:google負責撰寫Android作業系統,但不製作手機。Android免費給全世界使用。連到google play買App,一樣被google抽30%。

也就是說Apple可以賺兩種錢,手機本身賺錢,Apple商店再賺一次。所以才創下這種可怕的利潤。

事實上蘋果主力其實是賣硬體賺錢,不計算商店抽成,不計算iTune。iPhone/iPad/Mac加起來佔掉蘋果利潤90%。

Google營收是靠網路廣告,利潤95%以上都是網路廣告。2015第二季賺進39.3億美元。(輸給蘋果,遜掉了!)
但是google財報裡面沒有細分出Android廣告,免費贈送Android這個策略究竟賺多少錢無法得知。但不管怎樣,Android免費開放給全 世界,帶動大家用手機上網,看手機廣告的人會變多。對google當然有幫助。也因為免費策略,Android佔有率才能達到驚人的八成。

照這樣來看商店抽30%對兩家龍頭來講都是蠅頭小利,不痛不癢,甚至不抽成也可以。

Android最大的優點就是免費,最大的缺點也是免費。因為全世界都可以做,現階段2015全世界有出Android手機的廠商約1000家。早就過度 競爭血流成河。所以僅僅只有一家三星賺得不錯。而且三星賣掉的手機最多支,結果也只是小賺而已。

Android陣營硬體規格就是比較好,結果價錢還砍的很低。iOS陣營硬體用的比較差,價錢刻意拉很高,結果還能賣。那是因為iOS不開放,就只有蘋果 自己做。想用iOS就是沒得選,要給蘋果賺。最好笑的一點,因為軟硬體是蘋果自己整合,軟體可以配合硬體,硬體可以配合軟體。所以iphone用便宜晶 片,滑起來還是很順。

那因為Android軟硬體是不同廠商做,加上google不對手機商把關,如果買到爛牌子的Android手機,經常會出現操作很頓的問題。

兩大龍頭採用的是完全相反的策略。但是發福都發的跟豬頭一樣。結果那1000家手機廠商只能撿地上麵包屑,真慘。

也就是說HTC大賠不是因為HTC特別爛,而是大家都在賠。HTC大賺不是因為HTC特別強,而是因為HTC最早進入Android圈,賺到初期的黃金壟 斷期,壓寶成功賭到一波。

2015-08-22

作多ETF/做空ETF如何追蹤指數

以台灣最流行的0050舉例。

這檔ETF是元大寶來投信公司跟民眾募資,然後元大寶來買50支股票。就是照抄台灣政府公佈的台灣50指數,而且每檔股票買的股數比例與台灣50指數一 致。那因為台灣50指數每年3,6,9,12月政府才會跟動成份,所以元大寶來不會每天操作股票,就是跟著政府公佈的內容換股。

0050當初發行價格是39.68元,當然就跟股票一樣,買進之後隨時可以賣。買賣金額就看雙方自由喊價。

既然是雙方自由喊價,常理來判斷,0050跟大盤不可能一致,因為很多投資人都是盲目的。可能會閉著眼睛亂買亂賣。

但實際上法律規定,0050不是只能花錢買,你可以用股票去換0050。政府會公告,0050裡面,包含台績電59321股,鴻海31421 股.........。所以你可以自己去買這些股票,50檔全部集完之後,用這些股票去換50萬股的0050。當然反過來做也可以,我手上有50萬股 0050,我要換成實際的50檔股票。

你可以算一下這50萬股買下去要幾千萬台幣。實際上都是法人/銀行/公司才有財力可以買。

聰明的你一定想到了!
如果今天大盤價格高,0050低,那法人就會買0050,然後要求換成股票。
如果今天大盤價格低,0050高,那法人就會把手上的股票,換成0050。

這個動作法人隨時隨地都在做,但是因為轉換動作本身也要手續費,所以兩邊價差夠大,法人才會進行轉換。實務上應該是用電腦自己判斷,不需要人力介入。所以 0050跟大盤連動有98%相同,還是有細微的差異。

做空型0050 ETF,最單純的想法就是放空0050,但是有問題
1.放空要有人願意借卷。一檔ETF有好幾億的資金,哪有那麼多人肯借。
2.放空會強制回補,發股利要回補,開股東大會要回補。不可能放空好幾年都不動。

實際上做空型ETF都是靠期貨放空,就是直接去買台灣大盤的期貨,一律當期貨賣方。但因為期貨本身有槓桿效果。ETF手上有10億台幣,不可能10億全 壓。那如果做錯邊,10億賠光,ETF自己還要倒貼。台灣反向50來講,通常投入15%資金買期貨,剩下85%閒閒沒事幹,那就去買低風險的附買回債卷, 賺一點利息。

2015-08-15

鬼妓回憶錄(Imprint)(有圖,慎重觀看)

日文原名:ぼっけえ、きょうてえ
英文譯名:Imprint
台灣譯名:鬼妓回憶錄



照片便是劇中主角,一個長相畸形的妓女。

這片是美國電視劇Masters of Horror的第一季13集。只是在台灣日本都拆出單集販賣。

這片很妙的是三種語言有三種不同的片名。
日文片名直譯是:真的好恐怖
英文片名直譯是:烙印

(片中有煙燙皮膚的場面,所以叫烙印)

Masters of Horror 13集故事找了13個不同導演。作為低成本的電視劇,無法用太多特效,只能用故事取勝。但是大多數的故事都很無聊,這集的鬼妓回憶錄是少數故事頂尖的一 集。

此片稟持著導演三池祟史一貫風格,畫面愈噁心愈好,片中有很過頭的血腥場面,所以在很多國家禁播。在台灣也是發行DVD,沒有在電視電影播出過。三池祟史 過往的紀錄,編劇能力一向很差,只會賣噁心場面。這片原著是小說改編,好劇本恰巧補足了三池的缺點。造成這片變成神作。

故事是描述一個白人重回日本,到了妓院尋找老舊識,一名妓女「小桃」。結果桃子已經死了,媽媽桑找了鬼妓來伺候客人。鬼妓只是一個半邊臉畸形的妓女,整個 故事沒有出現她的名字。

整段故事便由白人與鬼妓的對話推展。

鬼妓開始解釋桃子是怎麼死的。因為媽媽桑弄丟戒指,懷疑到桃子身上,所以凌虐桃子。片中有大量露骨的血腥場面。最後桃子上吊自殺。

之後白人又問了鬼妓的身世。鬼妓又敘說自己來自一個貧窮的家庭,如何當妓女的過程。

但是白人懷疑鬼妓說謊。鬼妓又說了一個不同版本的故事。桃子的死亡之謎,以及鬼妓更悲慘的童年。全劇中鬼妓總共說了三個版本的故事,每次都更血腥更黑暗。 故事說完,結局又翻盤了一次,非常過癮!

片中顏色刻意拉的非常極端,妓女衣服超紅,臉色蒼白,灰暗房間。片中沒有明確點名地點是日本,導演刻意營造出一個很像日本的異世界。

影片沒有明確點名三段故事那段是真的,也沒有解釋那些劇情是幻覺,哪些劇情是真的。所以觀眾就跟白人一樣陷入錯亂,無法知道自己現在是不是醒的。除了畫面 夠噁爛,迷幻式風格,加上極度不道德的劇情。真的很不舒服~~

孕婦屍體,道具做的很爛,一看就知道是矽膠。雖然說道具很爛,還是有噁心到。

導演刻意安排幾個長相很奇怪的配角,增加噁心感。

2015-08-12

日本經濟為什麼會失敗?

說失敗有點太誇張了,畢竟日本人均GDP還有三萬六美元。台灣才兩萬,哪有資格酸人家。但是日本GDP已經很多年沒動了。請看圖,注意這是人均GDP,不 是全國合計GDP。

資料出處來自google。請點我。

中國在2000年過後開始成長,中國鄉下太窮,拖低了水平,導致圖表看起來沒有很強。
南韓持續成長中。
美國持續成長中。

不得不說美國真是地表最強國家。通常已開發國家該挖的資源都挖了,制度該改革的都改了,所以很難大幅成長。GDP五萬四也是全球前段班,2008金融海嘯 美國就是震央,海嘯只讓美國痛了三年,之後照漲。

結果日本1995~2014近20年的時間,接近原地踏步,只能小漲小跌,就是衝不上去。失落的十年變成失落的一代。

最深層的原因要回顧到1980年代日本。

1980是日本經濟全盛時期,那時候日本做了很多國家都會做的事。就是刻意壓低匯率,然後商品賣給外國。其中最大客戶當然是美國。

1985年美/英/法/西德/日本開了廣場協議。協議結論是美元貶值,其他四國貨幣都要升。所以日本政府放手讓日幣匯率恢復正常。日幣開始狂升猛升。

日本政府知道企業轉型需要時間,擔心陣痛期倒掉太多企業。所以刻意把利息壓到極低,方便企業借錢。結果企業借錢之後沒有做生意,而是去買房。然後買了也不 是自住,而是加價賣給別人。那為什麼漲價賣得掉?因為買主也是要加價轉賣給別人。

這遊戲叫做大家賣來賣去,看哪個智障接到最後一棒。

同時間因為日幣升值,大家不願意投資國外,都把外幣換成日幣。日本銀行收到大量存款,錢太多非得借出去不可。所以銀行也鼓勵大家買房。。

不只是房價暴衝,很多人借錢買股,股價也爆衝。
那時候日本全民都在玩金錢遊戲,據說到公司應徵,不管錄取與否,公司都要付車馬費,不然根本沒人來面試。公司出差,明明可以當日來回,也非得住旅館不可。 不然員工就辭職。

晚上居酒屋喝酒,要先找好計程車,然後計程車司機在車子裡面空等好幾個小時,跳表照跳。喝完酒計程車回家,付錢都用萬元日幣付帳,而且不找零,多出來的錢 就送給司機。

全盛時期的房價,據說等於60年的租金。(意思就是說房價暴漲,租金不動。)
那時候還有40年超長期貸款,要求父子兩人一起簽約跟銀行借錢。

但是這種經濟是假象,是靠互相賣來賣去遊戲造假。所以才叫泡沫經濟。

到了1989日本新的央行總裁三重野康上台,三重野康注意到日本經濟的問題,刻意多次調高銀行利率。到了1990~1991期間。日本經濟真的爆炸了!

註:三重野康被日本人罵「平成惡鬼」,那個時候日本年代是「平成」。

房價一路跌到全盛時期的30%。
股價暴跌,日經指數38915跌到19980。

誰也沒想到,這次崩盤竟然崩了整整20年!!!!

崩盤之後日本政府別無選擇,只能花大錢整治銀行。

貸款40年套牢的屋主就只能花40年乖乖還清。
(當然還有別條路。破產或是自殺。)

那你覺得屋主有閒錢可以旅遊嗎?你覺得屋主有錢吃喝玩樂嗎?當然沒有!所以房價垮台之後日本陷入通貨緊縮。

什麼叫做通貨緊縮?

就是老百姓省吃儉用,拼命存錢,不花錢。企業賺不到錢。
最後公司收掉,員工失業。因為失業,所以沒錢消費。
有工作有錢,但是看到別人失業,經濟這麼爛,所以還是拼命存錢。
因為大家都不消費,所以企業又繼續倒閉。惡性循環。

這個循環日本玩了20年還在玩。

日本政府做了幾件事來救經濟。
1.降低銀行利息。(因為銀行利息實在太低,所以大家會把錢拿出來花掉。)
2.舉債建設。 (政府生一堆工作出來,老百姓有工作就會消費。)

但是以上兩點的後半段都沒有發生。
老百姓就是死都不花錢,把錢領回家鎖在保險櫃,還是不花錢。

同時間為了舉債建設,日本蓋了大量的蚊子館蚊子道路蚊子鐵路。等於是無效投資,錢又浪費掉了。

10多年過去,日本人口已經是全世界最老。日本總人口開始萎縮。
2006:127.854百萬
2007:128.001百萬
2008:128.063百萬
2009:128.047百萬
2010:128.070百萬
2011:127.817百萬
2012:127.561百萬
2013:127.338百萬
2014:127.131百萬
資 料出處來自google,請點我。


而日本人沒有意識到問題嚴重性,沒有大幅度開放外國移民補充勞動力。

到了安倍上台之後,安倍宣布貶值救經濟。聰明的各位讀者,你覺得貶值有用嗎?

2015-08-10

國民黨宣傳影片

中文發音,英文字幕。
Chinese voice , English subtitle

期貨/選擇權。基礎入門

一般交易是現在立刻交易,叫做現貨。
如果說現在打好合約,先講好價格。但是未來才交易,叫做期貨。

範例:
AB兩人簽約,一年後A跟B買10公斤稻米。價格先談好,雙方都不能反悔。但是一年後稻米會漲會跌不知道。到時候可能A賺錢,也可能B賺錢。

上例的稻米可以換成其他東西,例如說小麥/棉花/鋼鐵/石油/煤礦/黃金/股票/債券。
時間到之後,
如果B拿出10公斤稻米來賣。就叫做「實物交割」。
如果B不想拿10公斤稻米來賣。就看一下AB誰賺錢,直接轉移一下金錢,就叫做「現金交割」。

如果你覺得稻米未來會漲,那就選擇當買方。
如果你覺得稻米未來會跌,那就選擇當賣方。

當然聰明的你一定想得到。期貨根本是變相賭博,A賺錢就代表B賠錢。而且中間還要被銀行抽一層手續費。期貨有什麼實質功用?

期貨目的是要避險,例如說中鋼就是賣鋼鐵。未來鋼鐵漲,中鋼賺20億,未來鋼鐵跌,中鋼打平。
那中鋼可以去買期貨,賭鋼鐵會跌。
未來鋼鐵漲,中鋼本業賺錢,期貨賠錢,合計中鋼有10億利潤。
未來鋼鐵跌,中鋼本業打平,期貨賺錢,合計中鋼有10億利潤。

所以中鋼就可以把利潤鎖死在10億。不會有任何波動。

目前台灣沒有實物交割,台灣政府開辦的期貨強制規定只能現金交割。而且台灣期貨集中在股票期貨。你想買棉花期貨還得到國外買。

台灣股票很多檔,但不是每檔都有期貨,比較熱門的股票政府才開放期貨。
同時期貨不單是賭一支股票,期貨也可以賭「大盤」。你可以賭未來大盤漲或是跌。事實上台灣期貨最熱門就是賭大盤。

當然期貨不一定要等到期的那一天。你可以提前結算。
例如說今天買,明天賣。
或是說今天賣,明天買。

這個叫做「平倉」。

問:期貨是未來才交易,到期日是那一天?
答:台灣政府規定是每個月的第三個星期三。每年3,6,9,12月份一定會開賭。同時下一個月也會開賭。現在是2015年8月,那就是2015/8 , 2015/9 , 2015/12 , 2016/3 , 2016/6。總共五個月份。

問:期貨交易單位是?
答:單位都叫做「一口」。

問:賭大盤的話,錢怎麼算?
答:政府規定大台(TX)每點200元。大台「一口」要83000元。小台(MTX)每點50元。一口要20750元。

問:賭股票的話,錢怎麼算?
答:股票規定一口就是兩張股票。所以是2000股。但不需要2000股現金全部拿出來。只要13.5%現金即可。例如說兩張台積電10萬元,我要出 13500元就可以玩台績電期貨。

問:買賣雙方如何喊價?
答:交易日期,跟「一口」單位都被政府訂死了。買賣雙方只能談交易金額。

問:期貨不用全額現金,那如果壓錯邊會怎樣?
答:壓錯邊的話會賠到脫褲。營業員會電話聯絡你,叫你補錢,補夠錢才能繼續玩。營業員找不到你就會直接幫你平倉。如果運氣不好,你還倒欠銀行錢。


選擇權是期貨的延伸。

範例:
AB兩人簽約,一年後A跟B買10公斤稻米。價格先談好,雙方都不能反悔。時間到之後A可以決定要不要交易。如果價錢不好A可以選擇放棄交易。遊戲規則對 A比較有利,所以A要先付權利金,而且權利金是現在就要付,不是等一年再付。不管AB要不要交易,權利金都不能拿回來。

A壓錯邊,就選擇不交易,等於是A賠掉權利金。
B要賺錢,就是賺權利金。

老樣子!台灣政府開辦的選擇權都集中在股票選擇權。而且只能現金交割。

根據交易情況分成四種。

A跟B買股票,A選擇要不要交易。
A叫做「買買權」,又叫做「買call」
B叫做「賣買權」,又叫做「賣call」

A賣股票給B,A選擇要不要交易。
A叫做「買賣權」,又叫做「買put」
B叫做「賣賣權」,又叫做「 賣put」

對於買方來講,要先付權利金。
對於賣方來講,不用先付錢。但是到期日可能要賠錢,所以要押一筆保證金在政府手上。具體公式非常複雜。

現實中台灣人玩選擇權,都在賭大盤,賭股票的非常冷門。
交易日期被政府訂死。價格也被政府訂死,例如說現在大盤指數84xx點。政府會開賭 8200/8300/8350/8400/8450/8500/8550.......一大堆價格。上漲下跌的點數都會開。
買賣雙方喊價就是談權利金高低。

當然聰明的你一定猜得到。 A跟B買股票,A選擇要不要交易。但是A要先付權利金。所以股票大漲A才會賺。股票小漲/持平/小跌/大跌,都是B賺錢。

實務上「賣方」賺錢的機率非常高,買方不容易賺。
但是買方付出的錢很少,例如說台積電100元,買方付權利金5元就可以玩了,買方不需要存到100元。那如果買方有100元,就是全部壓下去買20口。 100元全部花光光。
買方可以用超低金額賭一把大的。但是買方賠錢機率非常高。

賣方賺錢機率高,到手金額不大。(權利金通常金額不會大)
但如果股票大漲大跌,賣方壓錯邊,有可能一夕破產。

基本觀念
買買權:預期股票大漲
賣買權:預期股票小漲
買賣權:預期股票大跌
賣賣權:預期股票小跌

預期股票會大波動,但是不確定是漲或是跌。那就是「買買權」「買賣權」兩個都買。
預期股票完全不會動,會維持現在價格。那就是「賣買權」「賣賣權」兩個都買。

股票進階。融資融券

融資:
買股票不一定要拿出全額現金。可以用借的。台股最低只要自備40%現金。台股有幾千檔,每檔規定都不一樣。具體請看台灣證券交易所的規定。實務上其實是跟 券商借錢。然後券商去買股票。當然要付利息給券商,因為有利息問題,不可能 融資買下去,股票放個一兩年。要有把握股票短期內會漲, 融資才划算。

融券:
A預期台積電會跌,A沒有台積電股票,但是B有。A跟B借股票,然後A賣掉台積電股票。隔一陣子之後A再買台積電股票,然後把股票還給B。假設股價有跌, 那A就賺到了。

因為跟B借股票,所以要付利息給B。(通常是萬分之8)
所以A賺錢,實際上等於B賠錢。
如果A賭錯邊會賠錢,所以要押一筆錢在政府手上當作保證金。現在規定是90%。台積電100元,那就要押90元出去。

實務上不需要自己去找人來借,直接跟券商借股票即可。券商會自己想辦法找人。所以利息直接付給券商,90%保證金也是放在券商手上,因為90%錢在券商手 上,這筆錢券商會付利息給你(但是很低)。
當然反過來,如果你有股票打算放很久都不賣,你也可以跟券商聯絡,我的股票想借別人,賺萬分之8的小錢。

但因為公司要開股東會,公司會發股利。台灣法律規定有「最後回補日」。會要求所有借股票的人都會回補。把股票還給B。

所以融券不可能放個一兩年,預期短期內會大跌,融券才划算。

因為融資融券都不用付出全部金額,如果壓錯邊虧太多,券商會電話通知你補錢。不補錢券商可以強制幫你賣出。運氣不好的話,賣光光之後你還欠券商錢。

2015-08-09

ETF/被動型基金/指數型基金。基礎入門

標題這三樣ETF/被動型基金/指數型基金,其實都是類似的東西。

因為單買一隻股票,等於是身家壓在一家公司,賭錯就完了。
好吧!那我們就全買,所有股票都買。所以世界上就出現ETF這種玩意。

台灣流行的ETF大約是下列幾檔
全名
簡稱
追蹤標的
代號
元大寶來台灣卓越50 台灣50 台灣最大50間公司
0050
元大寶來台灣台灣中型100 台灣中型100 去掉最大的50間,然後取前100大間的公司。所以是51~150名的 公司 0051
元大寶來台灣高股息 台灣高股息 前150名公司,預測未來誰發股利發最多,取最高的30間
0056
永豐台灣加權ETF 豐臺灣 原始目的是所有股票都買,但因為冷門股票流動率太差。所以現在是取前 200名公司
6204
元大寶來台灣50單日反向 T50反1 台 灣最大50間公司,反向追蹤 00632R

拿最多人玩的台灣50這檔舉例。台灣政府會公佈台灣50指數,這個指數就是選出台灣最大的50間公司。
元大這檔就是完全複製台灣50指數,完全跟著政府的腳步走。政府有改台灣50內容,元大才會跟著調整,所以不是元大自己亂選股。也因為這樣,這檔股票的轉 換頻率很低,繳給政府的證交稅也少一點。

ETF最大好處是選股不是交給公司亂選,而是完全跟著指數走。跟大盤連動率超高。
也因為是照指數走,公司不需要找財經高手來操盤,所以手續費通常比較低。
大家表現都一樣。買的時候不用考慮績效,就是單純看手續費,那家手續費最低就買那家。

最無腦的買法:
股市跌到很慘,跌到大家都燒炭的時候,所有錢拿去買台灣50。
股市漲到很爽,漲到大家都說會上萬點的時候,所有台灣50賣光光。換回現金,然後去買債券。(股市最高點,通常是債券最低點)

對外行人來講,ETF是最安全簡易的標的。不容易暴漲暴跌,也不可能 會有公司倒閉的問題。就是單純跟著景氣循環賺錢。

台灣高股息:單純看股利高低來更換成分,所以跟大盤連動性超低。很難漲也很難跌,這支的買法就是要等,等到偶爾下跌的時候才狂買。買下來就是穩穩收股利, 連放好幾年不要亂賣。

台灣50單日反向:
反向連動,台灣50漲的時候,這支就會跌。台灣50跌的 時候,這支就會漲。有些人會認為看景氣循環,台灣50跟反向50兩支輪流買就好。但是反向追蹤比較困難,需要靠期貨追蹤。所以手續費抽比較兇。(反向連動 是如何做到的,我之後會在期貨教學裡面說明。)

美國比較流行的ETF大約有這些:
全名
代號
追蹤指數
DIAMONDS Trust DIA
道瓊
PowerShares QQQ QQQQ
那斯達克100
SPDR S&P 500 ETF SPY
S&P 500
Vanguard Total World Stock ETF
VT
FTSE Global All Cap Index
SPDR Barclays International Treasury ETF
BWX
Barclays Capital Global Treasury ex-US Capped Index

Vanguard Total World Stock ETF:追蹤全世界股票,總共持有幾千檔股票。細節請自行google。
SPDR Barclays International Treasury ETF:追蹤全世界債券,只買先進國家政府債券,集中在歐洲日本,但是不買美國債券。細節請自行google。

用最無腦的方法就是這兩支輪流買。

美國公債是大熱門標的,所以ETF超級多。比較流行的有這三家公司。
Pimco
Vanguard ETFs
iShares ETFs
每一家公司又分的很細,例如說美國1~5年公債,美國5~10年公債。美國10年以上到期公債。
我對債券比較外行,具體差異我就不懂了。

基金基礎入門

因為股票債券的金額比較高,小資族一個月只能挪出幾千元,根本玩不起。所以基金便應運而生。

所謂基金就是一家公司跟大家收錢,然後去買一堆股票,一堆債券。因為是跟一堆人湊錢,所以沒有金額限制。現在大多數基金一個月最低3000台幣就可以買 了。
當然基金公司會公佈,我買那一國的股票,那一國的債券。這檔基金只買股票,或是說這檔基金只買債券。或是說分別各買多少?
股票幾千支,債券也幾千支。買那一支全看基金公司高興。當然基金公司也要抽手續費。

基金好處是分散標的降低風險,因為不是只買一支,會分散成很多支。所以暴漲暴跌的情況比較少。
金額限制低,窮人也可以買。

缺點是被基金公司再剝一層皮。
若基金公司都是智障,都選到爛股,基金賠的很慘,手續費還是不能減。

綜合來看我個人反對買基金。

債券基礎入門

所謂債券就是借據。政府印一張紙寫上債券,例如說購買價格100萬台幣,每年給3萬利息,然後10年後還你100萬。
還有一種玩法就是,政府只說10年後還你100萬,然後大家來投標,價高者得。當然沒有人會用100萬去標,所有人的價格一定是低於100萬。

買下債券後,不一定要等到10年,你可以中途賣掉。當然轉賣價格高低就看買賣雙方喊價。

假設價格就是100萬,因為會發利息3萬,所以我們說「殖利率3%」。但是債券隨時可以轉賣,價格每天變動,假設今天跌到90萬,殖利率就是3.33%。 一般債券漲跌就是直接回報現在殖利率xx%。

要買台灣政府債券,手續上頗麻煩,要到郵局申請。通常債券金額限制比較高,有時候最低要買100萬台幣。所以一般大眾不流行買債券,中途轉賣也不太好賣。 流動性比較差。

那因為政府賴帳的機率超級低,所以大家都會用很高價去標,像美國公債,最近幾年常常殖利率只有1~2%。義大利殖利率飆到7%已經是危險程度,政府官員要 出來信心喊話。希臘已經破產,所以殖利率30%以上。呵呵~

不只是政府可以發行債券,企業也可以發行,叫做公司債。但因為是企業發行,企業倒閉就挫屎,風險性就跟股票一樣。但是企業倒閉,法律規定要先還債券的錢。 如果還有剩,才能發錢給股東。所以公司債比股票稍微安全一點點。

政府國債耍賴的機率超級低,所以債券通常是低風險。景氣好的時候,企業大賺,股利發的比較爽,所以大家會少買債券,多買股票。景氣差的時候就相反。所以大 部分的情況,債券跟股票會反向。

那也因為錢放在銀行也會有利息。如果股/債的利息低於銀行。哪個白痴要買?

所以通常是這樣:銀行定存1%,債券殖利率2%,股票股利到5%。

所以央行升息降息都會影響股市債市。

一般是建議股債都要買,年輕的時候股票買多一點。年紀變大,債券比例要慢慢提高。

2015-08-08

股票基礎入門

在沒有股票的年代,開公司就是要找一個有錢人,拿很多錢出來辦企業。如果錢還是不夠,就只能找銀行借。如果真的借不到,就不能開。

所以股票制度便因應而生。企業拿出一張紙寫上股票,然後企業簽名畫押,大家拿鈔票買股票。企業就可以拿現金擴大營業。這個動作叫做IPO。發行股票之後, 企業老闆就不是就企業主自己,而是全體股東。假設未來企業賺錢,會發錢給股東,叫做股利。如果企業賠錢,那就發不出來。

問:企業拿出一張白紙,隨便簽個名就可以換成現金。那如果老闆捲款潛逃勒?
答:所以股票上市都要經過政府審核,不是你想上市就可以上。企業上市之後都要定期公佈財報。

問:不是有「未上市股票」可以買嗎?
答:所以未上市股票風險超大。

問:全體股東有10萬人,誰作主?
答:每天找10萬人出來投票浪費時間。所以是全體股東投票選出董事會,由董事會作主。投票不是一人一票,而是一股一票,如果你有51%的股票,等於就是企 業最大老闆。投票選董事會可以推薦任何人,也可以選自己。很多公司就是大股東自己跳下來經營。

問:發行股票可以拿超多現金,但是老闆不能自己作主。似乎也有缺點。
答:對,所以有些公司很賺,但是死都不上市。

問:如果企業年年賠錢?
答:那就是沒股利可拿,自己蠢怪我勒?

問:股票隨時可以交易,每天都會換人,股利誰領?
答:會事先公告一個日期,以那一天為準。所以你可以前一天買進,隔天賣掉。還是有股利可拿。但是這招大家都知道,所以股利發放之前,股價都漲得很貴。

問:股價漲跌是不是看股利發多少?
答:股利高低會有影響,但不是絕對。今年發很多錢,也許明年發不出來。今年虧得很慘,也許明年會賺。股票交易單純是看買賣雙方喊價。這世界上很多笨蛋,根 本不看股利,就是自己呆呆的亂買。有些公司年年虧損結果價格照漲。

問:在台灣如何買股票?
答:年滿20歲備妥證件,自己去找卷商開戶。卷商會從零開始教你。

問:台灣股市交易規則?
答:
1.買賣股票用1000股為單位,俗稱一張。所以你存個20~30萬再來開戶。
2.低於1000股也可以買,但是手續比較麻煩。俗稱零股。
3.一般交易時間9:00 ~ 13:30。假日會關門。依照台北為準,如果台北放颱風假,那就不開市。
4.漲跌幅限制,每天最多漲10%或是跌10%。
5.交易費用,2015現在政府要抽千分之3稅金。卷商也要抽手續費,法律規定上限是千分之1.425。一般俗稱打五折,就是用1.425再打五折。現在 都是網路交易,自己在電腦前面按滑鼠就可以交易了。如果不會用電腦,就是要打電話給卷商,請卷商人工下單,當然手續費會比較貴。

問:台股大盤現在8000點,「大盤」指的是什麼?
答:所謂大盤就是全部台灣股票合計。規定是1966的全體台灣股票訂成100。多年後的今天,台灣股市已經成長了很多倍。通常台股三四千是超低點。一萬點 是超高點。

問:美國的大盤怎麼算?
答:美國有三大指數。

道瓊工業平均指數, Dow Jones Industrial Average
只取30支股票計算。代表性有點差!(美國有超過一萬家股票)。但這30家都是超級大財團。

那斯達克綜合指數, Nasdaq Composite
只取科技類股計算,超過5000檔股票。

史坦普 500 指數, S&P 500
取最大間的前500名計算。

具體是取哪些股票,官網都會列出來。當然股票成份也會變動。

為什麼土地要抽稅?

房租房價是個很複雜的東西。
不管窮人富人,都需要土地來住,這是民生必需品。
把窮人趕到沙漠去住也是爛方法,因為人都要睡覺。不可能通勤10小時上班。
搬到郊區再怎麼遠也會有極限。

食物可以搬家,人民缺食物,政府還可以跟國外買食物。
偏偏土地不能搬家。不能跟國外買土地。

所以每個國家都會出一堆複雜的法律管制土地。

當然不管制也無所謂。就是窮人活不下去,聯合起來殺光富人。權力大洗牌一次。
例如說文化大革命

那個年代有錢的被槍斃。
沒錢但是有土地,還是會被槍斃。

所以共產黨為什麼堅持土地國有。
因為在那個年代,窮人活不下去,窮人就是要地,因為不可能每天通車10小時上班。

但是土地國有也會衍生出超多問題。地是屬於全體人民的。
那誰要住市區,誰要住郊區?
所有人都要搶市區怎麼辦?
抽籤嗎?
所以到最後歐美國家想出了一些制度。就是對土地徵收持有稅。

你買了一塊地,政府不管你拿土地做什麼。
你要住宅也好
你要當店家也好
你要當停車場也好
你要放著空地也好

每年就是要固定繳稅給政府。稅金必須以地的市價連動。每年稅金都不一樣。
 (大部分國家是每年繳市價1%)

你家漲價,稅金就漲。
你家跌價,稅金就跌。

那你家的市價多少錢?誰說了算?

現實中的作法
政府規定房屋土地交易一律向政府登記。
政府會公開所有交易資料。全世界都可以查。
政府會請一堆數學家推算出全國的房價。

假設政府想錢想瘋了,故意把你家評高價,收很多稅。那老百姓就要求政府照價徵收。
政府說這裡值1000萬,那麻煩政府出1000萬買下來。
我收1000萬現金,自己搬家。
如果政府不給,那就是政府說謊。

實務上就是市政府跟人民互告,由法官裁決誰獲勝。

持有稅制度。買房是小錢,貴的是稅金。
這種玩法等於就是人民跟政府租房。

有錢人租市區貴森森的地,窮人租郊區便宜爛地。
政府收了很多稅,會拿去蓋地鐵。幫助窮人通勤上班。
假設政府在你家隔壁蓋捷運站,你家房價暴漲,稅金也準備暴漲。

但因為稅金很貴,下一個屋主也不可能無止盡的追價追下去。

到最後會形成一個平衡。市區的地不會無止盡的漲,會有個極限。

第二個好處是杜絕人民浪費土地,空地放著不用也要繳稅。
大家都會盡量把土地用到滿。因為稅金太重。
不想繳稅就趕快把地賣掉,拿現金閃人。

台灣的持有稅過低,變成老人住在捷運站旁邊。蓋一間破爛鐵皮屋。
老人有地沒錢。每天撿破爛討生活。
老人智商很低,不願意賣地。抽到好牌卻不會用。
然後每天靠爸,我這麼窮為什麼政府不救我XD

正常的國家

買房賺錢賠錢都應該實報實銷。賺錢繳稅,賠錢折抵。
例如說年薪百萬,但是賣房也賠掉百萬。收入合計是零,不用繳稅。

持有稅也要跟市價保持連動。
才可以保證所有土地都利用到極限,沒有人浪費土地。

租金的問題。

管制租金已經確定失敗,因為房東收不到好租金,變成房東不願意維修房屋。
房屋擺到爛就是死都不修。

房東在30年前蓋一間鐵皮屋,現在捷運通車了,應該改建成10層大樓。
但就算改建大樓,租金也不能漲。所以房東不願意改建。


到最後變成捷運站旁邊會是破爛鐵皮屋。房租低房價低。
又是浪費土地。

現實中的作法是強迫房東出租。所有房屋都要租掉,不可空房。

例如說名下兩間房,強迫你要丟一間出來租。如果沒出租就加重持有稅。

2015-08-04

C++實作無序容器的方法

本文翻譯自 http://bannalia.blogspot.tw/2013/10/implementation-of-c-unordered.html
C++不叫Hash Table,而是取了一個華麗名字叫無序容器(unordered  associative  container)。從2011開始c++提供了四種無序容器。

  • unordered_set  ,   unordered_map              (不可接受重複的元素)
  • unordered_multiset  , unordered_multimap (可接受重複的元素)
一個常用的方法是採用單向連結。

在這種狀況下,每個桶子內部都是一個指標,指向一個單向序列。如果Hash演算法設計的好,每個鏈結都很短,插入跟刪除效率會接近O(1)。如圖所示, b1,b3只有一個元素,b2有兩個元素。簡單方便,但是在C++不合用,因為規範要求容器必須可以遍歷,必須提供一個iterator,可以讓 iterator從頭到尾掃過一遍。那要如何從b1跳到b2?最明顯的方法是繼續掃描陣列,直到下一個有裝東西的桶子。但這不可用,因為陣列愈大,掃描愈 慢。偏偏規範明定++i;效率要保持O(1)。為了符合規範,只好把所有元素都串在一起。

我們來看一些Hash Table常用的結構。加上一個模仿Boost.MutiIndex的設計。先假設所有元素都不一樣。
(unordered_multiset  , unordered_multimap以後再討論)

假設有N筆資料,陣列有B個桶子。

  • Dinkumware函式庫
這是微軟Visual C++的實現方法。請看圖。

(請注意,桶子的順序不一定要跟元素順序一樣。圖片只是為了繪圖方便)

就跟你想的一樣,所有元素都串在一起。使用雙向連結。現在可以用iterator雙向訪問,代價是要多一個指標。好處是刪除元素非常容易。陣列裡面每個桶 子都有兩個指標,指向鏈結的頭跟尾。

插入元素的方法:
  1. 使用Hash先找到桶子。(常數時間)
  2. 元素如果重複要放棄插入,所以要掃描桶子裡面所有元素。(桶子大小線性時間)
  3. 新元素插入在鏈結的頭。(常數時間)
  4. 調整桶子裡面的兩個指標。(常數時間)
刪除元素的方法:
  1. 使用Hash先找到桶子。(常數時間)
  2. 刪除鏈結一個元素,調整前後指標。(常數時間)
  3. 調整桶子裡面的兩個指標。(常數時間)
操作效率是O(1),記憶體消耗,每個元素要兩個指標,每個桶子也要兩個指標。

  • 2N+2B
看起來很好,但其實Dinkumware的方法對於刪除元素,有一個嚴重的瑕疵。

  1. 使用Hash先找到桶子。(常數時間)
如果Hash函式會丟出例外,今天刪除動作就失敗了。偏偏規範又講明刪除保證要成功,而且不可以丟出任何例外。所以Dinkumware方法其實不符合規 範。

  • Boost.Unordered, libc++ , libstdec++ -V3函式庫
Boost.Unordered, libc++函式庫使用類似的資料結構。但設計成單向鏈結。


  1. 所有元素用單向鏈結串在一起。
  2. 因為刪除動作不可以拋出異常。刪除的時候不可以呼叫Hash函式,所以只好把Hash後的數字也存起來。
  3. 因為是單向鏈結,為了刪除方便。桶子裡面的指標不是指向第一筆元素,而是第一筆的前一個。所以圖片中的b2指標指向前一個的b1。
刪除元素的方法:
  1. 因為節點裡面已經有Hash值,可直接定位到桶子。(常數時間,不會丟出異常)
  2. 鏈結掃過一遍。(桶子大小線性時間)
  3. 刪除鏈結一個元素,調整前後指標。(常數時間)
  4. 調整桶子裡面的指標。(常數時間)
插入刪除都是O(1)。滿足規範。記憶消耗如下

  • 2N+1B
(我們假設Hash的數字,占用大小跟一個指標一樣)

libstdec++ -V3提供了一個最佳化設計。如果Hash函式確定不會丟出異常。(有使用nonexcpt)。函式庫會標記成fast模式。節點裡面不會儲存Hash數 字。我覺得這設計有點危險。代碼裡面使用__is_fast_hash type來標記,基本型態通通設定為true。使用者自訂Hash函式預設是false,除非函式有用nonexcept,才會變成true。

不考慮最佳化的特殊機制,2N+1B似乎已經是好的設計了。但事實上還有更好的方法,不需要再增加任何記憶體。

  • 簿記式的資料結構
Boost 1.56 Boost.MutiIndex裡面使用了一種全新的方式。雙向鏈結改用環狀的方式。

定一個節點叫做X,下一個節點叫做Xn,前一個節點叫做Xp。環形鏈結代表

  • X = Xnp = Xpn
這個條件永遠成立。
連結往前再往後一定會回到自己。
連結往後再往前一定會回到自己。

我們現在看一下完整的示意圖


把陣列桶子也加進來,做一個小改動。

如果元素是桶子的第一個元素,Xp改成指向桶子自己。

可以導出一些規則。
  • 如果Xpn != X,代表X是這個桶子的第一個元素
  • 如果Xnp != X,代表X是這個桶子的最後一個元素
  • 下一個元素一定可以用Xn取得。
  • 前一個元素比較麻煩,如果是桶子的第一個元素,前一個元素就是Xpn,其他元素直接用Xp存取即可。
所有動作都是常數時間,我們可以把它還是當作環形鏈結。只是往前移動需要特殊處理。

刪除元素的方法:
  1. 從雙向連結刪除元素,調整前後指標。(常數時間)
  2. 調整桶子裡面的指標。(常數時間)
刪除元素不需要把一個桶子都翻遍,就算遇到差勁的Hash演算法也沒差。記憶體不用增加。還是2N+1B。

2015-08-02

台灣高級水果航空直送


這張照片拍攝地點在台灣。
我...............笑了!

2014-11-29柯文哲監票


開票地點是在小學教室,無冷氣非常熱。監票過程無任何意外,偶爾有幾張票章蓋歪,大家討論一下也可以判定。沒人提出抗議。開票結束回柯文哲辦公室,領取酬勞500台幣。
不知道為什麼開票所只有我一人拿智慧型手機,所以我手機看選情,同時監票。然後一堆人圍過來,問我其他縣市的結果。

2015-08-01

NAT traversal

所謂NAT traversal,又叫做NAT穿透。指的是虛擬IP如何直接連線到另一個虛擬IP。在此必須要先了解何謂NAT/虛擬IP/實體IP。

最原始的網路只有實體IP的設計,只要知道對方的IP即可傳送資料給對方。當然對方電腦有無開機,對方電腦收到之後會不會回應,我這邊無法控制。後來上網 人口增多,IP數量不夠用,IP價格也變貴。到最後NAT技術就因應而生。


NAT目的就是讓多台電腦共用一個實體IP。如圖所示,兩台電腦192開頭的IP都是虛擬IP。
在這裡的NAT設備是一台無線AP,有實體IP  114.25.8.46。對外連到伺服器202.43.195.521。

NAT設備所要做的事便是記住內部IP與外部如何對應。
192.168.0.100想要用port 2000傳訊給伺服器202.43.195.521:6000。
會先傳給無線AP,然後無線AP打開port4000對伺服器202.43.195.521:6000通訊。
伺服器回傳給無線AP的實體IP 114.25.8.46:4000。然後無線AP再把資料轉給192.168.0.100 : 2000。

對於NAT設備來講,都會要求內部電腦先對外通訊,NAT設備會開啟一個port,然後外部伺服器的訊息才可以轉發進來。

如果一台電腦,從頭到尾沒有發出任何訊息,外面的人是無法主動通訊的。

對於內部兩台電腦,無線AP會打開兩個不同的port,在此例是4000,5000。

在NAT設備底下,內部電腦無法直接得知NAT的對外IP,對外port。
外部的伺服器也無法知道NAT背後藏了幾台電腦,也無法直接得知每台電腦的虛擬IP。

NAT技術可以節省大量的實體IP,同時NAT可兼做防火牆設備,比較安全。2015目前NAT技術已經到處都在用。
在家裡架設Wifi,手機連上Wifi,會配虛擬IP。
手機4G跟基地台連線,基地台還是配虛擬IP。

但是NAT技術嚴重妨礙到一般電腦的直接通訊。對於p2p影響超大。emule/BT很難用,通常可以連線的點會非常少。
也妨礙到網路電話VOIP使用,兩支手機不能直接連線,很麻煩。

分析一下各種狀況
1.雙方均是實體IP,只要知道對方IP即可通訊。
2.一方實體,一方虛擬。由虛擬IP先發起通訊即可。
3.兩台電腦都是虛擬IP,連到同一台NAT設備。可直接使用虛擬IP通訊。
4.兩台電腦都是虛擬IP,連到不同NAT設備。無法單純直接連線。

本文要探討的便是最麻煩的情況4。此技術就是所謂的NAT traversal。

當然可以用一種最簡單的方法,就是中間利用一台伺服器轉發資料。但是伺服器網路頻寬要錢。更何況網路電話/p2p軟體傳輸資料量大。伺服器錢誰要出?

由於NAT設備的轉發資料規則,並沒有國際規範。完全由廠商自由心證。故這世界上沒有完美的NAT traversal。兩個虛擬IP未必能成功建立連線。

NAT設備的行為大致分成四種。

1.Full cone NAT
NAT設備對於同一台內部電腦,永遠打開同一個port。例如說port 5000。
port打開之後,任何外部的人傳訊到port 5000,都會轉發給同一台內部電腦。

2.Address-Restricted cone NAT
NAT設備對於同一台內部電腦,永遠打開同一個port。例如說port 5000。
內部電腦傳訊給伺服器202.43.195.521:6000。
伺服器202.43.195.521可以用任何port傳訊到NAT設備的port 5000,都會轉發給同一台內部電腦。

3.Port-Restricted cone NAT
NAT設備對於同一台內部電腦,永遠打開同一個port。例如說port 5000。
內部電腦傳訊給伺服器202.43.195.521:6000。
伺服器202.43.195.521只能用自己的port 6000傳訊到NAT設備port 5000,才會轉發給同一台內部電腦。

4.Symmetric NAT
內部電腦對外連線,根據不同伺服器IP,NAT設備會打開不同的port。
例如說:

內部電腦傳訊給伺服器202.43.195.521:6000。
NAT打開port 4000。伺服器回傳資料必須用port 6000回傳給NAT的port 4000,才可正確送達NAT背後的電腦。
內部電腦傳訊給伺服器202.43.195.522:7000。
NAT打開port 5000。伺服器回傳資料必須用port 7000回傳給NAT的port 5000,才可正確送達NAT背後的電腦。

此種情況是最困難的NAT。

電腦連上網路之後,無法直接判斷自己是否在NAT底下。也無法知道NAT的對外IP對外port。必須要跟伺服器通訊,由伺服器告知。而且需要兩台伺服器 幫忙。兩台伺服器需要有不同的IP。

內部電腦定為A,兩台伺服器分別是S1,S2

流程如下:

A傳訊給S1,S1回傳自己看到的IP,port。
A收到後若是IP,port均一致,代表A是實體IP。

A傳訊給S1,要求S1找另一台伺服器(S2)傳訊給A。且S2需用不同的port傳訊。
若A可以收到S2的訊息,代表A在Full cone NAT底下。

A傳訊給S2,S2回傳自己看到的IP,port。
若兩個伺服器回傳的port不一樣,代表A在Symmetric NAT底下。

A傳訊給S1,要求S1用不同的port回傳。
若A收到,代表A在Address-Restricted cone NAT底下。
若收不到,代表A在Port-Restricted cone NAT底下。

NAT traversal基本原理

兩台虛擬IP要直接連線,還是需要伺服器幫忙握手。兩台電腦都連到同一台伺服器。因為伺服器是實體IP,連線到伺服器不成問題。然後伺服器互相告知AB的 對外IP,port。這時候AB都知道對方的IP,port了。

1.使用UDP協定:A發訊息給114.25.8.47:3000。此訊息會在NAT設備B被擋掉。無所謂,此步驟目的是打開NAT A的通道。
2.使用TCP協定:A發訊息給伺服器,告知我已經打開通道。
3.使用TCP協定:伺服器發訊息給B,告知B可以開始傳輸。
4.使用TCP/UDP協定:B發訊息給114.25.8.46:2000

四個步驟全部做完,AB便可直接連線。AB互相連線的時候是傳訊給NAT的對外IP,port。不需要知道對方的虛擬IP。

TCP協定需要三次握手,UDP不用。
與伺服器本來就可以直接連線,可以通通用TCP沒問題。

步驟2因為連不到電腦B,所以一定要用UDP。
步驟4可成功建立連線,故TCP/UDP均可。

此方法對於這三種NAT通通都適用。不論AB分別是哪種NAT,都可用此方法。
Full cone NAT
Address-Restricted cone NAT
Port-Restricted cone NAT

當然聰明的你已經猜到,如果雙方都是Port-Restricted cone NAT這4個步驟才要全部都做。如果是比較寬鬆的兩種NAT。可以省略一些步驟。

再來是最麻煩的Symmetric NAT 。因為Symmetric NAT 的port會變化,必須要猜測下次打開port,猜中才可傳輸。實務上NAT por可能是規律變化,每次都+1而已。所以很好猜!

電腦要與兩台伺服器S1,S2通訊,利用兩台伺服器的回傳訊息,可以知道NAT兩次對外傳訊的對外port,利用這點來猜下次打開port。
服器互相告知AB的對外IP。也互相告知「對方下次打開的port」。

以圖片的範例來看

A傳訊給S1使用port 2000
A傳訊給S2使用port 2001
那A下次會打開2002

B傳訊給S1使用port 3000
B傳訊給S2使用port 3001
那B下次會打開3002

流程如下:
1.使用UDP協定:A發訊息給114.25.8.47:3002。此訊息會在NAT設備B被擋掉。無所謂,此步驟目的是打開NAT A的通道。
2.使用TCP協定:A發訊息給伺服器,告知我已經打開通道。
3.使用TCP協定:伺服器發訊息給B,告知B可以開始傳輸。
4.使用TCP/UDP協定:B發訊息給114.25.8.46:2002

四個步驟是一樣的,只是port有差異而已。

實務上有個變形方法,步驟1,4,沒人規定只能送一次訊息。
步驟1除了送出114.25.8.47:3002,也可以順便猜測一下其他的port,例如說把3002正負500的port都試過一遍。(使用UDP)
步驟4除了送出114.25.8.46:2002,也可以順便猜測一下其他的port,例如說把2002正負500的port都試過一遍。(使用UDP)

當然port只有65535個,如果你不在乎速度很慢,可以全部都試過一遍。

那如果Symmetric NAT的port變化是不規律的,port也猜不到,那就真的沒轍!只能回到最笨的方法,所有資料都利用伺服器轉送。