2022年10月28日 星期五

股票 回測結果 簡單玩玩小公開 (85%)

 小編經過這些時日的努力,簡單分享一下模擬結果

模擬結果單純是資料整理結果,不作為投資理財參考歐


第二階段回測:

資料範圍:105~111年

資料:財務報表、營收資料與每月收盤資料

股票:約1783家(事後發現有200多家是興櫃,就PASS摟)

模擬次數:每間公司執行約95次時間點組合

產出:合計1783張走勢圖,驗證指標與股價之間判斷力是否具備解釋能力。

測試結果如下,因為小編是用黃金右手在測試結果中,把一張一張生成的圖成一大張出來的,所以整理了3大張宣布放棄,因為心想回測資料沒有要上傳,簡單作BLOG 紀錄用,整理三張夠了(有夠懶)




最終15%,放在預測這塊,以及增加時間數列分析,就全數軟體改版完成。


2022年10月23日 星期日

股票:集保庫存變化,400張合併分析(2022/10/23)

 股票:集保庫存變化,400張合併分析(2022/10/23) 

資料整理僅供參考,不作為投資理財依據。

目前資料股票家數為1784家的原始資料。





2022年10月14日 星期五

股票:集保庫存變化,400張合併分析(2022/10/14)

 
股票:集保庫存變化,400張合併分析(2022/10/14) 

資料整理僅供參考,不作為投資理財依據。

2022年10月13日 星期四

日文學習筆記:大家的日本語 第十二課

 日文學習筆記:大家的日本語 第十一課

學習日文筆記分享。

學習參考書籍:大家的日本語 

有匡誤,請提醒,我做補正



2022年10月12日 星期三

日文學習筆記:大家的日本語 第十一課

日文學習筆記:大家的日本語 第十一課

學習日文筆記分享。

學習參考書籍:大家的日本語 

有匡誤,請提醒,我做補正



股票:營收、年增率與各產業走勢圖(108/01~111/09)

 股票:營收、年增率與各產業走勢圖(108/01~111/09)

僅供參考,不作為投資理財依據。 




VBA:一因子變異數分析(ANOVA) VBA版

 分析資料:


圖1.資料


一般EXCEL操作 動畫版:

圖2.運算結果

接下來是小編自己寫的VBA版本:
Sub ONE_WAY_ANOVA()
On Error GoTo LINE1
' ONE ANOVA
RANGE1 = Application.InputBox("選擇資料矩陣的儲存格開始", Type:=8).Address '取得位置
If RANGE1 = "" Then
Exit Sub
End If
RANGE1_TEMP = Mid(InStr(RANGE1, "$") + 1, 1) + 1
RANGE1_TEMP2 = Split(RANGE1, ":")
TEMP1 = Split(RANGE1_TEMP2(0), "$")
TEMP2 = Split(RANGE1_TEMP2(1), "$")
RANGE2 = Application.InputBox("選擇資料矩陣的儲存格範圍", Type:=8).Address '取得位置
If RANGE2 = "" Then
Exit Sub
End If
ALPHA = InputBox("輸入ALPHA值")
If IsNumeric(ALPHA) = False Then
Exit Sub
End If
AVERAGE_ALL = Application.Average(ActiveSheet.Range(RANGE2)) '有帽子的AVERAGE
RANGE2_temp = Split(RANGE2, ":")
TEMP21 = Split(RANGE2_temp(0), "$")
TEMP22 = Split(RANGE2_temp(1), "$")
BEGIN_ROW = Right(RANGE2_temp(0), 1)
END_ROW = Right(RANGE2_temp(1), 1)
Add = 1
SSE_TOTAL = ""
SSTR_TOTAL = ""
SSE_TOTAL_DF = 0
SSTR_TOTAL_DF = 0
For Each i In ActiveSheet.Range(RANGE1)
'For i = BEGIN_ROW To END_ROW Step 1
ADDRESS_TEMP = Split(ActiveSheet.Cells(1, i.Column).Address, "$")
ADDRESS_TEMP_ENDUP = ActiveSheet.Range(ADDRESS_TEMP(1) & 10).End(xlUp).Row
ADDRESS_TEMP2 = Split(ActiveSheet.Range(RANGE1_TEMP2(1)).Address, "$")
ADDRESS_COLUMN = ActiveSheet.Range(RANGE1_TEMP2(1)).Column + 1
Average = Application.Average(ActiveSheet.Range(ADDRESS_TEMP(1) & RANGE1_TEMP & ":" & ADDRESS_TEMP(1) & ADDRESS_TEMP_ENDUP))
'ActiveSheet.Range(ADDRESS_TEMP(1) & ADDRESS_TEMP_ENDUP + 1) = Average
Set SSE_RANGE = ActiveSheet.Range(ADDRESS_TEMP(1) & RANGE1_TEMP & ":" & ADDRESS_TEMP(1) & ADDRESS_TEMP_ENDUP)
For Each J In SSE_RANGE
If SSE_TOTAL = "" Then
SSE_TOTAL = (Average - J.Value) ^ 2
SSE_TOTAL_DF = SSE_TOTAL_DF + 1
' ActiveSheet.Cells(J.Row + END_ROW, J.Column + 6) = SSE_TOTAL
Else
SSE_TOTAL = SSE_TOTAL + (Average - J.Value) ^ 2
SSE_TOTAL_DF = SSE_TOTAL_DF + 1
' ActiveSheet.Cells(J.Row + END_ROW, J.Column + 6) = SSE_TOTAL
End If
'SSTR_TOTAL
If SSTR_TOTAL = "" Then
SSTR_TOTAL = (Average - AVERAGE_ALL) ^ 2
SSTR_TOTAL_DF = SSTR_TOTAL_DF + 1
' ActiveSheet.Cells(J.Row + END_ROW, J.Column) = (Average - AVERAGE_ALL) ^ 2
Else
SSTR_TOTAL = SSTR_TOTAL + (Average - AVERAGE_ALL) ^ 2
SSTR_TOTAL_DF = SSTR_TOTAL_DF + 1
' ActiveSheet.Cells(J.Row + END_ROW, J.Column) = (Average - AVERAGE_ALL) ^ 2
End If
Next
Next
' Set RANGE2_T = ActiveSheet.Range(TEMP21(1) & TEMP21(2) & ":" & TEMP21(1) & TEMP22(2))
For i = TEMP21(2) To TEMP22(2) Step 1
Debug.Print i
Average = Application.Average(ActiveSheet.Range(TEMP1(1) & i & ":" & TEMP2(1) & i))
' ActiveSheet.Cells(i, ADDRESS_COLUMN) = Average
Next
'SSTO
SSTO_Total = ""
SSTO_Total_DF = 0
For Each AA In ActiveSheet.Range(RANGE2)
If SSTO_Total = "" Then
SSTO_Total = (AVERAGE_ALL - AA.Value) ^ 2
SSTO_Total_DF = SSTO_Total_DF + 1
' ActiveSheet.Cells(AA.Row, AA.Column) = (AVERAGE_ALL - AA.Value) ^ 2
Else
SSTO_Total = SSTO_Total + (AVERAGE_ALL - AA.Value) ^ 2
SSTO_Total_DF = SSTO_Total_DF + 1
' ActiveSheet.Cells(AA.Row, AA.Column) = (AVERAGE_ALL - AA.Value) ^ 2
End If
Next
ActiveSheet.Cells(3 + END_ROW, Val(BEGIN_ROW)) = "SS"
ActiveSheet.Cells(6 + END_ROW, BEGIN_ROW - 1) = "SSTO"
ActiveSheet.Cells(4 + END_ROW, BEGIN_ROW - 1) = "SSTR"
ActiveSheet.Cells(5 + END_ROW, BEGIN_ROW - 1) = "SSE"
ActiveSheet.Cells(4 + END_ROW, Val(BEGIN_ROW)) = SSTR_TOTAL
ActiveSheet.Cells(5 + END_ROW, Val(BEGIN_ROW)) = SSE_TOTAL
ActiveSheet.Cells(6 + END_ROW, Val(BEGIN_ROW)) = SSTO_Total
ActiveSheet.Cells(3 + END_ROW, Val(BEGIN_ROW) + 1) = "DF"
ActiveSheet.Cells(4 + END_ROW, Val(BEGIN_ROW) + 1) = TEMP22(2) - TEMP21(2) - 2 'SSTR_TOTAL_DF - 1
ActiveSheet.Cells(5 + END_ROW, Val(BEGIN_ROW) + 1) = SSTO_Total_DF - 1 - (TEMP22(2) - TEMP21(2) - 2)
ActiveSheet.Cells(6 + END_ROW, Val(BEGIN_ROW) + 1) = SSTO_Total_DF - 1
ActiveSheet.Cells(3 + END_ROW, Val(BEGIN_ROW) + 2) = "MS"
ActiveSheet.Cells(4 + END_ROW, Val(BEGIN_ROW) + 2) = SSTR_TOTAL / (TEMP22(2) - TEMP21(2) - 2)
ActiveSheet.Cells(5 + END_ROW, Val(BEGIN_ROW) + 2) = SSE_TOTAL / (SSTO_Total_DF - 1 - (TEMP22(2) - TEMP21(2) - 2))
'ActiveSheet.Cells(6 + END_ROW, Val(BEGIN_ROW) + 2) = SSTO_Total_DF
ActiveSheet.Cells(3 + END_ROW, Val(BEGIN_ROW) + 3) = "F"
ActiveSheet.Cells(4 + END_ROW, Val(BEGIN_ROW) + 3) = ActiveSheet.Cells(4 + END_ROW, Val(BEGIN_ROW) + 2) / ActiveSheet.Cells(5 + END_ROW, Val(BEGIN_ROW) + 2)
ActiveSheet.Cells(3 + END_ROW, Val(BEGIN_ROW) + 4) = "P值"
'ActiveSheet.Cells(4 + END_ROW, Val(BEGIN_ROW) + 4).Formula = FDist(F11, D11, D12)
ActiveSheet.Cells(4 + END_ROW, Val(BEGIN_ROW) + 4) = Application.FDist(ActiveSheet.Cells(4 + END_ROW, Val(BEGIN_ROW) + 3), ActiveSheet.Cells(4 + END_ROW, Val(BEGIN_ROW) + 1).Value, ActiveSheet.Cells(5 + END_ROW, Val(BEGIN_ROW) + 1).Value) 'FDist(F11, D11, D12)
ActiveSheet.Cells(3 + END_ROW, Val(BEGIN_ROW) + 5) = "臨界值"
ActiveSheet.Cells(4 + END_ROW, Val(BEGIN_ROW) + 5) = Application.WorksheetFunction.F_Inv_RT(ALPHA, ActiveSheet.Cells(4 + END_ROW, Val(BEGIN_ROW) + 1).Value, ActiveSheet.Cells(5 + END_ROW, Val(BEGIN_ROW) + 1).Value)
Exit Sub
LINE1:
If Err.Description = "此處需要物件" And Err.Number = 424 Then
Exit Sub
End If
End Sub
view raw gistfile1.txt hosted with ❤ by GitHub


操作GIF:




2022年10月11日 星期二

人不能到中年才不惑

 一個飯局,百般感悟

同楷間,難得再聚,熟習臉孔,歷練滄商得的痕跡,撫摩著每一張老同學,也帶走老同學曾經雍有的青春;話題間,多了更多務實的主題"你現在忙啥?在那上班?身材越來越魁武了歐!!!!!"

靦恬的答話之間,同學間熱絡了,也多了更多關心,也反映出同學間疏離與看不見的隔閡。

更多的是....

同學之間變了

    身材變了

    高度變了

    話題變了

    距離也變了

    肩膀上的重量也變了

    同學們也變少了

    當然看電影也越來越白目了 哈哈

大家也都正式宣告40有了。

子曰:三十而立,四十而不惑,五十而知天命,六十而耳順,七十而從心所欲

 三十而立並非全指三十歲成家立業, 這裡的"立"也指學業的根基已經建立,

 就是個人的價值觀已經成形,不易被外力所動搖。

四十不惑,準確的說也不是四十歲沒有疑惑, 「立」與「惑」是一組對立,界定在於是否懂得行權。

"不惑"一詞,小編我自己有另外的感觸,人到40了,也表示出社會一段不短的時間了,人、事、物體驗與體悟也多,自然有其累積與持續深耕之領域,所以我不認為立與惑是對立的,反而是類似紫微斗數能量的概念,所立之出發點經過不斷學習與累積,經過多年修練後,累積之能量與修正調整積累於自身之專業,亦不惑其途;

若經過這段時間,對自身學習仍充滿疑惑,那更要好好檢討自己是否要再走下去了,不然中年失業很簡單,尤其是這年代;

所以,以自身體悟小編認為,故標題立下了"人可不能到中年才不惑"此一標語。

更有讓自己有能力變成家人的支柱,立起自己跟家人。



不惑於其途亦有所立,惑與立亦為橋與梁




2022年10月9日 星期日

股票:集保庫存變化,400張合併分析(2022/10/07)

股票:集保庫存變化,400張合併分析(2022/10/07) 

資料整理僅供參考,不作為投資理財依據。

主程式與資料SQL完成集保新版建置。讚啦









周指數(資料更新到2022.10.07)

 周指數(資料更新到2022.10.07)

簡單整理,投不投資,自行權衡,不作為參考依據







2022年10月5日 星期三

VBA:一因子變異數分析(ANOVA)錄製版

 好久沒寫統計分析得東西了,今天翻出了童甲春教授著作的統計學引用裏頭的範例來做做變異數分析,簡單操作。


分析資料:

圖1.資料


一般EXCEL操作 動畫版:

圖2.運算結果


小編做成動畫版同時也把VBA錄製起來了,接下來修改CODE。

SUB 巨集1

 Application.Run "ATPVBAEN.XLAM!Anova1", ActiveSheet.Range("$C$2:$E$7"), _
        ActiveSheet.Range("$I$2"), "C", True, 0.05

END SUB

修改成可以調整資料位置:

Sub 巨集1()

RANGE1 = Application.InputBox("選擇資料矩陣的儲存格範圍", Type:=8).Address '取得位置

RANGE2 = Application.InputBox("選擇資料輸出的儲存格位置", Type:=8).Address '取得位置

ALPHA = InputBox("", "ALPHA 風險設定")

     Application.Run "ATPVBAEN.XLAM!Anova1", ActiveSheet.Range("$C$2:$E$7"), _
        ActiveSheet.Range(RANGE2), "C", True, ALPHA
        
End Sub

其他補充:
 "C"是指逐欄 R指逐列
圖3.變異數分析設定截圖
TRUE,就是資料有無標題設定

小編碎念:也在想還是寫成自動識別資料就好,就不需要太多對話框設定,因為太多對話框那用EXCEL內建的就好啦QQ


簡單測試動畫:

圖4.修改後運算結果











2022年10月4日 星期二

日文學習筆記:大家的日本語 第十課

 日文學習筆記:大家的日本語 第十課

學習日文筆記分享。

學習參考書籍:大家的日本語 

有匡誤,請提醒,我做補正

這幾天搜尋資料發現一個網站得標題寫

XXX とXXX で世の中を便利にする 

我很喜歡這個出發點,也剛好當練習日文,哈
















2022年10月3日 星期一

VBA:直交表

 最近因為上課需要,需要用到學校買的MINITAB,但怎會發生網路認證問題!!!

(業務如果看到可以火力支援嗎?)

讓學生不能用MINITAB了,怎辦!!!!!

那就來做個直交表吧!

😂😂😂😂😂

單純思考如何幫助學生,讓學生學習更方便。

來寫一個直交表的VBA瞜



目前成品,但直接表還有摺疊設計的部分,來想想怎做 哈。

 


周指數(資料更新到2022.09.30)+未來一周要點

  周指數(資料更新到2022.09.30)+未來一周要點

簡單整理,投不投資,自行權衡,不作為參考依據

光輝10月不知道會不會開紅







2022年10月2日 星期日

日文學習筆記:大家的日本語 第九課

日文學習筆記:大家的日本語 第九課

學習日文筆記分享。

學習參考書籍:大家的日本語 

有匡誤,請提醒,我做補正



產業別當沖比2022/09/01~2022/09/30

產業別當沖比2022/09/01~2022/09/30

單純資料分享,不作為投資理財參考

資料分類:根據公開觀測站營收資料的產業分類 

藍色是交易張數;紅色是當沖



指數變化(2025.03.20)

  指數變化(2025.03.20) 上周焦點: 美國紐約州製造業指數 -20 美國企業庫存月增率 +0.3% 美國零售額月增率  +0.1% FED 不升息 川普 名句:對等關稅是具備彈性的 本周愛看: 美國消費者信心指數 3/25 美國耐久財訂單月增率 3/26       ...