前文的連結 https://ptt-club.com.tw/Stock/M.1609662954.A.C44 https://ptt-club.com.tw/Stock/M.1613288438.A.178 https://ptt-club.com.tw/Stock/M.1617529021.A.0FC https://ptt-club.com.tw/Stock/M.1632205662.A.512 之前寫過一些關於開發使用技術分析做程式輔助交易的心得 當初提到我的選股程式開發分成三個階段(或者世代)。 第一階段是技術線型選股 第二階段加上了進出場策略與績效回測 第三階段再加上資金管理與模擬 這篇則是想再補充一些資金模擬系統裡面關於選股評分的部分 一開始程式在第一與第二世代的時候並沒有對於選出來個股的評估機制 操作上就是程式選出來之後我再人工憑自己的感覺挑喜歡的去操作。 不過這個時候已經遇上在篩選門檻設定上選擇的問題 條件設太寬會出現太多看上去就覺得不會想做而且拉低回測績效的個股 條件設太嚴則會變成選出來的太少 還有一個也是門檻的問題,假設有A、B兩支個股 A每個篩選指標都只稍微過門檻低空飛過 B是有一個差一點點沒過但是其他每個篩選指標都超過門檻一段距離 理論上B應該會比較好,但是卻是A會過B不過 接著在第三世代的程式, 也就是為了評估年化報酬率開始做資金模擬的時候就馬上遇到問題 因為買進持股配額是有限的(測試設定大約就5~10支) 當篩選出來的個股多於配額的時候就必須做出取捨 因此就需要一個對選出來個股做出排序的機制,於是就衍生發展出評分的系統 最直接的想法就是 對當初篩選的指標,想辦法弄出公式把他正規化成0~1區間,然後再做加權平均 例如之前那個資金模擬模擬程式用的前高突破選股第一個篩選指標: 「過去180個交易日最高價大於最低價1.2倍」 分數公式 score = Min(1.0, (max_value ÷ min_value - 1.0)) 然後對分數做排序計算每個分數區間績效平均就可以得到這個圖表 https://i.imgur.com/PZ4S21v.png
看起來分數與績效有正相關性,公式姑且算是有用。接著 大波段斜率 https://i.imgur.com/cxLn4gn.png
離前高的距離 https://i.imgur.com/M6U0Aeo.png
平均成交值 https://i.imgur.com/qEJunSL.png
前兩個相關性看起來比較高所以權重給高一點 後兩個相關性看起來偏低所以權重給低一點 做完加權平均之後就長這樣 https://i.imgur.com/k0kdzg2.png
一個簡單的評分模型就完成了 接下來跑資金模擬的時候,就是每次操作都從分數最高的開始買起買到配額用完為止 同時這也解決了之前遇到的篩選門檻是要寬鬆還是要嚴格 以及出現其他都很好就是有一個門檻差一點點沒過的問題: 「我把每個篩選門檻通通調很低,選進來之後用分數再篩一次」 不過這個方法其實真的就很感覺是在想辦法去湊答案 從分數轉換公式到權重的分配,都是一直試再試,試到覺得回測看起來不錯為止 我也有在想也許有比這個更好的辦法,只是現階段我只想到這個方法, 而且這姑且也算是個還算有效的方法所以目前也就一直用著了 -- ※ 發信站: 批踢踢實業坊(ptt-club.com.tw), 來自: 118.231.201.82 (臺灣) ※ 文章網址: https://ptt-club.com.tw/Stock/M.1687446754.A.72F
UltraSeven : 閱 06/22 23:29
SRNOB : 字太多 30字總結 06/22 23:36
neo5277 : 你是想寫策略跟回測的話為什麼不用multichat,純粹好 06/22 23:55
neo5277 : 奇考量是什麼?還是是要做論文啊? 06/22 23:55
sazabijiang : 其實貼對帳單就好 06/23 00:58
FishRoom: 歐美包養真的很平常嗎? 06/23 00:58
Justisaac : 最後四行我覺得overfitting........ 06/23 03:51
hsucheng : 這個有比用NN的強嗎 06/23 09:18
carolgilbert: 程式可以分享嗎? 06/23 10:18
ProTrader : 分數轉換方法很多但多不一定好 用自己熟悉的最好 06/23 12:32
ProTrader : 初學者請慎重考慮要不要用商用軟體 06/23 12:34
KsiR: 男友上包養網 該放生嗎 06/23 12:34
ProTrader : 坦白說商用軟體能符合絕大多數人的需求 06/23 12:37
ProTrader : 只是想要賺錢的話 商用軟體用的好就很夠了 06/23 12:37
ProTrader : 我自己是到了能做論文的等級才覺得自己開發沒有虧 06/23 12:38
ProTrader : 自創的複雜演算法以及自己想要的資料整理方式 06/23 12:40
ProTrader : 商用軟體支援的終究有限不可能完美 06/23 12:41
peoples: 是這個包養平台嗎 06/23 12:41
ProTrader : 我在初級與中期甚至部分高階的開發 商用軟體都有 06/23 12:44
ProTrader : 所以 只是想賺錢的話 商用軟體就夠了而且CP值高 06/23 12:45
ProTrader : 但想走真正走出自己的道路還是要自行開發 06/23 12:47
ProTrader : 如果能人生重來我會先學好商用軟體再考慮自己開發 06/23 12:49
pillowkiller: 推 06/23 18:18
wilmer: 交男友跟包養有什麼差別 06/23 18:18
sky22485816 : 如果是從盈利的角度看用商用軟體確實比較好,也比 06/23 22:20
sky22485816 : 較不用擔心工具寫錯的問題,但是自己寫我覺得有個 06/23 22:20
sky22485816 : 好處就是會讓自己一直不斷的思考(反過來說就是一 06/23 22:20
sky22485816 : 直不斷的懷疑自己),我覺得對我自己來說還是挺有 06/23 22:20
sky22485816 : 幫助的 06/23 22:20
badlip: 包養網到底在紅什麼? 06/23 22:20
gtcw : 推推 06/23 22:25
ProTrader : 我當年作過簡單的機器學習專題(非NN)就自以為利害 06/23 23:29
ProTrader : 認為我作程式交易發大財是很簡單的事就開始DIY 06/23 23:30
ProTrader : 因為無知所以讓我有無所畏懼的勇氣 06/23 23:32
ProTrader : 商用軟體以及程式交易的知識初學當然是從填鴨開始 06/23 23:34
piggyoil: 有人被包養 06/23 23:34
ProTrader : 入門後當然就要能對策略與結果評論檢討才能進步 06/23 23:36
ProTrader : DIY就只能靠不斷的自我檢討反思改善來求進步 06/23 23:39
ProTrader : 若沒有跟別人比較 我覺得一但自己有盲點會很難發現 06/23 23:40
ProTrader : 然後就原地踏步直到發現盲點 這時間耗損很恐怖 06/23 23:41
ProTrader : 像我 作好作壞都曾經因為沒有發現而拖慢自己進度 06/23 23:44
TwixBar: 求包養...管飽就好XD 06/23 23:44
ProTrader : 所以不管DIY或是商用 都需要跟自己也跟別人比較 06/23 23:45
patricktu : NN沒有想像中強 overfit的程度超越你的想像 06/24 00:02
Hatewoman : 那.......有賺嗎? 06/24 02:27
poker119 : 可以把我的推文部份修掉嗎 感謝 06/24 07:56
ProTrader : 商用軟體的策略庫與別人論文可能有突破方法 06/24 13:07
boggicer: 阿姨!我不想努力了(求包養) 06/24 13:07
ProTrader : 都沒有 就只能等柯南那種靈光一閃出現靈感 06/24 13:08
yunf : 這大概是20年前甚至更早人類在探求的方法吧 06/28 01:14
yunf : 這數學可能只有國小程度 06/28 01:14