【龔成問答信箱】(Q19541-Q19560)
Q19541:
想請教一下,你成日叫人買2800,3067,有咩好?現價貴嗎?需要等回d才入嗎?
這是ETF嗎?
我見佢地又唔係高息股,增長又好似好平穩咁,3067好似未派過股息,點解要選呢2隻呢?求解答,謝謝
龔成老師:
ETF,就是交易所買賣基金,盈富(2800)、恆生科技ETF(3067),就是。
現時盈富合理,但3067就少少貴,不過3067就較有增長力。
盈富有基本派息及平穩增長能力。
3067,目的不是收息,是增值,這是一個潛力股組合。
如果想收息,可考慮GX恒生高股息率(3110),是一個主攻收息股的基金,股息率約5%。
由於ETF是一個組合,有多隻股票,對於無乜選股能力的投資者,這是一個很好的選擇。所以我一般都以這為核心建議。
至於投資那一隻,怎樣配置,就要睇你本身的風險承受能力及投資目標。
------------------------------------------------
Q19542:
龔成老師,您好。本人是70後,單身,每月收入$35000。由於年少時有很重家庭負擔,儲蓄不多。現時手上沒有物業
現金只有30萬,MPF由今個月開始自願供款$8000 ($4800環球股票 / $3200 盈富基金)。每月仍有$8000可運用
應如何投資,預備退休生活呢?自知起步很遲,但遲到好過無到。希望老師指點一下。謝謝。祝聖誕快樂!
龔成老師︰
現時起步雖然不早,但相距退休都有時間,可為財富進行增值。
策略上,你可以投資"平穏增長股",作為增值之用 。你先用每月5成儲到的錢做月供,其餘先儲起,用一邊月供一邊儲蓄的策略。
選股上,你可以投資在平穏增長股︰盈富(2800)、金沙(1928)、恆基(0012)、平安(2318)、中銀(2388)、港鐵(0066)、煤氣(0003)、長建(1038)、粵海(0270)、領展(0823)。
至於MPF,你想分散地區性風險,投資環球股票都可以。但追蹤恆指MPF,其實你可以直接用月供盈富(2800)來做,成本上應該會較少。
現時大市只是合理區,你現有30萬資金可以先投入一半,用"分注"形式,慢慢買貨。餘下一半和每月所儲倒的資金,就等大市出現一定程度的下跌,才大力度掃貨,然後長線投資。
------------------------------------------------
Q19543:
龔成老師你好,我是近期才接觸你的facebook。我趁著假期,不斷看你寫的東西。只是看Facebook的內容,也令我感懊悔。只恨十年前我未懂這理財概念。
現在希望你能就我的背景,給我一個方向和投資的建議。
我四十歲,月入$70000。扣除每月給父母的家用($20000)、供自住物業及日常水電煤($10000)、養車($3000),另外每月供年金($5000)、
醫保、危疾及人壽保險約($2500)、每月可儲蓄$20000。
這一年未能去旅遊,故現時最大的消費就是交稅,每年15%工資。
我年少時身邊人沒有投資令財富增值的概念。最精明的決定是十八歲時買了一份人壽儲蓄保險及廿多歲時購入現時的自住物業。
可惜股票令我不斷損失。十年前一筆十多萬的現金,聽長輩説買了渣打,但現在價值大跌五倍;近兩年再有一筆儲蓄,聽長輩說買了匯豐,現在跌了一半,買中銀,也跌了三份一。
這些銀行股現在仍然持有。到上星期買了少量京東健康,平安夜便大跌。
這幾天靜下來,突然想到人到中年,生活開始轉舵,令我不斷反思要痛定思痛,重新學習理財。我會繼續閱讀你的文章,但也希望得到你的回覆。謝謝你的耐心。
龔成老師︰
現在開始唔算好遲,只要學好正確投資理財知識,依然可以做到唔錯增值效果。
銀行股增長力相比過去10年多前,已經弱左好多。渣打(2888)和匯控(0005)增長力都只係一般,唔適合你用來做財富增值。同時,同一行業唔應該佔響比多過30%。
而中銀香港(2388)和京東健康(6618)係有質素,可持有。但京東健康不確定性較高,只宜小注。
另外,年金這類產品,係做財富增值時,都不宜有太多。你可以考慮調整下個金額,空出更多資金用來投資優質股。
以你現時人生階段計,應以"增值"作為重點。你先用每月5成儲到的錢做月供,其餘先儲起,用一邊月供一邊儲蓄的策略。
選股上,主力放在平穏增長股,再加一些潛力股。
平穏增長股︰盈富(2800)、銀娛(0027)、恆基(0012)、中銀(2388)、港鐵(0066)、煤氣(0003)、長建(1038)、長建(1038)、粵海(0270)、領展(0823)
潛力股︰港交所(0388),中生(1177)、福壽園(1448)、華夏恒生科技(3088)、阿里(9988)、騰訊(0700)。
而儲下的另一半現金就等機會,當大市出現較大回調,就加大力度掃貨,然後作長線投資。
------------------------------------------------
Q19544:
老師!有事想同你分享同請教...我運動人出生,由細到大都無耐性睇書!我今日先第一次完完整整睇完一本書!係50優質潛力股,兩部分都好好睇!獲益不少!
睇完我抽左幾隻想你比啲意見...
我想主力收息加小小增長,
1. 你覺得領展,陽光,長建,現價邊隻好?
2. 係咪領展($68.9)合理區中間,陽光($3.72)同長建($39.9)就合理區中下?
3.福壽園同必瘦站係咪福壽園會更優質?我等佢$7 開始儲貨。先謝謝老師
龔成老師︰
1) 領展(0823)和長建(1038)會較適合,以股息率計,長建有逾6%,已經有投資價值。而領展最好等約5%,才分注入貨。
2) 領展(0823)現價在合理區中上,而陽光(0435)和長建(1038)則在中下部位置。
3) 2者都唔差,但整體潛力和質素計,兩隻都有質素有潛力,現價計,1448在略略貴,可以小注入貨。1830就合理區中上部至頂位。
------------------------------------------------
Q19545:
龔成老師,我想投資地產類股票,我見你都推介咗好幾隻,請問那隻現價比較抵買呢?
12,435,778,823,1972。
Thank you.
同埋2013 可以揸長線嗎?現價合理嗎?幾錢入才合理?
龔成老師︰
現時這些股票都在合理區較底位置,可分注入市。但領展(0823)和太古地產(1972)等到有5%息才入貨,會較理想。
但留意,置富(0778)和陽光(0435)增長力好一般,如果你係年青至中年人士,就唔適合你。
微盟集團(2013)集團主要在中國從事提供軟件即服務產品及營銷服務。
佢的產品分為「商業雲」解決方案、「營銷雲」解決方案及「銷售雲」解決方案三類。
「商業雲」可助商戶開設線上業務並助彼等提升顧客參與度、轉化率、收益及忠誠度。「營銷雲」通過大數據分析能力及AI技術為商戶提供智能營銷服務。
長遠業務上係有一定潛力,但盈利和股價上佢都幾波動。此股可投資,但只宜小注。
------------------------------------------------
Q19546:
龔sir你好,有幾個問題
1. 想請教因為見你好多次提及如果投資潛力股風險大, 而且只適合有投資知識同經驗既人. 但係你推介左好多潛力股, 例如9988,
其實你都覺得呢D 公司都好有前景, 之後佢都一定會大升, 我只要按你既合理價買入係咪就已經唔存在風險大呢個問題?
2. 現持有以下股票, 以下股票
1手 270 粵海
1手 9988 阿里
1手 2800 盈富
1手 1177 生物
1手 1448 福壽
1手 1398 工行
1手 3067 ETF
4手 1382 互太紡織 (平圴價$9, 幾年前入已虧損左好多)
1手 1800 中交建 ($10, 幾年前入已虧損左好多)
3. 因為我投資知識同經驗都好低, 但係如果靜係投資平穩增值股, 未必滿足到我3年內獲利60萬既目標,
現時我希望用多10萬資金作投資, 咁其實我應唔應該將資金放多D 落你推介既潛力股, 定係都係主要平穩增值股?
4. 另外, 我以上股票組合, 係太進取定係太保守?
謝謝龔sir
龔成老師︰
1) 按合理價買入,可以減少風險之餘,也令潛在長線回報增加。
但唔係代表唔存在風險,因為佢地增長潛力係高,但不確定性同樣大。前景和潛力就算高,都唔代表每一隻優質股最終會大升。所以,我經常叫人唔好集中晒係1,2隻,要分散多幾隻唔同行業優質股,就係其中一個原因。
要投資此類潛力股,除了你本身要有一定投資經驗外,人生階段都係一個考量。如果你係較年長人士,這些波動性高架股票,就不宜持有太多。
2) 這些股票都有質素,除了中交建(1800)質素較一般。
當中工行(1398)和互太(1382)主要係收息,無乜增長力,如果你係較年輕,就不宜持有太多。
3) 我地投資係講求在合理風險下,爭取最大回報。
當你投資知識不足,能投資時間又唔長,但要得到一個好高架回報,成件事只會令你處身險境。
記住,財不入急門,3年係一個中短期時間,較大機會出現波動,影響回報,建議投資計劃最少5年以上。
4) 你組合都算係有增長力,未來你可以用月供一些平穏增長股和潛力股,去增大財富。若你係年輕,可以用"平穏增長股" + "潛力股"。如你己近中年,"潛力股"比重要減少些。
你每月儲到的錢,可以5成去做月供,其餘先儲起,用一邊月供一邊儲蓄的策略。
月供方面,你可以選擇投資在平穏增長股︰盈富(2800)、金沙(1928)、恆基(0012)、平安(2318)、中銀(2388)、港鐵(0066)、煤氣(0003)、長建(1038)、領展(0823)、希慎(0014)、太古地產(1972)或潛力股︰比亞迪(1211),中生(1177)、福壽園(1448)、安碩恒生科技(3067)、港交所(0388)、阿里(9988)、騰訊(0700)。
至於餘下的現金,就等機會,當大市出現一定程度的下跌,就可以動用現金去投資,在平宜價加大力度掃貨,然後長線投資。
------------------------------------------------
Q19547:
你好,想問下336華寶國際值得長期持有嗎?現價合理嗎?如果不合理,大概什麼價位合理
同埋想問埋關於我男朋友既情況😄因為佢冇乜理財概念,所以佢依家35歲,都係草得10萬蚊到。我諗住幫佢投資股票,我叫佢每個月強制性草1萬,雙糧既時候可以2萬,大概一年14萬。你成日話先增值後現金流,所以我諗住會買得積極進取啲。
我打算係以下選3-4隻股票長線投資:
1928 金沙(不確定現價是否合理)
1448 福壽園
1810 小米(現價太貴了)
285 比亞迪電子
241 阿里健康
6993 藍月亮
9988 阿里巴巴(現價好像合理,但短期應該不太穩定)
老師,你覺得可以嗎?上述的股票,我相信是有增長性的,但會否太進取?
另外,他之前買了一手$29 中芯國際,回升小小就放?還是繼續持有?其實都係一手,影響不大。謝謝🙏
仲有968 同868 信義系列😆不過現價都貴
我應該會選3隻股黎入
龔成老師︰
華寶國際(0336)主要在中國從事研究及發展、生產、分銷及銷售食用香精香料、煙草薄片、新材料及日用香精香料。
業務不差的,但現價己略貴,回多1,2成才算合理區。但企業質素不是好高之列,投資價值中等。
上述股票當中,金沙(1928)、福壽園(1448)、小米(1810)、比亞迪電子(0285)、阿里巴巴(9988)都可以,這幾隻會係相對有質素。但小米和比亞迪電子都偏貴,都要回多3,4成才算合理水平。
建議你男朋友投資"平穏增長股" 和 "潛力股"﹐去建立一個增值平台。先用每月5成儲蓄做月供,其餘先儲起,用一邊月供一邊儲蓄的策略。
選股上,你可以投資在平穏增長股︰盈富(2800)、金沙(1928)、恆基(0012)、平安(2318)、中銀(2388)、港鐵(0066)、煤氣(0003)、長建(1038)、粵海(0270)、領展(0823)。
增長力較強的,可選安碩恒生科技(3067)、阿里(9988)、騰訊(0700)、港交所(0388)、舜宇光學(2382)、小米(1810)、中生製藥(1177)、福壽園(1448)。但佢地波動性和風險會較高,你要自己平衡。
餘下的另一半現金,我地就等機會,當大市出現較大回調,就加大力度掃貨,然後作長線投資。
------------------------------------------------
Q19548:
hello, 老師,本人28歲,月入4萬5左右,儲蓄大約有50萬,之前50萬做左定期,另外有5萬元買左貝萊德中國債券基金A6元對沖
另外又剛入左3手抽ibond,之前也買左為期10年供左5年的儲蓄保險,大約供左10萬元,有份住院保都大幾約供左10萬,今年亦開始買扣稅年金
在日後希望可以穩陣慢慢增進收入,應該買咩好? 本人之前係中銀做以上投資,儲蓄。唔該老師
龔成老師︰
你這個年齡,是財富增值的黃金時期,要好好把握,盡你一切的力量去儲蓄、投資、學投資知識。
定期,儲蓄保險、IBOND這類產品不宜持有太多,集中翻用優質股去做增值,會較理想。
現時你可以投資「平穩增值股」+「潛力股」,現在你每月5成儲蓄,去做月供,其餘先儲起,用一邊月供一邊儲蓄的策略。
平穏增長股︰盈富(2800)、銀娛(0027)、恆基(0012)、港鐵(0066)、平安(2318)、粵海(0270)、領展(0823)、希慎(0014)、太古地產(1972)。
潛力股:安碩恒生科技(3067)、阿里(9988)、騰訊(0700)、港交所(0388)、舜宇光學(2382)、小米(1810)、中生製藥(1177),但就要明白波動性比上述會高左,同時風險大左,你要自己平衡。
現時大市處合理區,可先用25萬分注入貨。而餘下現金,就是等大跌市時出手,如果你能在這段時間學好選股等技巧,到大跌市時就能把握機會,財富增值會更明顯。
另外,想你留意翻債券基金。坊間分好多種,你要小心睇,因為有d風險低,無乜問題,有d則有潛在的風險,絕對不是保本的產品,有機會出現了「賺息蝕價」的情況。
第一,有些基券基金,會投資「高收益債券」,即是「垃圾債券」,你一定要睇睇佢所佔的比率。
第二,債券基金往往不是單純地持有債券,而是可以作買賣,以及利用衍生工具作對沖等策略,即是可能有價格上的波動。
第三,不少銀行都會提供借貸,以槓杆去放大回報,以平息借貸去賺取息差。低息環境時間題不大,但進入加息週期,不止借貸成本增加,同時債券價格往往在加息期下跌,雙從打擊下,投資價值成疑。當然,若然加息步伐不快,息差利潤就可觀。
我不是說債券基金有問題,只是說明當中的風險,因為市面上的基券基金好多,你要仔細分析。
------------------------------------------------
Q19549:
Hello 龔成老師,我而家30歲但仲係月光族一名,現時手頭上持有以下股票:
2628 中國人壽 (1000股 $33買入)
2013 微盟 (1000股 $11.7買入)
1518 新世紀醫療 (500股 $9.5買入)
1711 歐化 (10000股 $1.7買入)
6618 京東健康 (100股 $173買入)
1833 平安好醫生 (100股 $54.8買入)
3309 希瑪眼科 (2000股 $12買入)
6060 眾安 (100股 $93買入)
1119 創夢天地 (400股 $9買入)
799 IGG (1000股 $10買入)
1691 JS環球生活 (500股 $11買入)
3033 南方恒生科技 (400股 $8買入)
我希望喺3年內將資產增值到30萬,想問下應該繼續持有定改變投資組合。
另外,應否買入阿里巴巴同美團作長線投資。謝謝!
龔成老師︰
你現時組合市值不足15萬,要3年內升值一倍,不是易事。因為我地講緊合理回報係一年10-15%,而要達至你目標需要年增長30%。
我建議你調整好投資策略,去爭取一個長線的理想回報,咁會對你最好。
現時持股中,除了南方恒生科技(3033),其餘(包括美團3690)分別因質素較弱或不確定性高,都不宜持有太多。唔係話佢地唔值得投資,但因為有一定風險,只宜小注。
未來時間,你新資金可以投入以下股票,都適合你。建議長線持有,最少5年會較好。
平穏增長股︰盈富(2800)、金沙(1928)、恆基(0012)、平安(2318)、中銀(2388)、港鐵(0066)、煤氣(0003)、長建(1038)、粵海(0270)、領展(0823)。
增長力較強的,可選安碩恒生科技(3067)、阿里(9988)、騰訊(0700)、港交所(0388)、舜宇光學(2382)、小米(1810)、中生製藥(1177)、福壽園(1448)。但佢地波動性和風險會較高,你要自己平衡。
現時大市只在合理區,資金唔好盡用。最好新資金留有部份,等大跌市出現時,可以用來掃貨。
------------------------------------------------
Q19550:
老師你好,我今年31歲已婚但未有小朋友,之前一路安於打工,唔識儲錢和投資。今年年中因為機緣巧合,
開始左自已嘅生意。月入大約70-80K, 目標下年可以達到$100K.
2021年第一個訂下的目標已經做到,就係報讀你嘅初級班,跟住就係開始月供股票。
每月開始如下:
5000 年金
5000 家用
10000 儲蓄(家庭備用現金)
3500 管理費
15000- 20000家庭每月開支
現有股票:
9988 x300 x $280 average price
1810 x 800 x$24 average price
3033 x 1400 x $7.65
計劃月供股票:
1810 x $4000
9988 x $4000
2382 x $4000
1299x $4000
另每外留現金 $10000-15000
分注入 3067 和等待時機入其他潛力股。
另外家庭備用現金有大約$300K , 可每月月供2800x $10000
請問我的投資策略如何?
多謝你的意見
龔成老師︰
年金這類產品,用作財富增值唔係咁適合。不過,如果你想有一部分資金,是較低風險,就可以。
現時你月供股票,太集中在潛力股(除了友邦1299係較平穏),加上你本身全部持股都係潛力型,組合會太波動。建議你將其中一隻,換成為盈富基金(2800),咁個組合會平衡D。
另外,你家庭備用現金中,可先扣除半年開支,餘下的都可用作投資。現時大市處於合理水平,可先用一半買優質股。餘下一半,就同你每月儲倒資金,一齊等大跌市機會。
同埋如果你已報股票班,我會建議你等上左堂,先有更具體的投資策略,這樣會較好。遲D見!
------------------------------------------------
Q19551:
你好,龔老師,我想了解錦欣生殖,業務獨特,是否有投資價值呢?過往我見網民都有查詢,但你都沒有特別詳細分析
你是否不同意投資此股?如果值得,現價14.86是否貴?合理價值應該是?
龔成老師︰
錦欣生殖(1951)本質不差的,長遠有增長力。
佢主要係中國及美國,透過合約安排從事經營及管理輔助生殖醫療機構,以提供輔助生殖服務、管理服務,以及輔助醫療服務。
佢的自有輔助生殖醫療機構,包括位於中國的成都西囡婦科醫院及深圳中山泌尿外科醫院,以及位於美國加利福尼亞州的3間HRC Medical手術中心以及NexGenomics PGS實驗室。
佢過往的財務數據不差,生意與盈利都有不差的增長。
不過,佢上市年期不算長,加上佢現時市值去到$350億以上,就算佢盈利增長快速,相信佢接下來幾年,每年盈利都只會有幾億,以這作假設推算,佢現時的估值都幾貴。
如果你見佢有明顯回落,才小注投資,咁會較穏當。
------------------------------------------------
Q19552:
你好龔成老師我係股票新手,最近買咗《80後》同《股票聖經》正在努力閱讀中, 極度後悔而家先買嚟睇!
因手頭資金不太多所以現時主要買call put 牛熊短炒多,之前全部都係揸正股,但自從一次call賺咗十萬之後就全部轉call put,
但好景不常,最近股市令之前賺嘅都蝕返 ;(
現手頭上有
3690 call:11315(剩餘日數為39日)
9988call:26035(剩餘日數為39日)
1211 (牛證)52170
700(牛證)53873
以上全部都唔係低價位入,想請教一下而家咁多負面消息,是否應該立即止蝕放哂佢然後轉put?
龔成老師︰
「短炒」不是正確的投資方法,而衍生工具亦好難玩,這都是經驗之談。首先,你要改變你整個投資模式。
因為你現時係用緊以「預期市況」模式,去進行投資。我在18歲開始買股票,頭幾年同你一樣,估個市會升就call,估佢跌就put,但幾年來,輸多贏少。
後來我發現,有錢人唔會咁樣投資的,於是我無再咁樣玩。
我建議你將這些衍生工具賣出,將資金重新投入優質股,並長線持有,咁才會對你最有利。
你要學懂,建立一個長期的「組合」,都是適合你的優質股。
------------------------------------------------
Q19553:
老師你好,以下是我的股票分布, 請問水桶1 是否要加大?
水桶1 (30%)
1177 月供$2k
1448 月供$2k
3067$1k
水桶2 ( 55.5%)
0823 2 手 (已持)$65再加二手
0002 一手 ( 已持)
0027 月供$2k
金沙 2 手( 大約$32入)
水桶3 ( 17.5%)
基金3 厘回報 $20000 一年
0778 2手( 大約$7 入)
2 我有興趣買少少黃金, 請問建議哪一隻黃金EFT?
02840,03081,83168 ,選一隻月供一千合適嗎?
明白你的建議 收息股 我現歲未必識合, 如果拿走 0778, 是否可投資多一隻畀水桶1 ?6823 現價太貴 想回少少先開始月供
*2383 先岩
龔成老師︰
當我地選擇投資項目時,應參照自已人生階段。年輕時,可以用"平穏增長股-水桶2" 和 "潛力股-水桶1",去到比例各一半都可以。
到中年"潛力股"比重要減少,到近退休應集中在"收息股-水桶3"上。
就算你係年輕人都好,現時月供水桶1比重都過高(最好小桶1,2各一半)。雖然佢係有較大增長潛力,但同時風險都唔細。
我最好跟上述指引,按自己年紀調整翻個比重,咁會較好。
黃金是貴金屬,有「終極貨幣」之稱,是人類自古以來的貨幣,有持有價值。由於現金長期必然貶值,所以黃金長期會向上。
不過,黃金沒有現金流,持有無法創造出經濟價值,其主要作用是對沖黑天鵝事件。
所以,你可以投資黃金,但不用佔財富比例太多(<3%),而且持有的應該為實金。
至於TOM集團(2383),主要從事提供科技平台及投資之電子商貿、移動互聯網及社交網絡,以及媒體業務之出版業務及廣告服務。
集團依然處於燒銀紙狀態,佢唔係話完全無質素,但而一刻好難估值,也不知佢何時才有真正盈利。就算投資,也只宜好小注。
------------------------------------------------
Q19554:
龔sir你好,9月上完你堂之後入市,整體升左兩成感覺好開心,跟住就加大左注碼,依家個市開始回返
就開始出現散戶式恐懼,懷疑自己買錯野,所以想請阿sir幫手睇下個倉,我今年37歲,月入約57k,月儲30k,希望達成被動收入30k提早退休:
小米600股 買入價23.68
港鐵500股 買入價38.9
金沙400股 買入價27.55
領展200股 買入價61.58
舜宇100股 買入價149.9
海爾600股 買入價25.47
中生3000股 買入價7.67
平安好醫生500股 買入價86.5
六福1000股 買入價20.44
福壽園3000股 買入價7.82
必瘦站8000股 買入價3.46
阿里巴巴300股 買入價241.27
謝謝老師
龔成老師︰
你要記住,我地持有一隻股票與否,關鍵位是企業質素、前景,不要被買入價影響。買入價只是一個心理因素,如果企業核心因素未被影響,我地係唔需要理會。
你以上持有股票都有質素,但有少少偏重左係潛力股。你可以將"平穏增長股"架比例慢慢加大翻,咁個組合就會平衡些。
整體來說,你的組合都優質,無大問題。
你這個年齡,財富仍有增長力,你用「平穩增長股」+「潛力股」模式進行,正確。
------------------------------------------------
Q19555:
阿Sir, 你好拜讀你的書令我獲益良多,以下有些問題希望可以解答:
1. 石藥1093 ,係$23 買入後一直下跌, 明白因帶量採購風險影響醫藥股, 但分析過年報後, 1093 業績不差,問題係邊呢? 之後要如何操作?
2. 月供股票每年所得股息要如何處理先可達到複利息投資呢?謝謝
龔成老師︰
1) 石藥(1093)是很有質素的股票,同時有增長力,不過,行業本質有風險,加上近年的政策風險,都令佢股價甚為波動。
這股長線質素無變,因為你本身買入價略貴,而且出現過2次送紅股,都令股價按比例下調。現價計,是一個較合理水平。此股有質素,你長線持有就可以。
2) "股息"要儲起,到一定數量,就再去買優質股,這才會做到複利息效果。
------------------------------------------------
Q19556:
龔SIR,我打算2021年開始每2至3個月用一手手買的模式去儲優質股呀,因為計過問過澳門銀行月供手續費真的不太化算
我自己想供幾隻,但計返手續費等都唔抵,諗住直情用每月有餘的錢儲起2-3個月咁樣一手手儲貨啦。
1) 盈富(2800) 是我首選,不過睇落好難先會趺到$23用一手手買,但我不想月供(因月供手續費問題)
如我2-3個月買一手盈富,會唔會令到自己係貴位買入都唔知?
2) 另外提到我有$30萬的現金短期未有用途,先留起5成,想動用$15萬去投資分注,我計劃咗個股票組合%比例,想請教一下:
$7.5萬(平穩增值股)50%
銀娛(0027)入1手
領展(823)入2手
$7.5萬(潛力股) 50%
安碩恒生科技(3067)分注入,不過想了解一下如果股價係幾多代表貴位? 就不要入注先? 合理區是多少錢?
3) 另外我持有2手平安好醫生(1833)﹑1手京東健康(6618),同埋1手阿里(9988)。我覺得太集中了,
我想找機會放一隻,投資落3067或者1448 呢兩隻的其中一隻,其他潛力股都好貴唔敢入手,如果我放一隻你建議我放邊隻?
1448的合理區是不是$7以下可投資?
4) 我屋企人有5萬現金的閒錢放銀行沒有特別用途,想幫佢買一些股票,雖然資金不多,但都想投資股票代替放在銀行
佢60歲未退休,有自己事業,咁5萬應該買晒收息股(例如陽光/工行呢D)還是都買D平穩增值股呢?
謝謝~~
龔成老師︰
1) 簡單來說,月供股票就是你每月將現金,買入某一隻或多隻股票,慢慢咁樣儲貨。月供股票每月投入的金額相同,因此當股價上升時,買入的股數自然減少,而當股價下跌時,就自然會買入較多股數,如同自行調節一樣,去減低價格波動的風險。
其實一手手買都可以做到以上效果,你現金只要平均地慢慢投入股市(例如定好每2個的1號,就不論價格都入一手盈富。)就可以。2個方法都可以,一手手買更節省了銀行月供收費,但你必需確保自已可以有自律性地進行。
2) 如果你係年輕,這個計劃可以。若你偏向中年,潛力股比重要減少D。
安碩恒生科技(3067)大約在合理區頂部,己可以分注入貨,但同時要控制注碼。
3) 福壽園(1448)現在是合理區頂部,可以入首注。而你持股當中,平安好醫生(1833)和京東健康(6618)有潛力,但不確定性都好高,只宜小注。你可以沽出一手平安好醫生,換至其他潛力股。
安碩恒生科技(3067)、中生(1177)、阿里(9988)都在合理區頂,都係可入首注的範圍。
4) 以你家人年紀,我建議以收息股為主。如果真係好想增值,可小注盈富(2800)。
收息股的組合,目標是5%、6%的股息率的收息股,例如港燈(2638)、深高速(0548)、香港電訊(6823)、工行(1398)、恆生(0011)、置富(0778)、陽光(0435)都可以。
------------------------------------------------
Q19557:
老師, 小弟手持6手1167 (15.2入),3手2131(8.36入),1手268(27.6入),我見呢排都keep跌,請問呢幾隻我應該止蝕定係繼續持有。
股票新手
龔成老師︰
加科思(1167)為一間臨床階段製藥公司,主要從事創新腫瘤療法。
此股剛剛上市,數據唔多。加上佢本身未有盈利,令到估值更難。此股都有投資價值,若佔你組合比重唔高,可以守。
云想科技(2131)主營線上合約廣告服務,佢業務上都有可投資地方。但由於佢上市不久,現時數字只能參考,因為好多新股都要過一段時間才見真章,故投資時要保守些。
佢2019年盈利只有7000萬,市值郤超過50億,明顯現時係唔平。若持貨佔組合比重唔多,可持有。
金蝶國際(0268)本質是不差的,算係潛力股。你買入價偏貴,但此股有質素和潛力,可以守。
------------------------------------------------
Q19558:
龔成老師你好!我現在讀緊大學既金融科,如果未來都想做投資分析或者股票相關嘅工作。除左學校學嘅嘢之外,再學啲咩知識裝備自己會比較好?
龔成老師:
睇多D書,有關投資類別的書,同埋一定要每日睇財經新聞。
另外,你可以睇企業年報,上港交所有得下載的,如果你打算日後做分析有關的工作,這是重要的學習過程。《年報勝經》有教你點分析年報的。
------------------------------------------------
Q19559:
龔成老師你好,現在每天都會看你的facebook和書藉,我很希望在做一件將來會驕傲的事情,希望在本月內可以買一點股票
你認為有哪些股票的價位目前比較好的可以現在買入的?
當然我會持續學習,在未來日子有足夠的分析能力自行選股
個人較喜歡收租股,地產股,當然對其他優質企業也感興趣,我目前有20萬左右現金可以投資,謝謝老師,平安幸福
龔成老師:
你唔好另集中一隻股,要建立一個長期的組合。
你可以考慮盈富(2800)、恆基(0012)、港鐵(0066)、領展(0823)都得。
如果想增長力高少少,可考慮:安碩恆生科技ETF(3067)不過風險度較高,如果投資知識不多就不要這刻投資。
現時大市處合理區,可以一邊投資一邊留現金,而餘下現金的運用,就是等大跌市時出手,如果你能在這段時間學好選股等技巧,到大跌市時就能把握機會,財富增值會更明顯。
------------------------------------------------
Q19560:
呀sir你好…我係新手…岩岩接觸股票2個月…已經買左你大部份書…學緊…會玩多幾個月股票認識多左先再報你既course…想事半工倍…
我27歲…月薪21K…依家玩美股Ark 系列同電動車多…因入場費平跟同事玩住先…
打算2021年開始…認真地用每月新收入既一萬左右…平均地月購你係50優質股 +50收息股 + 50值博股入面介紹既股票…前2者已經各睇岩幾隻! 多謝你…
但值博股真係5知揀乜好~你可唔可以重點推介幾個俾我呀?雖然有書在手…但都係冇乜方向…唔知揀邊樣好~又唔想淨係因為邊樣價錢平就揀邊樣…
最後…其實我有8萬蚊cash (現金流)…一直做定期…因爲舊錢唔蝕得…但定期真係太低息…想要多小小小小回報都好~
我想問 我應該買d 中低風險嘅債券基金(富途牛牛依家認購同贖回費都唔使錢…0手續費)?
定分批買入你一路推介開既平穩增值/收息股?
請問邊樣 風險比較低?多謝曬你!
龔成老師:
其實,你最重要建立一個「平衡」,適合你的組合,每個人風險承受程度不同,你要建立一個適合你的比例。要長期的配置。
當我地進行人生財富累積,會運用「先增值,後現金流」作方法,年輕人應投資較多增值類資產,而較年長的,則應投資較多保守類項目,因為年輕人的財富系統未成形,同時負擔較少,可承受的風險度較高,所以會著重增值為先。
例如初期投資較有潛力的股票,令財富較快增值,當增值到一定金額後,可開始將財富分配至平穩增值型股票,然後到年紀漸長或已累積了相當財富後,才漸漸轉成收息型股票。
你27歲,潛力股比例可較多,不過,潛力股都要求你有一定的投資知識,如果你投資經驗未夠一年,就不能過多,遲D先慢慢增加。
平穩增長股:你可以考慮盈富(2800)、銀娛(0027)、恆基(0012)、港鐵(0066)、平安(2318)、粵海(0270)、領展(0823)、希慎(0014)、太古地產(1972)等,你可以了解下這些股票,然後從中選股。
潛力股可考慮:安碩恆生科技ETF(3067)、阿里(9988)、騰訊(0700)、港交所(0388)、舜宇光學(2382)、小米(1810)、比亞迪(1211)、中生製藥(1177),但就要明白波動性比上述會高左,同時風險大左,你要自己平衡。部分要等回少少先入。
至於債券基金,一般都會出現賺息蝕價,唔建議。
現時大市處合理區,可以一邊投資一邊留現金,而餘下現金的運用,就是等大跌市時出手,如果你能在這段時間學好選股等技巧,到大跌市時就能把握機會,財富增值會更明顯。
----------------------------------------------
若你有問題想向本人發問,可在龔成的fb專頁中(www.facebook.com/80shing)inbox龔成,但要注意如無特別聲明,有可能將問答放上網,當然,會將發問者的身份,以及有關個人資料的部分刪去。
另外,我所給予的各種意見,只是供大家參考,當中無任何銷售及推介,不涉及任何利益,其實大家應該要有獨立分析的能力,我只是給予一些方向及純參考模式。
由於提問人數眾多,見諒無法即日回覆,如果是普通的提問,預起碼要7天以上才能回覆,若然是較複雜的提問,起碼要10天才能回覆,希望各位能諒解。
js除法取商 在 Taipei Ethereum Meetup Facebook 的最佳貼文
📜 [專欄新文章] 2021 區塊鏈開發入門
✍️ Johnson Chen
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium
在我大學的時候,除了學習網頁前端之外,因為課程報告的需要接觸到以太坊(Ethereum),於是開始學寫智能合約,包括它使用的程式語言 solidity。
工作以後鮮少再碰以太坊的相關技術,直到最近想重新把以太坊學起來,故而決定寫這篇文章,讓初次接觸區塊鏈與智能合約的人更好地進入開發者的世界。這篇文章不只面向開發者,同時也希望能夠給對區塊鏈有興趣的人,指引一條清晰的學習路線。
關於區塊鏈
區塊鏈會被廣為人知,無非是因為虛擬貨幣的出現,而虛擬貨幣的鼻祖就是比特幣。在比特幣出現以前,沒有一個能夠在全球網路上通用的數位貨幣;在比特幣出現之後,才真的實現了數位化的貨幣,能夠在全球網路上流通。
這樣的技術性突破,blockchain 的名字從比特幣白皮書中被萃取出來,而這項技術也被更多人拿去做研發以及創新。
區塊鏈這項技術的特性可以簡單概括為兩點:去中心化(decentralized)與不可竄改(immutable)。去中心化有程度上的差別,在公共網路上由世界各地的節點共同維護的區塊鏈,去中心化程度較高;相較之下,私人企業開發由特定節點來驗證交易的區塊鏈,去中心化程度較低。
為什麼是以太坊?
這年頭區塊鏈三個字大行其道,大部分都是為區塊鏈而區塊鏈的商業炒作。容許我獨斷地說,以太坊才是區塊鏈應用的大門。
以太坊由全球最大的區塊鏈社群組成,提供一個去中心化的虛擬機器(Ethereum Virtual Machine)來處理「智能合約」,它是一個公共的區塊鏈平台,逛逛以太坊的官網吧!
智能合約
在以太坊區塊鏈中有所謂的智能合約,智能合約能夠部屬到以太坊區塊鏈上,合約即程式碼,放到區塊鏈上就不能再更新,只能執行合約上的程式,持有以太幣的人能夠與合約進行交易。把智能合約想像成是一台自動販賣機,把錢(以太幣)投進去,飲料會掉出來(合約上的程式會被執行)。
在現實生活中,簽訂合約的雙方認為合約有效而且可以被信任,是因為有國家法律來保障,違反合約可能會受到法律制裁;而用以太幣與智能合約互動,認為智能合約可以被信任,是因為智能合約的不可竄改性 — 以太坊虛擬機會毫無偏袒、完全中立、冰冷不帶任何感情地執行智能合約上已經寫好的程式碼。
建立在智能合約之上的虛擬貨幣
事實上,以太坊擴大了區塊鏈這項技術的應用層面。回頭想想,比特幣來自區塊鏈技術,某個人若想打造一款同比特幣一樣的虛擬貨幣,就得模仿比特幣去建造一個自己的虛擬貨幣區塊鏈,一個區塊鏈網路要能夠有效運作並非易事,還需要節點、需要靠人挖礦去驗證交易。此時,若使用以太坊的智能合約,撰寫虛擬貨幣需要的程式碼,將合約部屬到以太坊區塊鏈上,叮咚!他就可以發行自己的虛擬貨幣,根本不必再去建造底層的區塊鏈,也不用想挖不挖礦了。
此時會發現以太坊就像是一個區塊鏈平台,你不需要親手打造區塊鏈網路,即可享有區塊鏈去中心化與不可竄改的特性。與其他智能合約的開發者共同使用以太坊虛擬機 EVM(Ethereum Virtual Machine),在 EVM 上部屬無上限個智能合約。
以太坊是一項基礎建設,底層區塊鏈幫你架設好,開發者便有更多時間去發想應用到網頁、手機、或物連網設備上,以下是一段簡單的智能合約,該合約創造了一個虛擬貨幣簡稱 MAT…
直接進入開發領域 — 線上編輯器 Remix
Remix 是開發智能合約的線上編輯器,進入Remix官網,點選 Create New File 以後,把上方程式碼複製貼上。在左側欄位中有 solidity compiler 的選項,確認一下左側欄第一列顯示的版本,調成 0.7.0 (上方程式碼使用的版本),就可以按下下方 compile 的按鈕,將智能合約「編譯」成 bytecode(給機器讀的語言)。
接著我們要部屬合約到區塊鏈上,首先到左側欄位點選 DEPLOY & RUN TRANSACTIONS 的選項,可以看到環境是 javascript VM,這是指現在要部屬到的測試用虛擬機。按下下方的按鈕 Deploy 即可將合約「部屬」到 javascript VM 上。成功部屬後,你會發現 ACCOUNT 所持有的以太幣,從 100 變成 99.9999…,我們得知部屬智能合約需要花費一點點以太幣。
左側下方會有 Deployed Contracts,點開來就會列出合約上可供呼叫的函式,點那些函式就能與剛剛部屬上去的智能合約進行互動了。
有些函式呼叫會引發交易,所以需要以太幣,有些則不用。在 ACCOUNT 的地方可以展開來,它提供許多的地址 (address),也就是錢包,每個錢包裡面預設給你 100 顆以太幣,試著用那些地址去操作智能合約,你就能慢慢體會什麼是建立在以太坊之上的虛擬貨幣了。
真正的開發者世界
實際上開發智能合約只能算是以太坊開發的其中一部分,其他包括以太坊區塊鏈擴容方案、節點驗證等等又是另一個開發領域了,那部份我就沒有研究太多。而智能合約的開發是比較接近應用層面的,透過網頁前端或手機應用程式,與智能合約進行互動,稱作 Dapp(Decentralized App) 的開發,也象徵著網際網路走向 web3.0 的時代。
學習 solidity 語言,除了看硬生生的官方文件之外,我推薦去玩cryptozombies,我本身就是從這款網頁遊戲中學習這門語言,聽說是連小孩子都能輕易學習的教材。
除了學 solidity 之外,網路上還有很多方便的開發工具,開發者主要是運用這些工具做測試、自動化部屬、串接前端等等。許多網路上的教學文章會使用 Truffle + Ganache + web3.js 來建置開發環境。但我在這裡推薦另一款開發環境的架構,如果是新手直接從 hardhat 開始也是非常適合的,hardhat 的教學文章寫得清楚完整,本篇文章使用的程式碼也是從 hardhat-hackathon-boilerplate 這個專案而來。hardhat 使用的開發環境是 Waffle + Hardhat + ethers,它幫你把開發環境處理的簡單又舒服,讓開發者可以專注在開發智能合約上。
OpenZeppelin 是很有名的智能合約套件庫,開發時可以引入它的智能合約。智能合約很講究安全性,稍微沒寫好就可能被駭客鑽漏洞,虛擬貨幣就被盜走了!OpenZeppelin 提供的 SafeMath 很常被引入到專案,對新手來說看 OpenZeppelin 的合約也是很好的學習管道。此外,官方也建了一個學習網站ethernaut,主要在教導如何寫出安全性夠強的智能合約,可惜網站在我寫這篇文章的時間一直處於維修不能用的狀態。
最後再介紹一款實際上線的智能合約專案:Argent。它是一款運用智能合約來做虛擬貨幣錢包的公司,除了使用他們的錢包之外,也可以看看他們的智能合約是怎麼寫的,感受一下專業的程式碼架構與寫法。
小結
這篇文章希望能幫助到想了解區塊鏈這項技術的人,同時也想呈現一個智能合約的開發生態系,你大可以不必花太多力氣去了解密碼學、挖礦、節點、共識機制等等五花八門的專有名詞;反之,你可以專注在智能合約的開發,或回到本質去思考去中心化的用意、以及為什麼不可竄改的特性那麼重要。
智能合約除了做虛擬貨幣之外,也能夠做投票系統,原本以貨幣為起始點的區塊鏈技術,是智能合約的出現擴大了區塊鏈更具彈性的用途,這圈子需要更多的開發者來探勘這片新大陸。
尤其鼓勵人文社會科學的人才,無論是哲學、政治、經濟、法律或社會等各方領域,試著撇開人工智慧將主導未來社會的發展路線,與之截然不同的另一種形式:人類社會能否依靠科技的力量,促成彼此之間的合作,創造更有效率的市場、更公平的治理方式?
延伸閱讀:激進市場(Radical Markets: Uprooting Capitalism and Democracy for a Just Society)
2021 區塊鏈開發入門 was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.
👏 歡迎轉載分享鼓掌
js除法取商 在 Taipei Ethereum Meetup Facebook 的最讚貼文
📜 [專欄新文章] Uniswap v2 實作 : 從創建交易對到Ether 換 Dai 投入 Compound
✍️ 田少谷 Shao
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium
Uniswap v2 實作 : 從創建交易對到Ether 換 Dai 投入 Compound
V̶y̶p̶e̶r̶ Solidity coding time!
Image source: https://uniswap.org/
Outline
一. 前言二. 程式碼結構 1. Wrapped Ether(WETH)? 2. Impermanent Loss三. 創建交易對 - 準備 Interfaces四. 注入資金 - 注意事項五. 兌換虛擬貨幣六. 取得報價作為預言機七. 自行兌換 WETH八. 結語
一. 前言
暨上一篇解釋了 Uniswap 的演算法後,由於個人有使用 Uniswap v2 的需求,因此整理後寫成本篇,希望能幫助到其他也需要用 Uniswap 的讀者!(不熟 Uniswap 的人也可以參考區塊勢 許明恩 Astro Hsu 寫的介紹文:點我)
Uniswap 解析:恆定乘積做市商模型 Constant Product Market Maker Model 的 Vyper 實作
本文希望透過實際操作 Uniswap 我個人會用到、我認為大家比較常會用到的功能,來讓不熟悉的讀者快速了解其程式架構(v2 相較 v1 繁複)、熟悉實作方法,無法顧及全部還請見諒。
以下實作的測試環境為 Rinkeby 測試網,由於只是要講解使用方法,因此選擇在 Remix 上操作。
而 Uniswap v2 跟 v1 的差異,個人沒有很認真研究,大致列舉以下幾點,本文只會就其中幾點在後方進行較詳細的解釋:
使用 Wrapped Ether, WETH (於 二. 程式碼結構 解釋),讓 ERC20 交易對不再需要透過 Ether ,降低 gas 的消耗,但還是可以用 Ether 支付
加入時間權重的預言機,降低被操縱價格的風險,於 六. 取得報價作為預言機 中舉例說明,有興趣者可以看看 白皮書 有詳細介紹
閃電貸
使用 Solidity 而非 Vyper,因為 Solidity 功能上較齊全,於 五. 兌換虛擬貨幣 中舉例說明原因
在開始之前,本文超長,播個背景音樂吧:
二. 程式碼結構
本段落簡單描述 Uniswap 程式碼各部分的功能。若讀者要自己實作,可以參考此處得知該去哪一份程式碼找相應的功能:
Factory / UniswapV2Factory.sol : 創建交易對、查詢交易對的地址與總數;查詢、指定交易對手續費的收款地址
Pair(ERC-20) / UniswapV2ERC20.sol : Uniswap 流動性代幣 ERC20 的部分
Pair / UniswapV2Pair.sol : Uniswap 流動性代幣的其他部分;查詢交易對資訊
Router / UniswapV2Router01.sol : 注入、取出流動性/資金;兌換虛擬貨幣。此合約看似最複雜,其實只是因為收付款的單位可以是 Ether 或是 ERC20,所以有很多重複的函式
ExampleOracleSimple.sol, ExampleSlidingWindowOracle.sol : 預言機的範例程式碼
Library / UniswapV2OracleLibrary.sol : 供預言機調用的函式
Library / UniswapV2Library.sol : 供內部調用的函式
除了描述程式碼結構,為了以下的實作我們還需要知道 Wrapped Ether 是什麼,順便了解其使用原因:
1. Wrapped Ether (WETH) ?
從字面上來解釋,Wrapped Ether 是被包起來的 Ether。那為什麼好好的 Ether 不用還要創造出另一版本,嫌這小小世界的術語不夠多嗎 (ETH, WETH, Dai, aDai, cDai, sDai…)?xD
wETH | ERC20 tradable version of ETH
主因有兩個:廣泛地說,Ether 是以太坊上的原生虛擬貨幣,但它與廣為使用的 ERC20 標準並不相容( ERC20 有 approve(), transfer() 等等功能);而針對 Uniswap 的場景來說,v1 的交易對都一定有 Ether,而使用 Ether 可能會造成 Impermanent Loss,於下方解釋。
因此,就以上兩點的解決方法個別是:
部署一 ERC20 <-> Ether 的兌換合約:使用者將 Ether 付給 Wrapped Ether (ERC20) 的智能合約,合約就會給使用者同等數目的 WETH;拿回 Ether 則有點不太一樣,方法是告訴 WETH 的合約使用者要 withdraw(),WETH 的合約就會把使用者 WETH 擁有的額度設回 0 (或減少) 並返還 Ether,於 五. 兌換虛擬貨幣 中舉例說明
v2 交易對的建立不再只能是 (Ether, ERC20),可以是 (ERC20, ERC20)
2. Impermanent Loss
Impermanent loss 在 DeFi 指的是像 Uniswap 這類用演算法的去中心化交易所,如果交易對是兩幣價不相干的虛擬貨幣,例如:穩定幣 (Dai, USDC, etc) 和 Ether,流動性提供者 liquidity provider 會因為幣價的相對波動而比起直接持有兩幣還損失了一筆。
容我舉個例解釋清楚點,可以搭配我上一篇所寫的 Uniswap 的演算法 來理解:假設一開始 1 Ether 幣價為 100 Dai,只有一流動性提供者 LP 投入了 1 Ether 及 100 Dai (1 * 100 = 100 = k,k值要維持不變),總價值為 200 Dai。當 Ether 的幣價來到 200 Dai,眼尖者會發現資金池中的 Ether 價格低、有利可圖,因此會進行套利,例如:拿 33 Dai 約可以換到 0.25 Ether (0.75 * 133 ≒ 100),比起市場上要用 50 Dai 才能換到 0.25 Ether,套利者賺到了。此時,流動性提供者若將自己的資金提出,0.75 Ether 和 133 Dai 此時的總價值是 283 Dai,看似比當初的 200 Dai 還多,但其實將兩幣放著不動 1 Ether + 100 Dai 在此時就已經是 300 Dai 的價值了。於是,impermanent loss 就變成了 permanent loss :(
三. 創建交易對
- 準備 Interfaces
在開始之前,由於使用到的合約不少,所以我將全部所需整理在此:點我。其中,UniswapImplementation.sol 是本文實作的檔案。
若讀者在自己調用 Interface 時遇到版本問題,就依照 compiler 提供的指示稍作修改即可。我所整理的合約都修正過版本的差異、以下的實作也測試了可行,因此可以安心使用。
進入正題
通常大家使用的 Uniswap 資金池都是已經存在的,而如果想要上架自己的虛擬貨幣就要自己創建一組新的交易對,有兩種方式:在 Uniswap 官網上執行或是透過呼叫 Uniswap 的合約來建立,本文使用合約的方式。
首先,我們需要決定資金池為哪兩種虛擬貨幣,那就很普通地選 ETH 和 Dai 吧。雖然選了 ETH,但如同上方所述實際上必須使用 WETH,於是記下其在 Rinkeby 上的位置 。Dai 就使用 Compound 部署在 Rinkeby 上的版本,位置在 0x5592EC0cfb4dbc12D3aB100b257153436a1f0FEa。
接著,打開 IUniswapVFactory.sol,依照官方文件的指示將此合約部署在 Rinkeby 上的 0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f。以下會有許多由 Uniswap 文件得知的合約地址及其他資訊等等,就不再一一附上來源或畫面截圖!
如上圖黑框所示,輸入了地址後按下藍色按鍵就完成部署了。接著,如下圖將 Dai 的地址 及 WETH 的地址輸入 createPair():
由於這個交易對我已經部署過了,因此讀者若想嘗試就麻煩去找別的 Rinkeby 上的測試幣了、或自己發一個! 完成後可以用 getPair() 輸入兩幣地址來確認交易對被建立成功:
如果想要進一步核對,可以先呼叫下圖紅框中的 allPairsLength(),得知當前總共有幾組交易對,再將 (交易對數 - 1) 輸入 allPairs(),就能得到和上圖一樣的地址。需要減 1 是因為陣列的 index 從 0 開始。
allPairsLength 的值會因為其他人的使用而增加,故日後可能會和本圖產出的 9 不同
四. 注入資金
看到標題的讀者可能會想:為何要把注入資金/流動性和上方的創建交易對分開呢?因為注入流動性這個功能被放在了 UniswapV2Router01.sol 中,所以就分開解釋。
雖然上一節只需要複製貼上按按鍵,但接下來要探討的注入資金 addLiquidity() 及虛擬貨幣的交換 swap()比起創建交易對 createPair() 是較有可能被融入到其他 DeFi 服務的功能(應該不太會有人會一直需要創建新的交易對),因此打開 UniswapImplementation.sol、要開始 Solidity coding!
如果不熟悉為何別的 DeFi 會需要在自己的服務中使用 Uniswap,可以搜尋 DeFi Money Lego/ DeFi 樂高,顧名思義就是在一個 DeFi 服務上使用另一個 DeFi 服務。實際的例子有:Aave 的新功能是可以拿往 Uniswap 注入流動性後得到的流動性代幣再投入 Aave 來賺取利息,以及下一節兌換虛擬貨幣的功能可以在 Pelith 的輕鬆貸 EasyDai、一站式 DeFi 組合工具 Furucombo 等場景中看到他們如何將 Uniswap 銜接上其他的 DeFi 服務。
回歸正題
在開始之前,先簡單提及一下有哪些變數、instance 需要初始化:
我們要呼叫 Uniswap 合約的 instance 來進行互動: IUniswapV2Router01
不只需要 Dai 的 instance,也需要 Dai 和 WETH 的地址;DaiAmount 和 ETHAmount 是為了稍後注入流動性所設置的,本文假設第一筆流動性我們使用 200 Dai + 1 Ether
immutable 是版本 0.6.5 加入的,用途是讓變數只能被讀取 read-only,但不同於 constant 的是能夠在 constructor() 中賦值。之所以各 instance 的地址不一起加上 immutable ,是因為若加上了,這些地址就不能在 constructor() 中被使用
p.s. 由於 gist 沒有 Solidity 的 syntax highlighting,所以隨便用了 .js 請忽略
看完了初始設定後,由於我們目前鎖定的資金池是 Dai 及 ETH,因此使用如下的 addLiquidityETH() 此函式,可以直接匯入 ETH 及 Dai。
本處我使用長度為 3 的陣列 addLiquidityResult 來記錄注入資金後的返回值:注入 Ether 的數量、Dai 的數量及返回的 Uniswap 流動性代幣的數量。實際上應該要依照不同使用者記錄的他們執行 addLiquidity() 後各自的返還值
第五行中的 approve() 是為了讓 UniswapV2Router01 的合約能夠從我們部署的合約 UniswapImplementation 取得 200 Dai 的使用權
於第六行 addLiquidityETH() 後方的大括號 {value: ETHAmount},這是 Solidity 0.6.0 後版本如果要在呼叫 function 的同時送入 Ether 的標準寫法,以前的寫法 .value() 目前也還能用但 compiler 會給提示
addLiquidityETH() 的第三、四個參數為最少要成功注入的數量。使用者能夠成功注入的數量取決於資金池中兩虛擬貨幣當下的數量,而本處直接給 0 比較方便
這邊非常重要的是上述程式碼還欠缺了一個無法被寫在合約內的步驟:使用者要同意這個被部署的合約 UniswapImplementation 可以從自己的帳戶中轉出 200 Dai。因此,將 ERC20 (Dai) 部署在 Rinkeby 上的位置,也就是0x5592EC0cfb4dbc12D3aB100b257153436a1f0FEa,接著輸入被部署合約的地址以及 200 Dai = 200000000000000000000、按下 approve() 後準備作業完成,如下圖。
終於可以呼叫 addLiquidity() 了! 如下圖,在紅框中以 1 Ether 呼叫黑框中的 addLiquidity() 後,就能成功將資金注入到 liquidity pool 了! 由於本文寫在測試後,因此沒有留下第一次 addLiquidity() 的結果 :(
此處被部署的合約位置跟上方截圖不同,因為其中測試了一些東西所以重新部署qq
接著,可以拿出 IUniswapV2Pair.sol,將其部署在 三. 創建交易對 中成功部署的位置 0x03E6c12eF405AC3F642B9184eDed8E1322de1a9e,使用黑框中的 getReserves() 就可以看到資金池中確實有匯入的資金! (本處依然沒有第一次使用後的截圖,因此截圖只是為了讓讀者看到 getReserves() 的結果)
此圖黑框中的值代表:在資金池中,Dai的數量、Ether的數量及上一次匯入資金的時間戳記
- 注意事項
使用 addLiquidity() 時需要小心的地方是:除了第一筆注入的資金可以自行決定兩虛擬貨幣的數量,第二筆開始就會依照其演算法算出兩幣可以投入的各自數量,因此使用者放入的兩幣中可能會有部分的其中一幣被 Uniswap 返回。
上方的程式碼只是為了第一筆流動性所寫,如果不是第一筆的情況就需要用成功注入流動性後的返回值(例如筆者的作法是用一陣列 addLiquidityResult 來存結果)來把沒有成功注入的資金返回給使用者。
五. 兌換虛擬貨幣
本節使用的兌換功能依舊是來自 IUniswapV2Router01.sol。
由於兌換虛擬貨幣實際上只有五行不到的程式碼,那麼就來把兌換 Ether 而得到的 Dai… 投到 Compound 來賺取放款利息吧! (雖然只是在測試網) 如果覺得這個場景似曾相識,沒錯,這就是上面提到的 輕鬆貸 EasyDai 的不專業版本!
首先將 Ether 和 Dai 互換的邏輯完成:
Ether 換 Dai : 使用 swapExactETHForTokens(),給某數量的 Ether 能換多少 Dai 是多少
Dai 換 Ether : 使用 swapExactTokensForETH(),作法只差在要把 Dai 轉到當前合約,再同意 UniswapV2Router01 可以從當前合約把 Dai 轉走
兩個做法的第二個參數都是可以自行指定兌換的路徑,此處就直接給 WETH 和 Dai 的地址即可(順序有差)。需要注意的是這個路徑要是動態陣列 dynamic array,而這就是 Vyper 所不支援的功能! 動態陣列跟靜態陣列宣告方式的差別我有註解在程式碼中
此處就先來試試 Dai 換 Ether 吧!和上方一樣,在使用時也要先 approve() 當前合約,當前合約才能轉走使用者的 Dai。
由上方的截圖可以很清楚的看到 Dai 換 Ether 這個動作牽涉到的資金轉移路徑:
Dai: 我的帳戶→當前合約→交易對所在合約
WETH: 交易對所在合約→UniswapV2Router01
Ether: WETH 合約→UniswapV2Router01→我的帳戶
以上的路徑有些人稍微思考後可能會納悶:為什麼上方沒有一筆 WETH 從 UniswapV2Router01 再轉到 WETH 合約的動作呢? 這就是在 Wrapped Ether (WETH) ? 中提到的案例。原因是:把 WETH 還回 WETH 的合約時實際上使用的函示是 withdraw() 而非 transfer(),而在 WETH 合約中發生的只是把使用者 WETH 擁有的額度歸零或減少而已。
接下來就是把 Dai 轉到 Compound 的部分。由於 Compound 不是本文重點,此處只求功能正常,因此比起真正的實作方法當然是簡化許多。
一如往常初始化 Compound 合約的 instance
ETH 換 Dai 後放入 Compound : 將用 ETH 換得的 Dai 的數量,也就是 swapExactETHForTokens() 返回的第二個值,approve() Compound 的合約後就可以用 mint() 匯入了! 要注意的是,ETH 換成 Dai 後的收款地址(第四個參數)是當前合約,才能從此合約轉 Dai 到 Compound
還款給使用者: 用 redeem() 取出 Dai,一如往常同意 UniswapV2Router01 使用 Dai 的權力
之所以說這個程式碼不能真的拿來用是因為:cDai 轉給使用者、讓使用者自己持有是比較安全的作法;即使選擇把 cDai 留在當前合約,以上程式碼檢查 cDai 數量是用當前合約 address(this) 去檢查,實際上應該要去記錄每個使用者所擁有的 cDai 數量
最後附上截圖,可以看一下資金的轉移路徑:
ETH -> WETH -> Dai -> cDai (Compound)
cDai -> Dai -> WETH -> ETH
六. 取得報價作為預言機
若使用 Uniswap v1的報價作為預言機,攻擊者可以利用其演算法造成的滑點來操控價格。為此,Uniswap v2 提供了兩個加入時間權重的合約範例:
ExampleOracleSimple.sol : 簡單版
ExampleSlidingWindowOracle.sol : 複雜版;Sliding Window 在此場景是指透過改變擷取資料(歷史價格)的片段,用該特定期間的價格來做成時間權重,讓使用上更靈活!
本處以簡單版為例。打開 ExampleOracleSimple.sol,由於一些匯入檔案的問題我將 UniswapV2OracleLibrary 也放在這份檔案中。
做法非常簡單:將 UniswapV2Factory、Dai 及 WETH 所在的地址作為部署合約 ExampleOracleSimple 時的輸入值就完成了。部署成功後會有個 24 小時的鎖 Time lock,因為這個預言機是有時間權重的,所以並不是一部署完就能立刻使用。若要體驗更新價格此功能可以使用我部署的兩個,其位置我寫在註解中。
將 WETH 或是 Dai 的地址和要查詢的數量輸入 consult() 就能查到兩虛擬貨幣的價格:
1 ETH 價格約為 97 Dai
1 Dai 價格約為 0.01 ETH
然而,在測試網上我們沒辦法拿著預言機查到的價格套入演算法來核對,因為測試網上的 Uniswap 沒有啟用收費機制,而 k 值要在收費機制啟動時才能被計算,欲知詳情者就麻煩去看官方文件了!
七. 自行兌換 WETH
上方雖然有提到 WETH 在 Uniswap 中的使用原因及場合,但或許有人想試著自己動手將 Ether 換成 WETH、把 WETH 換回 Ether。方法非常簡單,將 WETH.sol 部署到 0xc778417E063141139Fce010982780140Aa0cD5Ab 就能使用,如下圖:
按下綠框中的 At Address 後,使用下方黑框中的 deposit 搭配在中間的黑框輸入所要兌換 Ether 的量,就能成功換到 WETH。同理,圖中未顯示的 withdraw 功能就是讓人輸入 WETH 來換回等量的 Ether。
稍微提一下,如果是第一次兌換,將 WETH 所在的地址輸入 Metamask 就能在錢包中看到自己擁有的 WETH 的數量,如下兩圖:
Voila!
八. 結語
呼,雖然上述操作及程式碼的撰寫其實還蠻簡單的,但畢竟 Uniswap 的功能不少、我個人也希望能將小細節解釋清楚些,因此長度遠超過預期...有看到結尾處的讀者,辛苦了xD 希望大家現在對於 Uniswap v2 的內容跟實作方法都很清楚了!
最後,如果本文有任何錯誤,請不吝提出,我會盡快做修正;而如果我的文章有幫助到你,可以看看我的其他文章,歡迎一起交流 :)
田少谷 Shao - Medium
Uniswap v2 實作 : 從創建交易對到Ether 換 Dai 投入 Compound was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.
👏 歡迎轉載分享鼓掌