農曆年後個股上漲機率統計

0Shares
Image

本文的完成要感謝貓老大跟院長的協助,搞出超有效率的程式碼

院長的社團在這,歡迎加入,很多好東西

每到農曆年前,就會看到新聞在討論台股年後的上漲機率,不過,這些討論多集中在大盤,少有個股,有沒有個股在過去的上漲機率統計呢? 來看看吧

 勝率統計表
下面表格為統計過去10年,每檔股票,年後第一個交易日開盤進場,持有不同天數的勝率,1勝率,代表的是年後第一個交易日收盤出場,2勝率代表的是年後第一個交易日收盤出場,其他依此類推

另外,要注意的是,總次數那邊的數字,如果是新股,總次數會<10,所以如果看到勝率100%的個股,先不要太高興,有可能是總次數沒有太多的關係

將不符合10次的股票去除後,上市櫃股只剩1317檔,將每檔個股勝率跟出場時間,做了一個統計,從下表可以看出,持股三天以上的且紅K的占比,比持股2天以內的占比高不少,似乎持股10天再出場,占比都比其他天還高,或可從在持股10天出場且佔九成以上勝率的個股去篩選接下來開紅盤要進場的股票

PS: 統計表的檔案,在下方,請自己匯入,可以自己調整要計算過去幾年,最多23年

 100%勝率個股數統計 
除了上面的統計外,這邊還用了幾個不同的條件做了交叉統計,在計算100%勝率出現的次數,這個統計的進出場及週期說明如下

  • 進場日分為封關日當天收盤進場跟開紅盤當日開盤進場
  • 出場則為開紅盤當天開盤出場、紅盤當天收盤出場,及年後第2、3、5、10、20個交易日的收盤出場
  • 統計過去5、10、15、20年,100%賺錢的個股數量

從上面的表格可以看出來,統計超過15年以後,100%賺錢的個股數量急速的減少,而且多是要等到持股10天以上才會獲利,而統計過去20,則100%能賺錢的個股數量則為0,這樣是不是代表過去10年勝率100%的個股,之後出現賠的機率變大了!!! 不過這個數據每年都會變化,是不是這樣,需要再做更深入的研究,這邊就先暫不討論

 封關日進場勝率較高嗎?
很多人應該每年都在糾結是不是該抱股過年,根據上面的比較表可以看出來,不管是統計過去幾年,不管是持股幾天出場,封關日收盤進場後,出現100%勝率的股票機率遠低於開紅盤再進場的方式

不過,這樣是不是代表,不應該封關日收盤進場呢? 應該也不一定,兩個進場方式,最終成為勝率高的股票是不同的,那如果封關日要進場,又該如何篩選股票呢?

以下表為例,統計的是過去10年的勝率,可以先把持股20天且勝率100%的股票列出,然後再看看其他持股天數的勝率,如果其他持股天數出現勝率較低的狀況,如和益、欣雄、達欣工,或許就可以不要列入考慮,只保留各持股天數勝率都比較高的個股,或許會比較有機會在前期就獲利先出場

上面篩選方式只是一個想法,沒有實證,大家可以自己調整,或再加入其他條件篩選

 開紅盤進場賺的到錢嗎?
採用跟上面同樣的方式,先將持股20天,勝率100%的股票列出,再挑選其他持股天數勝率至少能達到七成以上的股票,原本34檔股票,最後挑出15檔,不過,這只是我想測試的方式,可以年後來驗證看看,大家也可以測試自己的方式,看看年後會有怎樣的表現

PS: 第1天的勝率我是忽略的

 勝率高的一定賺錢嗎?
這也是個很有趣的問題,有沒有可能勝率高的股票是賺少賠多呢?這還真的是有可能的,院長也幫忙做了一個統計,用過去23年來看,有五檔股票紅K次數高達20次,但損益總和來看,有2檔依然是虧損的,如果把出場的停損利用的小點會不會好點呢? 那就有待大家試試了

 程式碼
這個選股方式的程式碼,還滿值得討論的,原本我是先用陣列列出過去每年開紅盤後第20個交易日的日期,然後用getbaroffset去找出年後各相對應日期的開盤價或收盤價,不過,這樣的寫法,資料讀取筆數會需要比要取的陣列日期還要長才能正確抓到相關數值,也造成選股要花非常久的時間,甚至失敗

input: n(15,"計算幾期勝率");

if date <> date[1] then ret=1;

Array: date20[23](0);   //農曆年開盤後的第20個交易日

date20[1] = 20000306;
date20[2] = 20010223;
date20[3] = 20020318;
date20[4] = 20030306;
date20[5] = 20040223;
date20[6] = 20050314;
date20[7] = 20060303;
date20[8] = 20070323;
date20[9] = 20080311;
date20[10] = 20090227;
date20[11] = 20100319;
date20[12] = 20110308;
date20[13] = 20120223;
date20[14] = 20130315;
date20[15] = 20140305;
date20[16] = 20150323;
date20[17] = 20160314;
date20[18] = 20170302;
date20[19] = 20180321;
date20[20] = 20190312;
date20[21] = 20200226;
date20[22] = 20210317;
date20[23] = 20220307;

value1=array_GetMaxIndex(date20);  //取得陣列最大值
if n > value1 then raiseRunTimeError("期數設定超出範圍");

vars: i(0),j(0);
i=0;
j=0;

    For i = (value1 - n + 1) to value1 
    //For i = 22 to 23 
    
    begin
    
        value2 = close[getbarOffset(date20[i])] - open[getbarOffset(date20[i])+19];
    
        if value2 >0 then i = 1 else i = 0;
        j = j + 1;
    
        outputField1(j, "20天勝率");

    end;

不過,在貓大跟院長的大力協助下,花了一個下午的時間,終於找出了一個高效率的寫法,資料讀取只要2筆,全部的股票放進去選,大概3分鐘內就可以跑出結果來

這個寫法非常有趣,用到了一個getfieldstartoffset函數,運用getfieldstartoffset(“date”,”D”),抓到個股起始日期的K棒數,然後用迴圈開始比對日期是否跟陣列日期是否相符,並同時取得該日期距今的K棒數,就可用來取得所需要的開盤價或收盤價,真的是很神奇的寫法,推薦大家了解下,真的超高效率

var: TotalBars (0);

TotalBars = GetFieldStartOffset ("Date", "D");

value3 = 0;

var: i(0), j(0);

for i = TotalBars downTo 0
   begin
     for j = 1 to 23
       begin
         if Date [i] = Date20 [j] then
           begin
             value2 = close[i - 19] - open[i];
             if value2 >0 then value3 = value3 + 1;
    if j=23 then
         begin
           outputField3(open[i], "2022開盤價");
                 outputField4(date[i],"2022開盤日");
                 outputField5(close[i - 19], "2022收盤價");
                 outputField6(date[i - 19], "2022收盤日");
         end;
           end;
       end;
  end;

 檔案下載 


檔案包含兩個選股策略,一個為封關收盤進場,一個為年後第一個交易日開盤進場

0Shares


發佈留言

在〈農曆年後個股上漲機率統計〉中有 5 則留言

  1. 「youthful」的個人頭像

    if Date [i] = Date20 [j] then
    上面的程式碼是不是有問題?因為我用編譯的時候出現錯誤?

    1. 「A+管理員」的個人頭像

      程式碼沒有完全貼出來,請下載檔案匯入

      1. 「youthful」的個人頭像

        好 另外,可以再請教一下,他是用日線讀取就好,還是有限定要年線頻率?是不是每一年都要更新腳本 因為我看裡面是用2022年為基礎的方式編寫的!謝謝哦!

        1. 「A+管理員」的個人頭像

          這個是用日線跑的,因為是要看最近幾年的勝率,2023年農曆年還沒過,所以一定是要從2022年開始起算,原本用陣列是想簡化程式,直接抓到每年年後的第一個交易日,但這樣就會需要每年新增陣列,如果想要更自動點,或許可以不用陣列,而是去判斷一二月時,是否有出現今天跟前一天K棒的日期差到7天以上,來判斷是不是遇到過年了,然後去做需要的計算,這樣應該就不用每年都調整code

          1. 「youthful」的個人頭像

            謝謝查理哥的用心解答!

相關文章

主流強勢操作法則-傑西里佛摩的股市操盤術

許多人都知道傳奇操盤手傑西里佛摩,市場上關於傑西里佛摩的書籍數不勝數,然而涉及到里佛摩操作手法的書卻少之又少;今天我們就來介紹傑西里佛摩的具體操作手法。

[VIP] 當沖交易如何做到收K進場即時出場2

上一篇文章大概說明了如何在逐筆中運用condition[1]做到收K進場,即時出場,不過,這樣的運用還有些需要注意的細節,將會在本篇文章說明,不過寫的有點複雜,請耐心閱讀,對你的回測一定會有幫助的。

當沖交易如何做到收K進場即時出場1

想要讓回測績效貼近實單績效,你一定要知道如何做到收K進場即時出場,本文將不同的回測設定與程式碼撰寫方式做了比較,證明在逐筆回測中是可以收K後進場的,而且這樣的作法,自動交易也可以執行,不需要向過往把進場跟出場分開寫,更容易維護策略。

如何運用AI修正XS程式碼錯誤

現在很多人都在用AI來寫程式,使用XQ的你,是不是超級羨慕也去嘗試讓AI撰寫XS程式碼了呢? 相信你試過之後的結果都會很失望吧,你以為他給你的是XS程式碼,但常常都是其他軟體的語法。

[AI] 定期定額投資績效計算頁面

定期定額投資的績效表現在XQ上並不容易回測,本文將會介紹我如何運用量化交易實驗室的AI,在短時間內就寫出一個可以計算定期定投入績效的XQ看盤頁面。

[VIP] 投資節目老師報明牌行不行

如果還沒看到前一篇的文章,可以先閱讀下,這篇主要是說明頁面我做了那些調整,跟我觀察到的心得分享,希望對大家有幫助。

投資節目老師報明牌行不行

前幾天在搜薄碩士論文的時候,看到一篇有趣的研究,研究標題是-投資理財節目異常推介有價證券與投資人行為及報酬率檢視-以上櫃公司為例,相信很多人都會跟我一樣想要知道老師報的明牌到底有沒有用吧,結論是大部分情況是有用,不過研究只有一年,到底現在還能不能用呢?用了個頁面讓大家自己研究研究

[VIP] 運用均價線的當沖策略

為了讓大家可以更深入了解如何用當沖基礎設定與評估標準一文內提到的規則來回測與優化策略,本文使用均價線撰寫了一個當沖策略範例腳本,但請千萬注意,回測的結果雖然不錯,但其設定是為了讓回測結果能接近實戰績效,實際上該設定無法直接用在自動交易上,千萬不要直接拿來交易,真的會出事的~~

運用AI與XQ 因子函數快速產出高勝率策略

很多人可能沒有注意到新版XQ內建的投資因子,這些因子是由中興大學財務金融系開發,已經包含很多具有獲利能力的因子,而這些的因子,搭配量化交易實驗室(Quantlabai)開發的AI程式交易助手後,就可以讓你快速的開發出千變萬化的策略來。

XQ週末特訓班賽大當沖資料分享

今天賽大在XQ週末特訓班分享了自己的當沖實戰經驗,相信不少也在做當沖的朋友,聽了應該都會滿有感覺的,附加檔案有賽大這次分享的內容大綱,如有哪些地方不清楚的,可以趕快報名回放場(3/7 19:00),另外,檔案內還有之前研討會用來紀錄策略優化的範本,歡迎下載使用。

[VIP] XQ自動交易不採坑: 交易進場日跟選股一致了嗎? (月、季、年資料)

上一篇跟大家分享了把日資料選股條件寫成自動交易腳本的正確方式,這篇文章將要繼續來分享月、季、年資料選股條件在自動交易內的正確撰寫方式。

XQ自動交易不採坑: 交易進場日跟選股一致了嗎? (日資料)

在新版XQ支援自動交易可以直接取得財報資料後,策略終於可以不用分開寫在選股與交易兩個模組裡面了,這大幅提升了策略開發的速度與後續維護的方便性。不過,當把選股條件寫入自動交易時,會遇到不同頻率的資料、還有些資料是在盤後才更新,取錯期數,很有可能發生選股與交易回測時,進場都是一致的,但一到實單就出現落差,本篇文章就是要來測試不同寫法對於進場日的影響,並找出正確的寫法,讓選股與交易不管是回測還是實單,都能保持一致的進場時機。

XQ自動交易不採坑: 進出場價的設定

自動交易不採坑系列,主要在分享開發自動交易策略時需要注意的事情,避免開發出回測好看,但與實際交易落差很大的策略來。而本篇文章將會討論setposition的用法,很基礎但超級重要,一定要了解。

XQ當沖回測設定: 用開盤價進場

XQ的自動交易回測,由於並非使用tick數據來回測,加上還有回測頻率、模擬逐筆、觸價即判斷成交、讓價幾檔等設定,讓許多人都搞不清楚,這些選項對回測進出場價格到底有何的影響,也常常會抱怨回測與實際下單有很大落差,本系列文章,將測試各種設定,讓使用者能更清楚各種設定相互間的關係,找出最適合自己的回測方式,本篇將來測試開盤價進場的設定,告訴你怎樣設定才能用開盤價進場。

[VIP] Finlab價格意圖因子策略2-策略優化

前一篇的價格意圖因子文章,我們採用了跟Finlab一樣,用排名+每季固定時間換股的方式來開發策略,而在這篇文章中,我們調整了價格因子的使用方式,沒想到績效更好。

Finlab價格意圖因子策略1-原始策略回測

Finlab的價格意圖因子一文提到,其中提到股價穩定上漲的股票,有可能是公司或主力有意為之,而這樣的股票,未來繼續上漲的可能性也較高,而Finlab的回測也證明了這樣的策略是可以打敗大盤的,而本文嘗試將Finlab用到的條件,扁成XQ策略,看看能否得到相同的結果。

XQ版RS相對強弱PR指標

有參加11/24的XQ周末特訓班的朋友,在聽到尼克萊大大分享用RS相對強弱的PR值找強勢股之後,應該都超有興趣想要嘗試的吧,雖然尼克萊大大說XQ寫不出來,不過,有著程式魂的我們怎麼可能放棄呢? 最終靠著google大神,在XS討論區找到有高手已經寫出來了,就很不要臉的拿來修改成指標了。

[VIP] 週三選擇權樂透這樣買,報酬好像還不錯

週三選擇權結算時,很多人都會小買一下,試試看會不會遇到大行情,賺個幾十倍甚至上百倍,雖然這樣的事情真的是發生過,但賺錢機率真的太小了,要讓人一直持續投入真的不符合人性,而本篇的樂透策略。就是運用回測的方式,找出較符合人性能持續賺錢的交易方式,而換算每次平均報酬,大約能達到40%,其實已經非常驚人了

[積木-VIP] 重視研發公司股價跌破淨值

一間願意投入研發且財報沒有虧損的公司,當股價跌破淨值,到底是個撿便宜的機會還是一個投機的行為呢? 本文透過回測證明,這樣個公司,股價淨值比降低到一個程度後,會是一個好的進場時機,而且短期內就能獲利。

[技巧-VIP] 運用選股策略報價組合研究當沖

台灣的上市櫃股票加起來超過1800檔,如果想要做當沖,事前篩選隔天可能要操作的標的變的非常重要,除了可以減少當天觸發一堆無用的標的外,也可在事前先做研究,隔天驗證自己的研判是否正確,而這篇文章,要來分享一個方式,幫助你在盤中更方便觀察選出的標的,更可以做到盤中調整條件後即時看到新挑選出的標的。

最近發文

加入我們

Categories

最新留言