各位好,想請教一下,以下條件的程式碼該如何寫:
開始日期:20200115
結束日期:20200322
取得開始日期~結束日期中的最高價
請教教我該怎麼寫,拜託各位了!
各位好,想請教一下,以下條件的程式碼該如何寫:
開始日期:20200115
結束日期:20200322
取得開始日期~結束日期中的最高價
請教教我該怎麼寫,拜託各位了!
阿白 您好
您可以先用getbaroffset語法來抓取那時候的k棒位置
然後用迴圈的方式去比較當日收盤價的價格 把最高的記錄下來
以下附檔為範例 提供給您參考 謝謝
XQ小幫手您好,很感謝您撥冗回覆我!
不過我使用您的檔案做回測後,發現似乎還是有問題QQ
舉個例來說:
1515力山,跑完後出來的數值是102.5,而這個收盤價的日期是2019年8月14號,不是在落在2020年1月15號到2020年3月22號,亦不是檔案中預設的2020年11月15號到2020年3月22號
想知道應該怎麼做修正,拜託您了!
阿白 您好
為了盡速解決您的問題
請您提供
選股回測報告(*BTReport)
我會比較好知道問題出在哪 感謝
阿白 您好
主要是因為他讀到資料讀取筆數的問題
不好意思我當時沒有留意到這點
請幫我在判斷式當中加一個條件
for i=value1 downto value3 begin if close[i] > value4 and date>20200115 and date<20200322 then value4=close[i]; end;
因為您限定時間區間,所以我們讓程式判定當要在這段時間時
才去抓取數值,
這樣就不會抓到過往的資料了

小幫手您好,依照您的指示修改了程式碼後,已經順利地跑出來了!十分感謝您!
不過有一點困惑的是,用台股上市櫃全部類股去篩,僅篩出37檔公司。
程式碼中我們並沒有寫到"篩股"的條件,僅是做運算及把指定的價格抓出來而已,為什麼出來的結果會這麼少呢?
阿白 您好
是否能請您幫我確認一下
您所選的標的範圍是否是"全部上市櫃股票"呢?
如果依照您上面提供的回測報告來看 所選範圍應該是" 看盤重點" 而非所有股

小幫手您好:
這點我剛剛確認了,確實是我自己的疏忽,已調整成全部上市櫃類股,感謝小幫手提醒!
但是依然不是全部的公司都被收納進來,僅有1728家顯示出來而已。
我的意思是:既然我寫的程式碼中並沒有"篩股"的汰除機制,只有運算而已,那照理來說所有的標的都該被選入,然而執行的結果並沒有將所有的標的都納入。
我想知道問題出在哪,以防我有需要的標的被篩掉而我不知道,請問問題出在哪呢?
阿白 您好
目前已知在台的上市櫃類股為1722檔
小幫手剛剛試了一下是沒問題的
確實寫 RET=1 是不會篩選沒錯
假設該股票該區間有資料的話都會顯示
抱歉是否能夠請您舉個幾間公司,是應該在股票池裡,
但沒有出現的呢?
這樣小幫手會比較好協助您解決疑惑 感謝

小幫手您好:
剛剛又再次回去確認了,發現剔除掉非上市櫃普通股的標的後,真的全數收納進名單內,萬分感謝您的幫忙!
但小弟又遇到問題了QAQ
我將原本的迴圈從一個增加至兩個,而我碰到幾個問題:
1. 第一個取樣會出現這樣的錯誤:
1342這檔公司他找不到最高價,邏輯上來說是不可能會有這種事的,我也人工確認過,它在2020年的一整年都是有資料的。
2. 所有樣本的第二個最高價的時間都是錯的:
第二個指定區間最高價的時間,幾乎都固定在5月21日,而這十分不尋常,且這個時間也不在我第二個指定時間區間內。
請小幫手幫幫我QQ
程式碼我貼在下面一則回復裡
20 評論