Author Archives: 發財橘子

如何找到每年配息穩定成長 的公司

這一波的急跌,對我們這些有股票被套住的,當然是很痛,對那些先前是空手的,就覺得又是一次財富重分配的機會,這兩天,開始有人在討論這一波下跌時要買什麼股票? 剛好這兩天不能外出,隨手看了一本股息成長投資術的書,覺得這概念不錯,想說就來跟大家分享。
這本書的概念是,大跌的時候,應該要趁機買進那些每年股息都穩定在成長的股票,其中他有舉嬌生這家公司連續33年配息成長,作者的看法是,趁大跌買這類的股票,得到的報酬來自三個地方
一、每年股息
二、穩定成長所增加所到的股息
三、因為股息成長而股價上漲的資本利得
我覺得這樣的概念不錯,我自己目前部位最大的持股就是類似這樣的概念
所以就寫了一個選股策略來挑這類的股票,我設的條件有兩個:
一、今年迄今累計月營收比去年成長
二、過去五年每年現金股利都高於前一年
三、今年現金股利超過兩元
下面兩個條件我是寫成選股腳本,腳本如下:
if trueall(getField("現金股利", "Y")>getField("現金股利", "Y")[1],5)
and getField("現金股利", "Y")>2
then ret=1;
outputfield(1,getField("現金股利", "Y"),1,"現金股利");
outputfield(2,getFielddate("現金股利", "Y"),0,"現金股利期別");
這個腳本搭配第一條選股條件,挑出來的股票如附圖
在用這個策略挑股票時,必須先了解公司業務的特質,這些每年配息都能成長的公司,代表公司賺的錢裡面,應該是不需要再花大錢在資本支出上,也代表公司財務透明度應該是比較高,這樣的公司,如果業務上是在趨勢潮流上,那麼除非趨勢潮流改變, 或是公司團隊或業態出現重大變化,或是市場飽和,不然挑這樣的公司,的確是大跌時抄底的一個好角度
如果各位覺得連五年持續股息成長太嚴苛 可以把腳本第一行最後的那個5改成您要的數字
我近來的閱讀重心放在演算法交易,等有心得時再來跟大家分享如何用程式來執行分單配單的動作
祝大家操作順利!
———–
買1送2優惠中!購買XQ【盤後量化選股模組】($1000)就送【台股進階模組+小道瓊行情】➤https://reurl.cc/1gDd1X
● 首次訂閱享7天鑑賞期,首次購買輸入官方優惠碼「@XQ8899」,首月可折抵模組費用$100!

走進我的交易室

在採訪投資怪傑的過程中,常常被反問,我現在都怎麼操作?今天就跟大家聊一聊我現在的操作方法
因著工作的關係,我無法盯盤,所以我的作法是每天選出一些股票,儘量在開盤那五分鐘把單子佈好,接著我就去忙別的事,等到回家後再作功課決定手上的個股要不要續抱。
我選股的方法現在也算是系統化了,我累積了蠻多的選股策略,這些策略都是我這些年一個一個慢慢寫,慢慢回測,覺得勝率真的夠高,而且我自己實戰下來也覺得不錯的策略,我把這些策略設成每日自動執行,然後每天打開選股中心後,按下多方策略總表後,就會看到當天這些策略跑出來符合條件的股票們(見附圖)
接下來我會根據成交量來排序,成交量太大的權值股跟成交量太小的股票我都會過濾掉,其他的我就存成觀察名單,然後
再一一仔細研究其基本面, 這樣我每天開盤前就有一份想加碼股票的清單
我會利用開盤的那五分鐘,看情況來佈單
因為我沒啥空看盤,所以我的投資組合還蠻散的,單一持股往往佔我整個總資產不到5%
至於持股要拉到多少% 則是看大盤多空情勢而定
如果我覺得大盤沒啥行情,除了崩盤都不賣的核心持股之外,啥都不再買
如果我覺得這盤還可以,我就會像在開雜貨店一樣,這邊買一點,那邊也買一點
我的選股腳本絕大多數是剛冒出頭類型的策略,停損停利都是7%
所以我挑的股票還蠻一致,都是那種先不要想贏,先儘量不要再破底的那一種,挑這種股票的好處是,停損很好設,破底就是賣
我的績效跟今天的航海王,鋼鐵人們相比,完全乏善可陳
但好處是,我的生活變的非常的規律,投資不會影響我的心情及工作,然後有空或有想法就寫個選股策略來測看看,從書上及雜誌上看到一些想法, 我也都會寫來測,我們公司也有幾位神人會給我一些回測數據很不錯的腳本
我就這樣一直累積一些不錯的策略
以上大致是我的操作流程
一點都不剌激,但工作之餘,還可以這樣作投資,我已經很感恩了
野人獻曝 祝大家操作愉快
買1送2優惠中!XQ【盤後量化選股模組】($1000)六大功能,購買就送【台股進階(原價$300)+小道瓊行情(延遲)】,立即了解 ➤https://utm.to/3mfphf
「選股模組+策略模組」打造您的程式交易!【XQ量化交易平台】立即了解 ➤https://utm.to/3ncck2

實施庫藏股是不是個好買點?

先前介紹的投資怪傑之28,曾經跟我們提到過,去找那些宣佈實施庫藏股之後有下去買股的公司,以及其施行的價位,那可能就是大股東覺得合理的價位區
我用XQ的選股中心設了一個關於庫藏股的選股策略,選股條件只要兩條,條件如附圖:
1. 庫藏股開始日期發生不到3天
2. 庫藏股預計買回張數大於2000張
我用這個選股腳本去回測,停損停利都設10%,勝率接近75%,不過績效略遜於大盤,如果停損停利設為7%,績效就更慘不忍睹,顯示看到實施庫藏股就下去買,短線未必討得到便宜,不過如果改成持有60天,勝率就接近78%,且總報酬率就蠻可觀的,遠遠打敗大盤,如果回測過去七年,勝率降到66%,但績效接近大盤的兩倍,印證了這位怪傑所說的,實施庫藏股的價位區,是大股東認為股價的合理價位區,但必須有耐心的等待。
這個選股策略不用寫程式,直接選條件就可以做出來,大家可以試試看,自己回測看看,也可以再加上其他條件,打造自己私房且高勝率的選股策略。
市場上常有不少投資達人提出一些操作的概念,我都會儘可能把他們提出來的觀點拿來回測,如果勝率不錯且交易次數夠多,我會從回測的交易分析中,看看那些輸錢的交易,有沒有共同的特徵,如果有的話,再加上一些過濾條件,像是如果輸錢的大多是沒量的股票,我就會加上成交量要超過1000張之類的條件。
我自己目前每天在自動執行的選股策略,就是這樣一個個積累起來的,我自己做到現在,是覺得成果還不錯,有興趣的朋友,也可以試試看。
祝大家今天操作順利。

好股票好價格系列之一

來跟大家介紹一個我在空頭市場會拿出來用的選股策略,這策略有兩個特色:
一是透過一些營收及財報欄位來找出心目中的好股票
二是透過PB等評價標準來從第一個標準中再找出價格夠便宜的股票
這個策略,沒有寫任何一行程式碼,選股條件如附圖:
這些條件都是選股中心裡內建的選股條件,
我這裡列的條件,主要是想找出毛利率創一段時間來新高,且毛利率夠高,每股營收夠高,這三個數字代表一個商業模式OK的公司,目前毛利率表現不錯,如果這樣的公司營收年增率超過一成,那代表目前本業獲利能力應該是優於去年。
如果這樣的公司成交量不到1000張且股價淨值比小於一倍,那代表這樣的公司算是股價夠更宜的冷門股。
這個策略就是專門去找這樣的公司,我回測了過去十年,停損停利都設為10%,跑所有的普通股但剔除營建股,回測的數據相當不錯,大家可以自行回測看看。
這個策略的缺點是通常都是大盤很差的時候才會出訊號,碰到大多頭市場時比較不會有符合條件的股票。
大家可以從回測報告的交易分析裡發現,這個策略跑出來的股票,都非常的冷,流動性不佳,法人認同度不高,多頭市場出訊號的頻率也很低,所以如果是頻繁交易的短線操作者,這不是一個可以每天有訊號可供交易的策略。
但像我這種喜歡尋找冷門股的人,這還是一個值得排入排程的策略。
類似這樣的策略,我手邊還有幾個,未來幾天再一一跟大家介紹,祝大家今天操作順利。

好股票好價格系列之二

今天跟大家介紹的這個選股策略,分成三個選股設定:
一、好股票: 這裡對好股票的定義比較寬,只要過去五年每年EPS都大於一元就算是好股票。
二、好價格
對於這個條件設的比較嚴,我這裡的好價格是指目前的股價要低於每股淨值加上自由支配現金,這代表只要公司維持目前的營運水準,股價已經低於現有的淨值加上新創造出來的現金,這個條件必須寫成以下的腳本
value1=getField("稅前息前折舊前淨利", "Q");
value2=getField("資本支出金額", "Q");
value3=getField("股本(億)", "D");
value4=(value1-value2)/(value3*10);
//每股自由支配現金
value5=getField("每股淨值(元)", "Q");
if (value4*4+value5)>close
and value4>0
then ret=1;
outputfield(1,value4*4+value5,1,"每股淨值+自由現金");
outputfield(2,value4*4,1,"每股自由現金");
outputfield(3,value5,1,"每股淨值");
三、進場觸發機制
在這個選股策略中,我除了設定了好股票及好價格的篩選條件之外,另外安排了一個時機設定條件,這個條件是「近一日成交量超過一千張」且「投信買超佔成交量一成以上」。
大家可以自己在「XQ選股中心」重現這個選股策略,我自己回測的結果在過去五年,用7%或10%來停損停利,勝率及總報酬率都不錯,大家可以參考這樣的概念再往下延伸。
—-
● XQ【盤後量化選股模組】($1,000) 六大功能,購買就送【台股進階(原價$300)+小道瓊行情(延遲)】➤https://utm.to/46urf3
● XQ【量化交易平台】立即了解 ➤https://utm.to/3h4dyt

好股票好價格系列之三

今天跟大家介紹的這個選股策略,對於好股票定的定義要符合三個條件
一、連續五年每股EPS都超過2元
二、連續五年每年營收都成長
至於好價格的定義則是「加入研發費用計算的本益比夠低」,這個條件的腳本如下:
value1=getField("本期稅後淨利", "Q")+getField("本期稅後淨利", "Q")[1]
+getField("本期稅後淨利", "Q")[2]+getField("本期稅後淨利", "Q")[3];
value2=getField("股本(億)", "D");
value3=getField("研發費用", "Q")+getField("研發費用", "Q")[1]
+getField("研發費用", "Q")[2]+getField("研發費用", "Q")[3];
value4=(value1+value3)/(value2*10);
if value4<>0 then
value5=close/value4;
input:highbond(8,"上限");
if value5<=highbond
and value5>0 then ret=1;
outputfield(1,value5,0,"考慮研發費用的本益比");
outputfield(2,value4,1,"加計研發費用的每股盈餘");
除了上述的條件之外, 我加了一個股價觸發條件:
「法人買進佔成交量的25%」且「成交量超過1000張」
整個組合出來的選股策略如附圖:
把研發費用計算進去來算本益比,主要是特別用來找出有用心持續投入研發的公司,這個估值方法和過去五年營收都成長配在一起,是用來找研發費用有展現在營運數據上的公司,這樣的選股策略,拿去回測,可以找到過去表現不錯,近期股價落難的公司。
很多價值型投資達人,都一直強調除了要挑到好股票,也要等到好價位,這系列會持續跟大家分享我在這方面的發現,祝大家今天操作順利。
—-
XQ【盤後量化選股模組】($1,000) 六大功能,購買就送【台股進階(原價$300)+小道瓊行情(延遲)】➤https://utm.to/46urf3

法說會前大股東也買超

每次到財報公佈前夕,不少公司都會召開法說會,來跟大家介紹一個很有意思的選股策略~法說會前夕內行人買超股,第三季財報公佈前,要知道數字好不好,最簡單的方法就是
1. 看看公司派在使用的券商分點有沒有買超?
2. 公司附近的券商分點有沒有買超?
3. 或是籌碼有沒有從發散趨於集中?
我用這樣的概念用【選股中心】系統內建的選股條件,寫了如附圖的選股策略:
大家可以試試看!
這個策略算是一個基礎的概念,大家可以根據自己的想法,再去作修正,也可以回測看看,公司派在法說會前買超,是一個蠻值得注意的訊息。
以上是今天跟大家分享的選股策略,祝大家操作順利!
===
● XQ【盤後量化選股模組】($1,000) 六大功能,購買就送【台股進階(原價$300)+小道瓊行情(延遲)】➤https://utm.to/46urf3
● 首次訂閱享7天鑑賞期,首次購買輸入官方優惠碼「@XQ8899」,首月可折抵模組費用$100!

大修正後的抄底系列之三~抄底腳本之大跌後長黑後的長紅

昨天跟大家分享了近30個交易日如果下跌達到28.49%之後,近20天內出現反彈,以及反彈幅度達到6.5%的機率超過八成,這樣的數據還無法實戰。
因為如果不停損,當個股繼續往下探底時,我們可就會一直的失血,萬一其中一檔讓我們在反彈之前就陣亡了,那麼勝率再高也沒有啥用。
所以最好的作法是,我們開始尋找其他的跡證,可以在個股符合30天下跌28.49%的前提下,當出現特定現象時,勝率會更高。
如果我們找到多個這樣的不同跡證,就可以在同一時間持有多檔符合條件的個股,這樣一分散持股,就算其中一檔挫掉了,其他持股還是可以把虧的補回來,而且整個投資組合也不至於輸到讓我們陣亡。
基於這樣的思維,我開始去尋找大跌後各種反彈跡證,今天跟大家介紹的是長黑後的長紅,我寫的腳本如下:
if close*1.2849<close[30]

//波段下跌超過28.49%

then begin

if close[1]*1.05<close[2]

//前天下跌超過5%

and close>1.05*close[1]

//昨天上漲超過5%

then ret=1;

end;
跟昨天的回測作法一樣,停利是6.5,不停損,回測過去五年,最大同時進場次數無限制。
這樣回測下來,總交易次數是1376次,勝率是92.2%,回測十年,勝率還有88%,這代表如果符合30天跌超過28.49%的前提下,又出現長黑後的長紅,那後市至少反彈6.5%,或是20天後能比目前收盤價高的機率是非常高的。
後續如果有機會,我可以陸續再跟介紹這種符合一定下跌幅度後,高勝率的跡證,大家也可以自己試試看。
最後回答一下網友的提問,反彈多少天跌多少%後勝率最高,不是用參數最佳化逼出來的,雖然小編我許願這個功能很久了,但我們家RD覺得運算量實在太大了,所以先動手在優化回測的引擎,希望讓效能更強大之後再來嘗試。
那這數字是怎麼出來的呢?其實是我們AI小組的同仁,拿了大PM給的一些個股的特徵值下去跑模型後,過濾到最後,去除掉與股價後市預測能力低的特徵值之後,得出來的數字。
類似的情況,其實也可以跑出外資買超連續幾天、買超過多少後的上漲機率最高。
這些研究的經驗,其實都是一段段摸索的過程,比較確定的是,我們是可以在【XQ量化平台】中,透過策略的撰寫,作數據的分析,找出一些高勝率的跡證,回頭讓AI模型去演算,在多策略,多特徵值相互交錯運作下,能否得到更高的預測能力。這次跟大家介紹的抄底相關數據就是這麼來的。
我知道市場上對量化交易,大部份的人都是半信半疑,但在美股,超過六成的交易量是來自量化交易,這表示顯然透過數據分析去預測股價,是一個有蠻大市場力量在進行的事情。
這幾年排名前20大的避險基金,絕大多數都有用量化在作交易,我們覺得走量化應該是一條可以深入研究的選擇。
最近得到的一些產出與回饋,更加深了我們的信心。
今年市場變數多,量化碰到黑天鵝通常都不大妙,不過從數據中找出稍縱即逝但高機率重覆出現的交易機會,這樣的研究方式,還會是小編接下來努力的方向。

跌多少、跌多久才值得開始抄底?

【大修正後的抄底系列之二~】
上一篇介紹要抄底先研判是反彈還是止跌回昇的指標,這一篇則是來討論股價在多久之內跌了多少%才值得留意。
不囉嗦,直接公佈答案:30天跌超過28.5%
客倌一定會說哩咧騙肖仔 ! 這是經驗法則嗎?
我沒那麼厲害啦!這是我們AI小組拿歷史數據跑模型後得出來的結論,要驗證看看嗎?
請大家跑一下,下方的選股腳本:
value1=close/close[30]-1;

if value1>-0.703448

and value1<-0.284939047

then ret=1;
停利用6.5%或20天,不停損,不限制同時進場次數,然後過去五年會有18896次交易,其中16000次會獲利出場,勝率高達84.67%。
如果您覺得用五年因為都是多頭市場,這樣不客觀,也可以把回測的時間拉長,我用過去十年的話勝率是82%,過去十二年的話勝率是80%,數字都十分的漂亮。
這個腳本及回測,不是說只要看到30天跌了28.49%就下去買,而是說如果近30個交易日跌幅落在28.49%~70.34%之間的話,反彈達到6.5%的機率是高的。
所以我們就可以開始在30天跌28.49%以上的情況下,開始發展各式各樣的抄底策略,因為在這樣的前提條件下,股價落底或至少有個小反彈的機率是蠻高的。
以上是今天跟大家分享的第二個抄底觀察。
到這邊我們用指標來研判大盤是不是合適抄底,也知道股價30天跌超過28.49%後可以開始找進場點,明天我再來整理找進場點時,如果出現那些訊號時可以留意。
===
● XQ【盤後量化選股模組】($1,000) 六大功能,購買就送【台股進階(原價$300)+小道瓊行情(延遲)】➤https://utm.to/46urf3
● 首次訂閱享7天鑑賞期,首次購買輸入官方優惠碼「@XQ8899」,首月可折抵模組費用$100!

大修正後的抄底系列之一~ 來研判是反彈還是回升的領先指標

小編過往寫了不少大跌後抄底的選股策略,這陣子就來跟大家再整理一次。
在分享這些策略之前,先跟大家介紹一個指標。
以前市場老師父常說,新手套在頭部,老手套在半山腰,所以我們得先分清楚目前是反彈還是回昇。
所有抄底的策略輸錢的交易,最常見的就是在大盤還沒見底時就出現的抄底訊號,以及進場後來不及停利而最終必須停損出場的交易。
這個指標先前也跟大家介紹過,就是拿權值股前100檔去計算目前有多少檔站在月線之上。
這個指標的腳本如下,大家可以複制到腳本編輯器裡,不用自己一檔一檔敲。
setbackbar(200);

settotalbar(1000);

array:T50[100](0);

t50[1]=GetSymbolField("5876.tw","close");

t50[2]=GetSymbolField("2317.tw","close");

t50[3]=GetSymbolField("2412.tw","close");

t50[4]=GetSymbolField("1301.tw","close");

t50[5]=GetSymbolField("1303.tw","close");

t50[6]=GetSymbolField("2454.tw","close");

t50[7]=GetSymbolField("1326.tw","close");

t50[8]=GetSymbolField("2308.tw","close");

t50[9]=GetSymbolField("2882.tw","close");

t50[10]=GetSymbolField("2881.tw","close");

t50[11]=GetSymbolField("2891.tw","close");

t50[12]=GetSymbolField("2002.tw","close");

t50[13]=GetSymbolField("1216.tw","close");

t50[14]=GetSymbolField("3008.tw","close");

t50[15]=GetSymbolField("2886.tw","close");

t50[16]=GetSymbolField("3711.tw","close");

t50[17]=GetSymbolField("2357.tw","close");

t50[18]=GetSymbolField("2474.tw","close");

t50[19]=GetSymbolField("3045.tw","close");

t50[20]=GetSymbolField("6505.tw","close");

t50[21]=GetSymbolField("2303.tw","close");

t50[22]=GetSymbolField("2382.tw","close");

t50[23]=GetSymbolField("2207.tw","close");

t50[24]=GetSymbolField("2892.tw","close");

t50[25]=GetSymbolField("4938.tw","close");

t50[26]=GetSymbolField("2884.tw","close");

t50[27]=GetSymbolField("2912.tw","close");

t50[28]=GetSymbolField("2885.tw","close");

t50[29]=GetSymbolField("2883.tw","close");

t50[30]=GetSymbolField("2105.tw","close");

t50[31]=GetSymbolField("2880.tw","close");

t50[32]=GetSymbolField("2330.tw","close");

t50[33]=GetSymbolField("4904.tw","close");

t50[34]=GetSymbolField("5880.tw","close");

t50[35]=GetSymbolField("2823.tw","close");

t50[36]=GetSymbolField("9904.tw","close");

t50[37]=GetSymbolField("1402.tw","close");

t50[38]=GetSymbolField("1101.tw","close");

t50[39]=GetSymbolField("2887.tw","close");

t50[40]=GetSymbolField("2890.tw","close");

t50[41]=GetSymbolField("2801.tw","close");

t50[42]=GetSymbolField("2633.tw","close");

t50[43]=GetSymbolField("5871.tw","close");

t50[44]=GetSymbolField("2301.tw","close");

t50[45]=GetSymbolField("2395.tw","close");

t50[46]=GetSymbolField("2354.tw","close");

t50[47]=GetSymbolField("9904.tw","close");

t50[48]=GetSymbolField("1102.tw","close");

t50[49]=GetSymbolField("2408.tw","close");

t50[50]=GetSymbolField("2227.tw","close");

t50[51]=GetSymbolField("2409.tw","close");

t50[52]=GetSymbolField("6669.tw","close");

t50[53]=GetSymbolField("2377.tw","close");

t50[54]=GetSymbolField("2888.tw","close");

t50[55]=GetSymbolField("4958.tw","close");

t50[56]=GetSymbolField("3037.tw","close");

t50[57]=GetSymbolField("2301.tw","close");

t50[58]=GetSymbolField("9921.tw","close");

t50[59]=GetSymbolField("2049.tw","close");

t50[60]=GetSymbolField("5269.tw","close");

t50[61]=GetSymbolField("1476.tw","close");

t50[62]=GetSymbolField("3481.tw","close");

t50[63]=GetSymbolField("8464.tw","close");

t50[64]=GetSymbolField("8454.tw","close");

t50[65]=GetSymbolField("2823.tw","close");

t50[66]=GetSymbolField("2603.tw","close");

t50[67]=GetSymbolField("3231.tw","close");

t50[68]=GetSymbolField("2324.tw","close");

t50[69]=GetSymbolField("2633.tw","close");

t50[70]=GetSymbolField("2356.tw","close");

t50[71]=GetSymbolField("9904.tw","close");

t50[72]=GetSymbolField("8046.tw","close");

t50[73]=GetSymbolField("2492.tw","close");

t50[74]=GetSymbolField("6409.tw","close");

t50[75]=GetSymbolField("2354.tw","close");

t50[76]=GetSymbolField("2353.tw","close");

t50[77]=GetSymbolField("2834.tw","close");

t50[78]=GetSymbolField("2227.tw","close");

t50[79]=GetSymbolField("2347.tw","close");

t50[80]=GetSymbolField("9914.tw","close");

t50[81]=GetSymbolField("6239.tw","close");

t50[82]=GetSymbolField("3702.tw","close");

t50[83]=GetSymbolField("2360.tw","close");

t50[84]=GetSymbolField("3406.tw","close");

t50[85]=GetSymbolField("2385.tw","close");

t50[86]=GetSymbolField("9945.tw","close");

t50[87]=GetSymbolField("2337.tw","close");

t50[88]=GetSymbolField("3044.tw","close");

t50[89]=GetSymbolField("1504.tw","close");

t50[90]=GetSymbolField("1227.tw","close");

t50[91]=GetSymbolField("2313.tw","close");

t50[92]=GetSymbolField("2618.tw","close");

t50[93]=GetSymbolField("1605.tw","close");

t50[94]=GetSymbolField("2542.tw","close");

t50[95]=GetSymbolField("2344.tw","close");

t50[96]=GetSymbolField("1434.tw","close");

t50[97]=GetSymbolField("1229.tw","close");

t50[98]=GetSymbolField("2376.tw","close");

t50[99]=GetSymbolField("1722.tw","close");

t50[100]=GetSymbolField("2610.tw","close");
variable:count(0),i(0);
count=0;
for i=1 to 100 begin
if t50[i] > average(t50[i],22)
then count=count+1;
end;
plot1(average(count,3)-50);
用這個指標畫出來的圖如附圖:
大家從附圖中的說明來研判目前大盤是屬於多頭架構還是空頭架構。
其次是在空頭架構中,反彈時,站上月線的個股數不多,但如果是回升,站上月線的個股數會非常快速的持續增加。
要特別跟大家說明的是,上面的腳本是我先前寫的,目的只是跟大家報告可以透過這樣的方式來設計指標,這兩年成份股一直有在變,有的股票也下市了,請大家務必要自己再根據現況再調一下。