📜 [專欄新文章] 類 Python 的合約語言 Vyper 開發入門:與 Solidity 差異、用 Truffle 部署、ERC20 賣幣合約實做
✍️ 田少谷 Shao
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium
有鑒於個人近期關注的 Uniswap 及 Curve 皆用 Vyper 實作,索性瀏覽了官方文件並嘗試一些開發工具,希望此文能減少一些讀者初嘗 Vyper 會遇到的麻煩!
Vyper and Solidity
Outline
一. Vyper 極簡介二. 與 Solidity 語法差異三. 開發、開發環境設置 1. 語法高亮 2. 本地 Vyper compiler 安裝 3. 使用 Truffle 操作 ERC20 - 安裝 Truffle - 發幣 - 寫個簡易賣幣合約四. 已知 Remix 問題 五. 結語
一. Vyper 極簡介
Vyper 是除 Solidity 外,以太坊上的另一智能合約 (Smart contract) 語言。其語法和 Python 相近,但畢竟也是寫合約的語言,邏輯差異不大,所以若熟悉 Solidity 應該不難理解用 Vyper 寫出的合約!
Vyper 主要被設計和 Solidity 的區別是安全性及可讀性,這部分會在下一段落及後方的實作中舉例說明。
二. 與 Solidity 語法差異
Vyper 與 Solidity 的差異有許多,在本段只就個人認為感受較深的三點進行說明,其他差異只進行翻譯,有興趣的讀者可以到官方文件詳細了解:https://vyper.readthedocs.io/en/latest/index.html
1. 沒有 modifier
Solidity 常見的 onlyOwner() modifier; 由於 gist 沒有 Solidity 的語法高亮,故截圖
在 Vyper 中單純用 assert 及 assert_modifiable 來進行條件檢查,兩者差別為若要檢查函數執行後的返還值,要用後者,如下圖:
Vyper 寫法
2. 沒有 Class inheritance 繼承
繼承是物件導向程式設計 (OOP) 的核心概念,但各種繼承關係有時候確實很複雜。Vyper 沒有繼承,這無疑大幅地增加了程式可讀性及安全性,以及降低審計程式碼的難度。在此提供一個例子供不熟悉 OOP 複雜之處的讀者有個概念:
source: https://consensys.github.io/smart-contract-best-practices/recommendations/#multiple-inheritance-caution
在上例中,contract A 的 fee 值 (因繼承自 contract B 和 C,故有 fee 一值) 是 5、a 值也是 5 (因繼承自 contract Final,故有 a 一值)。原因是 A 先繼承 B 再繼承 C,因此 contract A 中的 setFee() 是使用了 contract C 的 setFee(),而 a 值是由於 C(5),這代表 contract C 的 constructor (舊版本中即 function C(),函式名稱同 contract 名稱) 被傳入的值為 5。
稍微延伸一下以上概念,將 contract A 改成:contract A is C, B。如此一來,a 值還有 fee 值都會是 3,因為這次 A 先繼承 C 再繼承 B,因此最終吃到的值是 contract B 的。
以上就是 OOP 繼承的複雜之處的簡單範例說明,應該能稍微感受到爲什麼除去繼承後會大幅提高可讀性及安全性,畢竟即使是熟悉 OOP 的人有時頭腦一混亂也會開始懷疑自己寫的程式碼繼承結構是否正確 …
3. 沒有 dynamic array 動態陣列
這應該是目前 Vyper 設計中爭議最大的部分。沒有動態陣列代表在宣告陣列時需要宣告其長度,也就是說 Solidity 中的寫法 uint[], bool[] 等等,這些是不會出現在 Vyper 的。在 Vyper 中只能出現諸如:
# Vyper 的變數宣告方式為 變數名稱: 存取範圍(變數型態(若為陣列給長度))
values: uint256[10]participants: public(address[20])
可以看到上方的 uint256 及 address 兩陣列皆需要宣告長度,不能不宣告而使其動態地配置空間。
沒有動態陣列固然可以確保執行運算的範圍、次數,但一來動態陣列真的很方便、二來在 Solidity 有此功能而 Vyper 卻沒有的情況下可能會造成麻煩,詳見此一討論串:點我。
4. 沒有 inline assembly,程式碼中不會有組合語言
5. 沒有 function overloading,函式不會因傳入的參數數目不同而結果不同
6. 沒有 operator overloading,運算符號不會有不同於預設的自定義功能
7. 沒有無限迴圈,可免於 gas limit attack
8. 十進位定點數 decimal fixed point 而非二進位 (binary) 定點數,詳見:點我
三. 開發、開發環境設置
結論先講
開發 Vyper 的最佳姿勢目前個人認為是在本地裝上 Vyper compiler、用 Truffle 部署,並在撰寫時將檔名後加上 .py 就能有 Python 的語法高亮👌
1. 語法高亮 (syntax highlighting)
有語法高亮絕對是舒服地寫程式的第一步。
Remix 有 Vyper 的語法高亮,但一來個人目前不推薦使用 Remix 來撰寫 Vyper,原因詳見下方 4. 已知 Remix 問題;二來 Remix 的語法高亮其實也沒有很清楚,因此個人推薦:在本地開發,將檔名後加上 .py 就會有 Python 的語法高亮。
2. 本地 Vyper compiler 安裝
照官方說明使用 Python 的虛擬環境 virtualenv:
source: https://vyper.readthedocs.io/en/latest/installing-vyper.html#installing-vyper
簡單兩點提醒:
如果中間那行報錯但確實已經有 Python,則可能是版本問題。依照自己電腦上的版本改成相應的即可,ex: python3.6 改成 python3
進入虛擬環境後(檔案路徑前方應有 vyper-venv 的提示),使用此指令: vyper {檔案名稱}.vy,即可編譯 .vy 檔;使用完畢後輸入 deactivate 即可退出
3. 使用 Truffle 操作 ERC20
安裝 Truffle
Truffle 雖有冗餘的 migration 但也別無他法,畢竟 Remix 目前仍不完善 :(
下載流程可以照官方文件,使用 vyper-example:
source: https://github.com/truffle-box/vyper-example-box
由於我們會接上測試網 Ropsten,因此還要下載 truffle-hdwallet-provider:
source: https://github.com/trufflesuite/truffle-hdwallet-provider
接者就可以開始使用 Vyper 寫合約了!
發幣
由於 Vyper 的官方文件中已經有許多優質範例,因此本文希望來點不一樣但大家卻又很熟悉的…以 ERC20 為例(這千篇一律的主題xD):
用 Curve 的 ERC20 程式碼為範本,發一個幣(又要發…)
寫一個簡易賣幣合約
選擇這個主題一方面畢竟 ERC20 是以太坊的最大宗應用之一,二來有興趣的讀者可以透過讀 ERC20 的程式碼來熟悉 Vyper,並在看過本文的流程後對於用 Vyper+Truffle 來操作 ERC20 有完整的概念!
好的,首先複製一份 Curve 的 ERC20 程式碼(看到就順手拿來用),並複製到 Truffle 所在路徑的 contracts 資料夾中:https://github.com/curvefi/curve-contract/blob/pool_compound/vyper/ERC20.vy
由於第一點希望著重在跑一次流程,因此不改動合約的程式碼。
將 ERC20.vy 複製到 contracts 資料夾中後,到 migrations 資料夾開啟 2_deploy_contracts.js,首先將 require() 中的參數改為 ERC20.vy 的檔名 ERC20,再來依照自己喜好決定幣的名稱、代號、小數點位數及發行總量,輸入於 deployer.deploy() 中。
接著,為了和測試網 Ropsten 互動,需要將以下程式碼寫入 truffle-config.js。
第二行的 privateKeys 是帳號的私鑰。以下實作需要兩個帳號來操作,因此請從錢包匯入兩組私鑰(並非助憶詞)。
在第 13 行中 HDWalletProvider 此函式的第三個參數代表要用第幾個帳號最為預設帳號(部署合約等),第四個函數代表總共匯入幾組帳號。而第二個參數則是需要至 Infura 申請一個 project 來得到串接 Ropsten 的連結。這兩步驟並非本文重點,因此不詳細解說步驟,Google 搜尋關鍵字應該就會找到方法!
接著,就可以輸入以下指令來將代幣發佈到 Ropsten:
truffle deploy --network ropsten
有進入虛擬環境才可以編譯 .vy 檔,若忘記就會收到如下的錯誤訊息:
記得打開虛擬環境才能編譯 .vy 檔
成功後就可以在 contract address 中看到代幣發佈的位置,加入到 Metamask 中就可以看到。本文的例子是維尼代幣 Winnie the Coin, WTC ;)
contract address 便是 ERC20 的所在
Winnie the Coin, WTC
好了,到此測試網上又多了一個測試用的垃圾廢幣。
寫個簡易賣幣合約
賣幣合約中我想要簡單有兩個功能就好:付錢買幣 、結束銷售,以下就是程式碼。買幣的部分就不寫太詳細,固定價格為 0.01 Ether 可以買 500 代幣。
簡單說明幾點:
Solidity 的 constructor() 在 Vyper 中為 Python 風的 __init__():
函式的屬性(public, private, payable 等等)放在函式上方,與 Python 的修飾器位置相同
總之寫法跟 Python 很像,次方也一樣是用兩次乘法代表:**
變數前加上 self 代表是當前合約的變數/全域變數,因此非常容易與函式中的變數/區域變數做區隔
由於已經在第一行匯入了 ERC20 那份合約,因此透過將地址傳入合約當參數,就可以呼叫在該地址的合約:ERC20(self.tokenAddress) 。並且,可以將部署的合約存成一個變數 erc20 較方便
寫完合約後一樣要更改 migrations 資料夾中的 2_deploy_contracts.js 如下,將代幣所在的地址作為參數輸入。
由於先前已經部署過一次了,因此要重置才能再部署第二次,輸入以下指令:
truffle deploy --reset --network ropsten
部署成功之後就要來試著買幣啦!輸入以下來進入 console:
truffle console --network ropsten
成功進入後應該會看到 truffle(ropsten)> 的字樣。接著,首先取得部署的兩合約,並查看是否有返回合約資訊:
# ERC20 及 SellToken 是先前在 2_deploy_contracts.js 中的變數名稱,代表被部署的合約
let instance1 = await ERC20.deployed()instance1 # 印出 instance1 的資訊
let instance2 = await SellToken.deployed()instance2 # 印出 instance2 的資訊
再來,為了讓 SellToken 可以賣幣,要先用 ERC20 的合約匯幣到 SellToken 的合約。因此,輸入以下指令:
instance1.transfer(instance2.address, 10000)
# 這裡數字只要設為 > 500 就可以
接著,我們要利用第二個帳號去買幣(第一個帳號為預設帳號,因此就是代幣擁有者)。將帳號的資訊存入變數 accounts 中,再指定送出交易的帳號是第二個帳號。由於我個人匯入私鑰的順序是將第一個帳號存在 truffle-config.js 的 privateKeys[0]、第二個帳號存在 privateKeys[1],因此第二個帳號的地址就會在 accounts[1] 的位置:
let accounts = await web3.eth.getAccounts()
instance2.buyToken({from: accounts[1], value: 10000000000000000})
# value 為 10^16 是因為在 SellToken 的 buyToken 函式中買一次要 0.01 Ether, 即為 10^16 wei
然後應該就會在自己的第二個帳號中看到匯入的幣了~
最後,由於合約中結束銷售就是一個自殺 selfdestruct 函式,因此可以呼叫看看,第一個帳戶錢包中的錢應該會增加,因為第二個帳戶有付款買幣;並且,可以到 Ropsten 上瀏覽,應該能看到相關提示:
中間 contract 的右上角有 Self Destruct 的樣式
四. 已知 Remix 問題
Remix 目前有兩個版本,只有新版有 Vyper 的編譯器。在此整理目前遇到的問題,如果有人也遇到可以對照一下本處,可以省去很多自我懷疑xD
不會報錯
Remix 的編譯結果有時會是錯的、和本地端編譯出來的結果不同
舉上方的 SellToken 合約為例,將其複製到 Remix 中使用左邊的 Remote Compiler 有錯,但又不報錯 q_q (ERC20 的合約有在同檔案目錄)
左方有紅色三角形,代表編譯失敗,但沒有報錯訊息可以看…
getter function 竟然要花錢
用 Solidity 寫的合約,查詢 public 變數的值應該是不用消耗 gas 的,但不知何故查詢 Vyper 寫的合約的 public 變數卻要消耗 gas,如下圖…
可以看到中下方有 22026 gas 的消耗
Local compiler 無法使用
圖中的 Local Compiler 此選項,個人雖照官方文件執行 vyper-serve 但卻失敗,因此若有讀者成功希望能留個言不吝分享!
五. 結語
Vyper 作為一個比 Solidity 更新的合約語言,在寫程式碼的方面沒什麼問題,但相關的開發工具、學習資源等都遠不及 Solidity。
Vyper 主打的兩個特色:可讀性的部分相信看完上面的讀者應該已經有些感覺;安全性…小白如作者我倒是沒有感受到顯著的不同。況且 Solidity 已經發展許久,很多錯誤的寫法、知名的安全漏洞大家應該也很熟悉了,還有 Openzeppelin 提供安全合約寫法的範本,因此有待以後高人解說安全性是否真的是 Vyper 較好。
有興趣者可以查看 Vyper 的安全報告:點我,大意是目前 Vyper 的編譯器仍有許多問題待改進! (感謝 Chih-Cheng Liang 的提供)
本文對 Vyper 的介紹及其與 Solidity 的差異只講了個大概,欲知更詳細的介紹還是要麻煩讀者前往官方文件了:https://vyper.readthedocs.io/en/latest/index.html
最後,如果本文有任何錯誤,請不吝提出,我會盡快做修正;而如果我的文章有幫助到你,可以看看我的其他文章,歡迎一起交流 :)
田少谷 Shao - Medium
類 Python 的合約語言 Vyper 開發入門:與 Solidity 差異、用 Truffle 部署、ERC20 賣幣合約實做 was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.
👏 歡迎轉載分享鼓掌
上中下結構字查詢 在 龔成 Facebook 的最佳貼文
【龔成問答信箱】(Q12481-Q12500)
Q12481:
Halo龔成老師,係一個朋友介紹關注你Facebook page,我係投資新手,見你經常會解答大家疑難,我都想搵你俾下意見
Background: 我依家30歲,有大約1m比較長線投資股票 (恆生,滙豐,領展,中電,港燈,香港電訊,中華煤氣,港鐵)。現時每月大約儲蓄$30,000.
問題: 我自己做research見一般穩定收息股最多每年派息率約5%,如果我想達到每年回報有10%,係唔係就需要自己多做功課多下功夫去物色潛力股?
定係都會有其他比較穩定options去達到呢個回報?我目標係每月被動收入$50,000.
龔成老師:
首先,你現時持有的,都是有質素的股,可一直持有。
現時一般的收息股,股息率約5%、6%,這是一個合理的市場要求回報,如果你要去到10%,當中有幾個可能。
第一,你有能力選股,比市場早一步發現了這收息股,這要求你有一定的選股技巧,同時你要花時間不斷選股。
第二,你要等大市去到較平的時候才出手,暫時大市只是合理區,所以你仍要耐心等待。
第三,這收息股本身有風險,業務可以有點波動,所以市場對這股的要求回報都會較高,你都可以投資,但注碼要控制,例如佐丹奴國際(0709)、中石化(0386)、必瘦站(1830)、互太紡織(1382)等(記住,股價略波動,不能太過大注)。
------------------------------------------------
Q12482:
龔成老師 你好啊 我今年22歲 出黎返工幾個月 以前係d月光族所以無咩積蓄 依家先開始逼自己學識存錢
我學到你所講的財務自由,感受到財務自由的威力,同樣都明白左時間同埋自己儲蓄率既關係
有依家月入20000(未扣mpf),要比5000家用之後,我可以存到10000。由7月個陣我將呢10000分作2 parts,2000現金,8000月供,我有幾個問題想問一問
1.我係中銀開月供,5000 恆地(12),3000 港鐵(66),呢個比例合理嗎?
2.我7月買入恆地($43.8 ),港鐵($55.5), 我見依家12已經$40.x,66都已經51.x,有dd擔心,定係我唔應該成日睇住,繼續供?
3.以我得情況,有可能達至財務自由嗎?我怕我的方向一開始就錯了。
唔好意思,問得比較多,多謝你咁有心機睇,希望你可以比少少建議啦
龔成老師:
1)建議你減少少恆基(0012),減至$3500-$4000,因為你這刻月供的比例較多,我想你儲多少少現金,如果大市下跌,你的現金可以掃平貨。
2)你完全唔洗理短期的股價,建議你唔好睇股價,保持每個月月供就得。這兩股都是優質股,你只需要睇「企業」,而不是睇「股價」。
3)可以,但你仍要提升投資能力,因為你如果運用餘下的現金,將會是其中一個關鍵。
------------------------------------------------
Q12483:
老師你好!早兩星期買入IMAX China(1970),相信佢業績應該會有增長。今日公布2019上半年業績,大中華區總收入達5,930萬美元(約4.6億港元),較去年同期增長15.1%。
現想請教這股票過去兩年股價向下,老師點睇,是否業績末如理想?現有股票是否值得繼續持有或減持?
龔成老師:
MAX CHINA(1970)其實本質不錯的,中國的市場仍在增長中,不過由於過往市場認為佢的增長會好勁,但近年的增長已是平穩,相對令市場失望,所以股價受壓。
再睇翻佢的財務數據,算是不錯,預期這增長仍然可持續,至於股本回報率高,雖然是利好因素,但由於佢上市年期不算長,而上市前後的股構結構不同,因此未必能完全反映企業的賺錢能力。但都是不錯的。
但要留意,佢現時市盈率近20倍,已反映了利好的因素,因此估值算是合理。
------------------------------------------------
Q12484:
龔成老師您好,我今年41歲,已婚,月薪65K,每月大約可儲15k-18K ,手持現金40萬,無投資經驗,無股票在手,另每月供樓8K,五年後供完。
本人想問,如果想五年後買多層樓收租好嗎?十年後達到財務自由後想移民台灣生活退休,應該點開始?
如果月儲邊幾隻股票比較適合?感激!
龔成老師:
你可以用5年作為一個投資年期,目標是5年後買多一層樓,這段時間就利用股票,合理將財富滾大。
你可以投資「平穩增值股」。
現時的$40萬,暫時只能動用$20萬,因為大市唔算平,你要分注投資,同時留下一半資金。長線投資。
同時,你可以做月供股票,供「平穩增值股」,每月供$10000,盈富(2800)佔較多,其實則有:金沙(1928)、長建(1038)、中銀(2388)、港鐵(0066)、恆基(0012),你可以從中選2、3隻。
你5年內,利用這方法滾存財富,之後買收租樓,買樓後繼續以股票作累積財富的工具,但到時投資的風險會低少少,轉到收息股。
------------------------------------------------
Q12485:
老師你好,本人月入大約5萬,已婚,有3個孩子。兩夫婦月入大約10萬元。
因與先生剛置業半年,所以積蓄唔多。現時有40000股939, 2000股0012,8000股709。見銀行經常有寄信來,可以提供低息貸款。
想問如果借黎買股票收利息,然後每月還返條數,預計借10萬至20左右,一年還清,咁樣有無風險? 有什麼股票或投資可推介的?
龔成老師:
唔建議用這方法。
你現時買完樓,其實負債比率已上升左,另外,你現時應該現金不多,所以應該一步步,儲翻多D現金先,然後就慢慢增加翻股票,例如盈富(2800)、恆基(0012)、銀娛(0027)。
這類借貸投資,其實有利有弊,雖然現時低息,的確可以賺到息差,但有機會出現「賺息蝕價」的情況,同時會加大了你的負債比率,因此有利有弊。
唔係話這方法一定有問題,只是,建議在「有真正機會」時才出手,即是股價處平水平,見到一個真正的投資機會,同時減少你有可能出現「賺息蝕價」的風險。
------------------------------------------------
Q12486:
龔老師您好:小弟是投資新手,有事想請教龔老師您。
小弟現年34,已婚沒細路,亦不打算要。手頭上有200萬現金,以及一層現在價值約700萬的樓,已無按揭。
沒有任何股票和其它投資的經驗。現時每月收入約70000元。恆常開支每月約10000元。
太太現時每月收入約40000元,恆常開支約15000元,手頭有約60萬現金。 我們有意在十年內移居台灣,由於台灣我們預料也找不到工作,因此就當退休生活吧了。所以我們現在有以下目標:
除了樓之外,十年後手頭上的總資產達1000萬(包括現金,股票等),如何進行??
龔成老師:
以你的年齡及投資目標,你可以集中投資平穩增值股,例如盈富(2800)、金沙(1928)、長建(1038)、中銀(2388)、港鐵(0066)、恆基(0012)、粵海(0270)等。
你現時的$200萬,可以動用$80萬,分注投資這些股,唔好一次過入,要分注慢慢入。
另外,你可以做月供股票,每月$4萬,同樣可以投資盈富,以及選上述部分股票,再加小小潛力股,例如比亞迪(1211)、中生製藥(1177)。
另外,以你的年齡,建議你多增加投資知識,在選股、企業估值、投資時機上落功夫,對你長遠財富有好大影響。
現時大市處合理區,可以一邊投資一邊留現金,而餘下現金的運用,就是等大跌市時出手,如果你能在這段時間學好選股等技巧,到大跌市時就能把握機會,財富增值會更明顯。
只要你保持月供及分注投資,你地要在10年後有過千萬,再加上原有物業,絕對有可能的。
------------------------------------------------
Q12487:
本人今年為33歲, 於去年底結婚, 暫時未有兒女. 本人月薪合共約 $80000 左右. 於數月前花光了儲蓄買入了第一層物業
由於本人並沒任何股票, 日常只有靠工作收入儲錢, 因之前參考老師 "以資產追資產" 的概念後, 當購入第一層物業後, 現時該怎辦? 買股票還是繼續儲錢買第二層樓?
本人和太太扣除日常開支後, 大概每月能儲4萬左右, 現時也租了一單位暫住 (租約未完)
暫時未有孩子
本人希望每月能有穩定回報, 希望在有孩子前有充分準備,萬分感謝老師贈教。租左買果層樓出去, 係咪好選擇?
龔成老師:
如果你本身有租的地方住,而暫時唔租新買的物業,就要盡快將物業放租,以產生現金流。
另外,你應該加強翻股票方面的投資,利用股票去滾大財富,這就是「資產追資產」的模式,你先利用股票去滾大財富,然後到了有一定財富後,同時樓市在適當時機後,就再買另一物業,不過這一步不用急的。
你可以投資「平穩增值股」+「潛力股」,不過,由於潛力股要求你有一定的投資知識,因此這刻不用急著投資,你可以集中在平穩增值股先,潛力股最多小注。
你可以用$2萬去做月供,同時儲現金。
------------------------------------------------
Q12488:
老師,楓葉教育弱左,質素如何?長遠如何?
龔成老師:
楓葉教育(1317)本質仍是不差的,但中國的策略,令增長力減弱左,同時令市場對佢的估值減少左。
規模、品牌、學校網絡、財務數據,本質都是不差的,而佢的定位亦是在教育版塊中較受惠的。當中國人可支付的收入不斷增加,這類價格較合理的國際學校,將會爭取到更大的市場,其實這點在近年的收入及毛利率數據可見,這反映佢定位成功,受益大環境的情況。
但政策風險令這股的估值略減,近年,中國政府推出了一些行業的指引:「實施集團化辦學的,不得通過兼併收購、加盟連鎖、協議控制等方式,控制非營利性民辦學校」條例。
這的確加強了對行業的監管,限制了對非營利性學校的併購,但具體條文仍存有未知數。
其實,中央對民辦教育的政策,仍是偏向正面,例如稅務上的優惠,只是想加強當中的監管。這必然會影響楓葉教育的發展,但又未至於核心性,因為楓葉教育仍可透過不同的模式去發展,同時海外市場亦是另一動力來源。
所以在估值上,我地不能太過進取,現時只可以話合理,最多是合理區的中下部,唔能夠話平宜區。
------------------------------------------------
Q12489:
阿Sir,公司有冇方法用財技去谷大ROE嘅呢?譬如借錢。
龔成老師:
公司利用借錢,的確會谷大ROE的,所以我在股票班教選股時,其中一個指標,就是選股時不能選負債太多的企業。
其實,我地可以再將R0E拆開去分析,但這已是較深的內容,相信會在我接下來的進階班講述。
------------------------------------------------
Q12490:
成哥, 兩兒去年開始每月合資$8000買股票,欲長期持有增值。
因想自定購入價故不供股,每月買入一手建行、理民造纸,現時計埋收息仍虧損中。 請問$8000內一手有何合適選擇?
龔成老師:
建行(0939)可投資,這是不錯的收息股,但增長力不強,如果年齡較少,其實投資可以集中在「增長」,唔需要太早收息。
至於理文造紙(2314)以質素本說,算是不過不失的,但又唔算高質之列
佢的生意其實有增長,但盈利就有點波動,由於紙價及成本等問題,令佢最終的盈利較波動。而佢亦未能將成本轉嫁到客戶上。
這反映佢不是無賺錢能力,但營運模式就比較被動,產品價格的自主力不算強,因此質素不算最高級別。
質素中等,都算有投資價值,但就未必值得好太注投資。
所以原有的貨,可持有,但之後未必值得買入太多。
另外,建議投資盈富(2800),不斷儲貨,這是較簡單及理想的投資模式。
------------------------------------------------
Q12491:
龔sir,小弟睇左你本股票勝經,諗住試下投資潛力股,有少少問題想請教下
1. 中生製藥,福壽園,比亞迪電子,比亞迪股份呢幾隻都成日聽你講,想問下比亞迪電子同股份係咪一個搞電子一個搞電動車? 有冇咩網站可以睇多啲佢地既資料? (至少佢地既業務範圍等基本資料)
2. 現時月供$4000 2800,2 66 823 2388各$2500,想投資潛力股,應該月供$1000定係儲現金等低位入定係一邊月供一邊儲現金?
3. 現時我未學識企業估值去睇股價平貴既情況下投資潛力股會唔會太大風險?
4. 我十分想上你既股票班去學多啲智識但奈何因工作時間未能抽空去上堂,有冇咩書推介可以用空餘學下企業估值?
龔成老師:
1)這些都是潛力股,你要留意,潛力企業有較大的不確定性,你要有一定的投資技巧,同時注碼比一般的優質股,會低少少。
比亞迪(1211)主力電動車,比亞迪電子(0285)主力在手機的代工及模組等,現價都可以小注投資,視乎你睇好邊個範疇。
2)你可以投資比亞迪$2000,保持月供。
3)只要是優質股,同時你以分注或月供的模式進行,咁就得。
如果你有企業估值的能力,就較易捉到平宜價,因此就算唔月供都無問題,可一手手咁樣入。
4)你可以睇《年報勝經》,以及有關巴菲特的書,例如《解讀巴菲特》、《巴菲特寫絡股東的信》。
------------------------------------------------
Q12492:
龔成你好,我於80蚊買入一手中移,最近股價跌到52週低,更創下5年低位,原因不明,不知是否有大戶沽貨
想問問中移前景仍樂觀嗎?
5G對佢來說,長遠正面嗎?
龔成老師:
所謂的大戶買賣貨,都只會對股價有中短期的影響,你唔需要理會。長遠來說,股價會回歸企業的價值,所以我地以分析企業價值為核心。
中移動(0941)的質素比過往年代減弱,不過現時仍可算是有質素。因為政府唔想行業的費用太高,因此行「提速降價」政策,會影響佢長遠的賺錢能力。
你預這股是收息,以及平穩增長的股,持有無問題,但就預增長力不強,暫時可持有先,你可到升多D,先轉去增長力較強的股票。
5G對佢都算有利好,但就唔好預有太大驚喜,因為政策唔想相關費用太貴,所以佢賺到的錢不會太多。
------------------------------------------------
Q12493:
龔sir點睇3692翰森制藥
龔成老師:
翰森製藥(3692)是上市不久的股票,這類股較難分析,風險較高,市場對其估值亦無統一的概念。
以規模及過往的賺錢能力來說,不錯的,但上市前的數據代表性較低,因此未能確定當中的優質度,初步分析現價不平,投資值博率只是一般,如投資,不宜大注。
------------------------------------------------
Q12494:
老師,我覺得0001長江,現屬於便宜區,因書中又說電能同長建都算不錯,我直接買入長和,可以嗎
我去過好多書局,都買吾到年報勝經,我見人地已買到。係吾係要書展先有,書局要遲下?
另外,我想問巴菲特說的證券分析,是否這本有上下冊的書?
龔成老師:
長和(0001)現價只是合理區,未到平宜區,唔好因為企業的一段時間的股價高低,就判斷平貴,我地要同時考慮企業的價值,以及長期的業務情況
你可以分注或月供,但你預這股的增長力弱左,只是平穩增長型。
《年報勝經》,因為唔少書度都斷左貨,賣晒,所以你見唔到,你要主動問職員,亦可以同書店話要訂貨,我相信過2星期會正常翻,有新貨到。
《證券分析》有不同的出版社出過,有分過上下冊的。
------------------------------------------------
Q12495:
不好意思,常常煩到您,但因為你的教學好好,我十分相信你,而且我十分好興趣這對些知識
但身邊沒有人對這知識有了解,他們也不明離開老鼠賽道的好處,他們也不明投資知識在自己身上也是一種投資,他們只想知答案,但不求為何。
如股票一樣,他們只想知,幾錢買,幾錢賣,郤不求它點解值得升,它是什麼公司。當解答他們不到,可以升到幾錢,他們還會笑我,學的東西根本沒有用
說我說咁多有咩用,其實不明的是他們,因為他們不知道,有實力的公司是什麼,有能力去賺錢的是什麼,更不知複利的威力是什麼。
雖然他們不明白我,但我知道跟你學習,看你的書,巴菲特的書,成功學的書,吸引力法則,2/8定論等,我知道,我會像你這樣成功的,我收入穩定了,我一定會來上你的課的。我知道我選擇這條路是沒有錯的。
如一直埋怨香港沒出路,這不如好好裝備自己,等時機一到,加上學識,為自己人生殺返出條光明路
龔成老師:
你唔需要說明不明白真正知識的人,你只要做好自己就得,每個人都有佢自己的觀念,有些人是好難講得明的。
所以,我好多時講完就算,然後我就會做好自己,只要以「自己」去證明方法成功,這就可以了,加油!
------------------------------------------------
Q12496:
你有開班關於如何製造穩定的被動收入嗎?
龔成老師:
我主力在股票的投資與分析,我地進行財富配置時,會用平衡組合的模式,股票是其中一部分。
而我地進行人生財富累積,會用「先增值,後現金流」的模式進行,即是當有一定的財富,就會集中現金流,當中的其中一個分配就是「高息股」。
課堂所教的,都適合運用在高息股,同時有部分內容是針對高息股的。
------------------------------------------------
Q12497:
老師,今朝又買左你本新書
以前我感覺得儲現金就得 唔需要投資 總覺得投資唔係我地呢D人玩 但睇左你書後心態唔同 宜家非常期待回報
龔成老師:
知識要慢慢學習,以及累積的,唔好打算一步登天,你要先做一些基本的理財,投資方法,先由較低風險的著手。
在這段時間,好好睇書、學知識,然後知識增加,再投資不同類別的股票,財富穩步增值。你的財富與你的知識成正比,加油!
------------------------------------------------
Q12498:
成兄。
你認為天立教育潛力會大嗎?
龔成老師:
天立教育(1733)主要係中國中西部,透過結構性合約經營幼兒園至高中學校,以及經營培訓中心及早教中心
(即遊戲學習中心)。
業務基本上不差的,增長力不錯,但中國的教育政策有可能對其成為風險,同時現時估值唔平,值博率中等。
暫時股價潛力未算好大,如你想投資,小注都可以。
------------------------------------------------
Q12499:
你好龔成Sir,最近一個月才經朋友介紹下始認識及拜讀老師的文章及信箱。
本人45歲,「遲做」好過「唔做」,現想學投資增值,希望可以(在10-15年)退休前為財富增值,建立被動收入;同時,現居住單位月租$20000,跟已退休父母同住,考慮應否計劃置業作自住或收租之用。
沒有直接投資經驗,過往只過買儲蓄投資相連的(基金)保險計劃,月供$3000,已供了差不多12年;理財顧問早年離職後,最近上網查詢,每年回報由最理想11%-12%,跌到現實中的1%。
現金:HKD1,100,000
3個月港幣定期:HKD100,000
6個月美元定期:USD50,000
12個月人民幣定期:RMB 500,000
另外,有買年金5年供20年繳,及退休儲蓄保險
銀行月供股票適合嗎?或是用收費較平的富途牛牛進行一次過買入股票?
明白與其他來問比較,未有確實具體數字目標,還望老師指教。
龔成老師:
首先,你要清楚分析翻,自己是否想買樓,因為買樓與唔買樓,你之後的理財會變得好唔同,如果買樓,例如在3年內買,你就要持有較多現金,投資長期性項目亦不能太多。
若果唔打算買樓,你可以將現時部分的現金與定期,投資股票,以你的情況,可以投資平穩增值股,令財富平穩增值,你離退休有15年,你可以利用10年時間去增值,然後就慢慢將財富,轉為收息類資產,以準備退休。
如果你現時無樓,同時在長期租樓,我會偏向你在適當時機買樓,例如在3年內。
因為香港樓市的供求失衡,現時政府施政更加困難,大嶼山項目可能推遲或停止,這一定會對長遠供應有較大影響,因此,如果樓價在這幾年,有少少調整,又或你認為合適的時機,其實可以買樓。
如果你想買樓,財富配置上就要留較多現金,最多只是計好數,餘下有資金可長線投資,才買入盈富(2800)等股票。
------------------------------------------------
Q12500:
龔成老師你好。自從一年前接觸到你書之後一直都好崇拜你, 視你為學習目標。我係投資新手, 有d關於月供基金同埋月供股票問題想請教你。
我宜家20出頭, 單身冇家庭負擔, 預計短期內大概五至八年都要會係咁。
宜家每個月扣除左生活費同埋家用之內可以用的錢有大概HK$30,000。
因為一直都有留意開你Facebook既post本身打算用一半來做月供股票~ 因為老師好似比較少提及去買月供基金。
但最近有個保險公司經紀同我講話做月供基金其實會更加好。不知道如何抉擇。
我主要有兩個目標:5-7年內希望儲到首期買樓可以買樓 大部份的錢 (7成)會用來買樓,其餘少部份會用黎創業(3成)做小生意。
保險公司比我嘅計劃係:
十年每個月月供$15,000但係要至少供到第七年先可以超過本金咁樣拎出來。回報率佢預測係6-9%(but not guaranteed) 於是佢幫我計左條數公道第十年的話,我會有$230-260萬左右。
但缺點就係頭2年半我唔可以停供之後就可以選擇減少供款金額。 同埋理論上時間越長回報率越高。(所以其實我十年供斷拎出來都係唔着數。)
同埋配合返我嘅計劃如果我第六年拎出黎其實我淨係會淨賺咗四萬幾蚊(total: $116萬即係我自己投入的有$112萬)回報率好似好低
我想問一問老師:
選擇月供股票 (即是老師平日所講的穩定潛力增值股票 例如:盈富基金、中銀、金沙娛樂 等等)會唔會回報率超過左我上述月供基金Plan 呢?
上網睇咗一d文章明白月供股票同基金的主要分別在於:
1.月供股票淨係可以投資香港股票但係基金可以投資外國股票;
2. 月供基金有專家去睇住所以風險比較低;
3. 月供基金比較缺乏彈性需要供款一定年期否則蝕。
請問老師我應該如何分配HK$25000?淨係買基金定係股票定係兩樣都買?比例又應該如何呢?(因為$30000入邊我諗住每個月$5000做儲備等待低價入股市)另一個因素唔知是否相關:大概兩年之後每個月減咗必要生活費同家用可以有$40000。
最後就係如果老師建議我月供基金的話建議我應該向保險公司OR 銀行 定係基金公司?
多謝老師!解答疑惑真係感激不盡
龔成老師:
保險公司的產品,有佢的作用,當中有利有弊,好處是回報較為確認,而股票的不確定性較大,從回報上,股票的回報會較好,但問題是風險會較大。
另外,股票的好處是流動性較強,你可以較易配置,但你上述的產品,流動性就較弱,所以,各項目都有當中的利弊。
而我地進行理財,其實是建立一個組合,當中有平衡的分配,以減少風險,你可以將部分資金,投資在上述保險公司的產品,作為理財中防守的部分,例如每月$5000-$8000,不用太多。
因為你現時的年齡,其實應著重「增值」的層面,因為當我地進行人生財富累積時,會運用「先增值,後現金流」,所以你這年齡,是財富增值的黃金時期,唔好太過保守,進取少少都可以。
同時,你亦要盡力量去學投資知識。
你可以將部分資金,做月供股票,盈富基金(2800)已是不錯的選擇,另外,你可以投資其他在交易所買賣的基金(ETF),例如領航標普五百(3140),這是追蹤美股指數的基金,你買這個基金,已是買外國股票的組合,而且管理費比傳統的基金低好多,盈富一年只是0.1%,3140只是0.4%。
只要長期供這些ETF,其實你已有不錯的回報。
另外,唔好用盡所有現金,要留有部分現金,等機會入貨,買股票,所以你要盡快在這段時期,好好儲現金,同時增加知識。
----------------------------------------------
多謝各位提問,若然你有問題想向本人發問,可在龔成的fb專頁中(www.facebook.com/80shing)inbox龔成,但要注意如無特別聲明,有可能將問答放上網的,當然,會將發問者的身份,以及有關個人的部分刪去。
另外,由於提問人數眾多,見諒無法即日回覆,如果是普通的提問,預起碼要7天以上才能回覆,若然是較複雜的提問,起碼要10天才能回覆,希望各位能諒解。
上中下結構字查詢 在 宗佑-文字慾的囚徒 Facebook 的最佳解答
有些東西被淘汰,其實是必然的。
該說是時代邁入現代化的必然現象嗎?
其實也不盡然,因為就算時代不進步很多東西也會被淘汰;反之,時代再怎麼進步,很多東西也不一定會被淘汰。
每次想到這種事,我都會想到一個很古老的東西叫做"江東犁",這種又被稱為是"曲轅犁"的農具,發展成形在唐朝;又由於這種犁可以靈活操作,所以在田面積(相對北方旱地較)小又高低不一的情況下,這種盛行在江南地方的農具,又被稱為"江東犁"。
好啦,感覺上有看到語病吼?
江南這個概念可以有狹義或廣義的解釋,但最多指得是"長江以南",但長江中下游的河道走向其實從東西向(左右),轉為南北向(上下),所以在地圖上看起來就是長江之東側。
這也就是三國演義裡面最常出現的"江東"一詞的釋義(之一)。
---------------------
說回"江東犁",這個東西的神奇在於,它從唐代開始一直被沿用到清代,也就是說它在主體結構沒甚麼改變的情況下,被用了一千多年。
這段時間歷經了五個朝代,而到今天第六個朝代(連"中華民國在中國"算進去則是第七個),進入機械化農業的現在農耕機器,也有一部分是運用了"江東犁"的原理構造。
(想看江東犁也不用到中國博物館,台灣傳統農村也照樣用;因為所謂的本省人,其實也就是明清時代來台灣的中國(省籍)人,而外省人,也不過就是幾十年前隨著國府軍來台的中國(省籍)人。
或許因為政治因素,會有台灣人等國別認同,但從文化或歷史沿革上來說,墓碑上的堂號是無從否認的)
這是一件很神奇的事-----我是說江東犁。
如果這不是因為這個犁頭本身的設計就無懈可擊、無可取代;那就表示這反映了一個中國文化下農村人的心態 : 能用的東西就沿用,沒有必要就不要造次....的心態。
--------------------
這就是我說時代再怎麼進步,某些東西也不一定會被淘汰的案例;但大部分的東西都會淘汰。
例如,新聞裡說的書店。
十幾年前,我以超齡之姿念了(人生第一個)大學;當時念的是歷史系,而一心想念好的我,自然會(趁機)購入大量的專業書。
(還假公濟私的把搭得上邊的全部買回來)
身為一個兩袖清風、兩餐吃風的窮大學生,我自然要想辦法省錢,所以新聞裡面描述的:「有些人看到書背後的標價,又拿出手機搜尋網路比價,看完網路價格就把書給塞回去櫃上,看了心都痛。」..........就是我會做的事。
但,我也有苦衷啊。
我需要大量閱讀,也不想煞費苦心去找盜版或翻印,自然只能挑便宜的買,甚至去(二手書店或二手書的網路通路)買二手書。
這種行為,也會成為實體書店的困境之一。
--------------------
那實體書店的其它困境是什麼?
就是成本。
實體店面要租金,開在偏遠的地方沒有集客力,但開在客人多、交通方便的地方,那就是貴;書店要夠大,陳書才會多,如果幾個樓層租下來,房租自然更貴。
另一方面,店面大,人力就要多,要搬東西;如果空間大、陳書多,那就更可怕了。
而書的利潤不高,一般就是一成上下,除非你敢同一本書進個幾百上千本(才有可能多半成);也就是說,老闆必須用這一成多利潤,來養活員工、付房租、水電跟營業稅。
再加上我們貨比三家的投機心態,焉能不倒?
------------------
那網路書店呢?
因為都是包裹寄送,所以不需要來客數多,那就能挑偏遠的場地來做倉庫(然後可以又便宜又寬敞)
工作場所也不需要裝潢或明亮,更不需要布置跟設計場地主題,也不需要把書擺的很整齊,甚至可以堆疊在地上。
光這些條件,基本上員工數對砍一半以上,而他們也沒有太多進貨壓力,甚至只要放個十本就好,其他資訊網路都有,客人可以隨時去看詳情,也可以預先訂貨(然後商家再按數量訂就好),所以也省了那些需要被請來被諮詢的人力。
而在自己能夠提供無遠弗屆的銷售服務下,他們就可以跟出版商壓低價格,然後再由我們這種貪小便宜的人來拍下封面、上網查詢,接著送貨到我家旁邊的便利商店。
焉能不賺?
------------------
建弘書店的倒閉不是第一間,也不會是最後一間。
實體書店的傾頹,是很多問題複合下的結果。其中有網路發達的原因、另外型態消費通路的崛起、少子化、大家不愛看書了............(不然我的粉專不會只有現在的人數,推廣最大的問題就是"字太多"了)
但身為一個每次回台北都會常常去重慶南路找書、手上也擁有一千五六百本實體書的書迷,建弘書局的倒閉也讓我覺得非常唏噓與感慨。
這種感慨讓我聯想到的是那個 : 以前換手機是因為手機壞了,現在換手機是因為它舊了,再不換就會終止更新服務或是根本無法撥打......的相同感慨。
手機沒壞不是錯,錯的是它老了,所以時代淘汰了。
實體書店不是錯,錯在它基於結構問題,變成成本太高,然後在大者恆大的市場定律下,只能自己退場了。
但,如果真的要悼念實體書店最讓我難過的,除了光華商場那些讓我爬上去尋寶的老書店外,就是師大路的水準書局了。
.
.
.
.
====
#網路書店沒有人會跟你聊天找書也要自己來
#我現在很擔心三民書局
#我也想支持
#但我也有苦衷
每週一、三、五的晚上10點半,一起看、一起想、有瞌睡蟲一起養。
====
如果文章能合胃口,請記得按讚、分享、追蹤、搶先看。
#設搶先看的步驟請看這裡 : https://www.facebook.com/GeeChungYo/posts/2253325874890594
https://tw.news.yahoo.com/%E5%BB%BA%E5%BC%98%E6%9B%B8%E5%B1%8045%E8%BC%89%E6%8B%89%E4%B8%8B%E9%90%B5%E9%96%80-%E5%89%B5%E8%BE%A6%E4%BA%BA-%E6%AD%A3%E9%9D%A2%E8%BF%8E%E7%B6%B2%E8%B7%AF%E4%B8%96%E4%BB%A3-084936905.html
上中下結構字查詢 在 國語南一自學課程內容講解國字結構語文天地四(小貫頭每日讀書) 的推薦與評價
上中下結構 的字有「草」、「意」、「競」,中間部件收縮,上下部件應稍微寬而伸展些,中間部件開放,上下部件就應當寫得窄些。 全包圍結構的字 ... ... <看更多>