文章列表

文章列表

Python 範例程式碼!使用 yahoo finance 爬取 0050ETF 股價

自從新冠肺炎發生後,2020 年 3 月美股面臨了熔斷,台股當然也深受影響,正當大家以為空頭市場即將來臨時,股市突然急轉而上,全世界的股票市場迎來了歷史上最大的多頭市場,因此投入股票市場獲取高額的報酬,也成為了許多人嚮往的投資方式,為了取得高額報酬,多數人會採用技術分析將過往的股價走勢進行分析,希望能獲得投資的資訊,因此取得股價資料也是許多投資人所需要的。 使用 yahoo finance 爬取股價並合併表格 透過 Python 取得股價資料是一個相當方便的方法,本文將透過 yahoo finance 的股價抓取方式,告訴大家該如何透過 yahoo finance 套件獲取股價資訊,也會提供程式碼告訴大家如何把元大 0050ETF 中 50 檔股票的股價資訊自動爬取後,形成一個表格,讓分析上可以更方便。 首先先導入套件: 範例: 爬取上市公司 --- 台積電 2021/6/21 到 2021/9/17 的股價 爬取上市公司股價 在這個程式碼當中第一個資訊是股票代號,以台股而言台積電的股票代號為2330,台積電是上市公司,後面要加上”.TW”,接著是需要資料的起始日這本文為2021年6月21日,結束日為2021年9月17日,然而要取得到9月17日的股價資訊則在結束日要多延後一天因此要設為9月18日。 範例: 爬取上櫃公司 --- 鈊象 2021/6/21 ...

【楊立昆Yann LeCun開示】自然語言生成

楊立昆Yann LeCun開示 具有大規模語言模型的自然語言生成通常會產生與現實脫節的錯誤陳述,那是因為大型語言模型並不以現實為基礎。 他們沒有學過現實世界中的常識(更不用說“輕微意識”)。 香港科技大學 Pascale Fung 小組的研究非常好。 許多基於 LLM 的語言生成系統產生明顯清晰的文本的表面上令人印象深刻的能力,我們不應該認為那些內容是真實的。 除了少數例外,這些系統對現實一無所知,也與現實無關。 他們產生幻覺。 他們搞砸了。 它們對很多事情都有用,但它們不應該用於它們不能做的事情(例如,不能用於醫學診斷之類的事情)。 第一步是將它們連接到可以從中檢索事實的知識庫。 但這只是第一步。 最終,人工智慧的研究將弄清楚如何在現實中建立人工智慧系統。 但這需要一段時間。 補充 Yann LeCun 所提到的是由香港科技大學團隊所發表在的文章 << Survey of Hallucination in Natural Language Generation (調查報告: 自然語言生成的幻覺) >> 連結: ...

Linux教學:pwd指令

pwd - 顯示目前的所在位置 pwd 全名為 "print working directory",也就是當前的工作目錄。 什麼是 Working Directory 當前工作目錄是使用者當前工作所在的目錄。當使用者在下指令時,使用者都會在一個目錄中工作。 默認情況下,當登錄 Linux 系統時,當前工作目錄設置為家目錄。要更改工作目錄,就要使用 cd 命令 (change directory)。 例如,要將當前工作目錄更改為 /var,可以輸入 # 移動到 /tmp cd /tmp PWD 指令 # 顯示當前工作目錄 $ pwd $ cd /tmp $ pwd /tmp PWD PWD ...

入門量化交易 – 資料/指標/模型/回測/交易全套分享

加密貨幣是近年來很熱門的課題,我們這次就來看看如何用簡單實作量化交易的整個流程,在這個教學裡面會一次展示如何爬取資料,算出一大堆技術指標(目前大約150個),然後設計一個交易策略,在歷史data以及線上交易上做回測,用這個策略自動交易。 基本設定 首先,安裝和設定環境,大家可以在colab上嘗試: pip install cryptota -U 接下來做一些基本設定,我們這次用ADA作為我們的範例 # Fetch data setting CRYPTO = "ADAUSDT" START = '7 day ago UTC' END = 'now UTC' INTERVAL ...

字母湯,這是字母的湯不是母湯

字母湯是大量縮寫或首字母縮略詞的隱喻,以字母意大利面製成的常見菜餚命名。它使用的日期至少可以追溯到富蘭克林 D 羅斯福的新政字母機構。 字母湯 圖片來源: https://cooking.nytimes.com/recipes/1021052-tomato-alphabet-soup 在美國,聯邦政府被描述為字母湯,因為它催生了眾多機構,包括 NSA、CIA、FBI、USSS、ATF、DEA、EPA、NCIS、IRS 和 INS。 1938 年,一個美國理髮店和諧組織成立,被恰當地命名為 SPEBSQSA 或美國保護和鼓勵理髮店四重奏協會,作為對這些眾多“字母湯”機構的幽默諷刺。 字母湯比喻已被用來描述對學術產生重大影響的理解問題,包括不同理論之間的混淆。影響學術的字母湯的一個例子是統計測試,其中 p 和 α 之間的區別並不總是很清楚,因為字母的“字母湯”指的是統計證據和錯誤。 肺炎類型之間的許多區別也被描述為字母湯,需要一篇學術文章詳細說明許多首字母縮略詞之間的區別。 字母湯也被用來描述基於 LGBT 的較長的首字母縮寫詞,例如 LGBTQQIAAP。 字母湯也被用來描述歷史語言文字,這些文字顯示為長序列的符號,沒有明確的單詞界限。 ...

Terminal (shell script) 基本概念簡介 (1)

先前有介紹過一些 Linux 常用的指令(cd, ls, cat, cal, chmod),大家可以回去看看唷~ 大家好,相信許多人在學習程式設計到一個階段之後,總會去面臨到要使用 Linux 系統的機會。而使用 Linux 系統最重要的技能就是懂得使用終端機(terminal)來進行各種操作。 然而撇去看到一堆黑底白字看起來很可怕的畫面之外,terminal 令人害怕的其中一個點是會看到一堆奇怪的語法而不懂得那是什麼意思,還有可能因為下錯指令而對電腦造成難以逆轉的後果。 為了讓大家稍微比較了解 terminal 究竟怎麼使用,今天就來跟大家簡介一下所謂的 terminal,或者更精確的說是 Linux 系統中的命令列介面(command-line interface,CLI)—— shell script 的基本概念。 Why terminal? 實際上,所謂的終端機 terminal,正確來說是一種文字使用者介面,望文生義可知就是「使用文字和使用者互動的介面」。想像一下當我們今天要和一個人溝通時,最主要的方式就是使用語言向對方傳遞訊息,而今天如果將這種語言的對象變成機器,來對電腦進行溝通,就是文字使用者介面,簡言之就是對著電腦說話的意思。而由於對機器說的「話」通常都是一個又一個的「命令」因此通常稱之為「命令列介面」,常常也會被叫做 command-line 或 CLI。與之相對的則是圖形使用者介面(graphical user interface,GUI),也就是平常各位用滑鼠操作的、可以點擊並看到畫面的使用者介面。 而在電腦的作業系統中,為了讓電腦「聽得懂我們要它做什麼」,就需要一種語言來向電腦下指令。在 Linux (與 ...
letter tiles on a wooden surface

怎麼最有效率的解 Wordle?(1)

近期 Wordle 不知為何突然流行了起來,網路上也出現了各種解法。在此藉由 Wordle 的機緣,和大家分享一些結合語言學和程式設計的小知識,希望可以幫助各位對我們使用的語言了解的同時,也能獲得玩 Wordle 的新思維。 Tip 1. 字母頻率 首先是一個幾乎所有語言都有的現象——人們使用字母的機率是不均衡的,甚至不論是字母、單字還是片語都有這個現象。舉個例子, 世界人權宣言英文版前兩段(取自 https://ilms.csu.edu.tw/board.php?courseID=11145&f=doc&cid=327843)Whereas recognition of the inherent dignity and of the equal and inalienable rights of all members of the human family is ...

碰撞 X 雙振子(一):自己用python模擬!

在高中物理碰撞這個單元裡面,常會碰到一個經典的題目,題目如下圖 無任何摩擦力存在,m、M為兩鋼體質量,彈簧(彈性常數k)接在M上,m以速度V0碰撞靜止的M,求碰撞歷時? 高中老師看到這個題目通常都會直接叫你把答案背起來,那想必一定會有不少同學很好奇這題到底要怎麼解,Grandy這邊提供兩種解法,一種是用python跑模擬,程式百分之百是自己寫的,沒有用到任何library,這種方法高中生、甚至國中生都可以理解;第二種方法是使用微分方程式解出運動方程,但這需要較高的數學知識,可能需要到大一、大二的程度才能理解,但還是很推薦高中生們欣賞看看。 我們先來分析兩物體的受力情況: 如圖所示,我們令 $m$ 剛碰到彈簧時(碰撞剛發生時),$t=0$,並且令向右為正。經過一段時間之後,兩剛體皆向右移動一段距離,我們令 $m$ 的位移為 $x_1$,$M$ 的位移為 $x_2$ $m$ 的速度 $v_1$,為$x_1$的一次微分,如果$x_1$的一次微分微出來是負的,就代表此時速度向左;$x_1$ 的一次微分微出來是正的,就代表此時速度向右。同樣的,若二次微分微出來是負的,代表加速度向左;二次微分微出來是正的,就代表此時速度向右。$M$ 也是如此道理,就不再贅述。 接著,彈簧的恢復力為 $F=kleft|Delta x right|$,這邊方向就需要大家自己判斷,因為 $a_1$ 應該是負的(此時 $m$ 受彈簧力向左) 所以等號右邊就應該要一樣是負的值,$left|x_1-x_2 right|$ 就是彈簧縮短的量,那我們要取負的,所以就得到$ma_1=x_2-x_1$ (因為碰撞剛發生的時候可以想見 $x_1>x_2$ ),相同道理,$M$ 的受力分析就交由大家自己練習。 高中的話到這裡就沒辦法繼續解下去了,所以我們先用程式來模擬看看,以下為完整程式碼: #作者: Grandy 日期:2021/8/3 #雙振子碰撞時間模擬 dt=0.0000001 m=5 M=10 Vm,VM=50,0 ...
tensor

【PyTorch 內部機制】Tensor, Storage, Strides 張量如何存放在記憶體上?

這篇文章主要翻譯、節錄自: http://blog.ezyang.com/2019/05/pytorch-internals/ 作者是 Edward Z. Yang,在Facebook工作,負責PyTorch開發。想學PyTorch跟著他的開發者學準沒錯!因為原作者的文章寫得實在是太好了,我將重點、精華節錄出來,重新理解過一次加上自己的解釋,希望能讓大家有PyTorch內部有更深的了解。 老話一句 : 現在每個人都在做機器學習,但是大部分的人都把他當作黑盒子,而不了解其底層在做什麼。懂了這些,就是你贏別人的地方,所以讓我們一起耐著性子學習這些精髓、一起變強! 這系列的文章將主要包涵兩個部份: 第一部份 : ConceptsTensor (張量) 的基本觀念 : 張量(Tensor)、儲存(Storage)、步長(Strides)PyTorch 三要素 : 布局(layout)、設備(device)、資料類型(dtype)自動微分機制(autograd mechanics)第二部份 : MechanicsPyTorch 內部程式碼PyTorch 中的 Operator Call StackPyTorch Kernels Tensor 張量 Tensor 是 PyTorch 最重要的資料結構,Tensor 是一個 ...
cuda

【平行運算】CUDA教學(一) 概念介紹

現在大部份做深度學習的工程師視 CUDA、GPU加速為黑盒子,但若你能了解 CUDA,這就是你比 90% 的人還要厲害的關鍵。 CUDA (Compute Unified Device Architecture,統一計算架構) 是 NVIDIA 研發的平行運算平台及編程模型,可利用繪圖處理單元 (GPU) 的能力大幅提升運算效能。目前最流行的深度學習,在訓練類神經網路時因為牽涉到大量的運算,也是使用 CUDA 等平行運算技術來進行加速。目前主流的 Tensorflow、Pytorch 等深度學習框架也大量了使用 CUDA。也正是因為 GPU 的運算效能,才讓深度學習可以有今天的表現。因此了解 GPU、CUDA、平行運算的技術是非常重要的! 1. CUDA 平行加速工作流程 在 host(CPU) 配置記憶體並初始化資料在 device(GPU) 配置記憶體將資料從 host 傳送到 ...
ibm-qiskit

【量子計算】IBM Qiskit教學 part2 : 設計第一個量子電路

量子計算 IBM Qiskit 使用 Qiskit 設計量子電路時,總共包含了 4 個步驟: Build : 設計,設計能處理待解問題的量子電路Compile : 編譯,編譯量子電路,讓你的裝置(量子系統或古典模擬)看得懂這個量子電路Run : 執行,在量子系統上執行編譯過的量子電路Analyze : 分析,統計、視覺化實驗結果 完整程式碼 GitHub 完整程式碼Colab 完整程式碼 設計第一個量子電路 以下的例子包含上面四個部份,將帶你設計一個量子電路並呈現實驗的結果: QuantumCircuit() : 用來設計量子電路transpile : 用來編譯量子電路AerSimulator : Aer 是 qiskit 裡面用來模擬 noisy 量子電路的 backend 1. Build ...
riscv

【RISC-V介紹】三分鐘帶你了解RISC-V

這篇文章會用比較淺顯易懂的文字帶你認識 RISC-V,適合有看過這些專有名詞但不是很了解它們是如何運作的人閱讀,希望可以幫助你整合這些概念。 什麼是RISC? CPU 的指令集可簡單分為 2 種:RISC(reduced instruction set computer, 精簡指令集電腦)和 CISC(Complex Instruction Set Computer, 複雜指令集電腦),顧名思義就是一個簡單一個複雜(?),至於他們在幹嘛我們一步一步看下去,大家先把這個名詞還有特性記起來就好。 什麼是指令集(instruction set)? * 中央處理器 CPU (Central Processing Unit) 電腦的運算核心,靠著 解讀與執行指令(instruction) 來維持電腦的運作。 * 組合語言與指令 我們在寫程式的時候,以 C++ 為例,要單純計算兩個數字相加,你可能會這樣寫: int a,b,c; ...