【學習筆記】加權移動平均線 Weighted Moving Average
加權移動平均線(Weighted Moving Average, WMA)
計算方式1234當日 N WMA = ((Day 1 CP * 1) + (Day 2 CP * 2) + ... + (Day N CP * N)) / (1 + 2 + ... + N)N : 天數Day N CP : 第 N 天的收盤價
舉例陽明(2609) 111/02/18 的 5 WMA111/02/18 的收盤價 116.50,加權相乘 116.50 * 5 = 582.50111/02/17 的收盤價 112.00,加權相乘 112.00 * 4 = 448.00111/02/16 的收盤價 112.50,加權相乘 112.50 * 3 = 337.50111/02/15 的收盤價 111.00,加權相乘 111.00 * 2 = 222.00111/02/14 的收盤價 110.50,加權相乘 110.50 * 1 = 110.50
加權相乘加總起來為 1,700.50,並將其除以 1 + 2 + 3 + 4 + 5 = ...
【學習筆記】指數移動平均線 Exponential Moving Average
指數移動平均線(Exponential Moving Average, EMA)
計算方式1234567Today EMA = (Today CP * K) + Yesterday EMA * (1 - K)Today EMA: 今日 EMAToday CP: 今日收盤價K: 加權指數 (Something / N + 1)N: 時間週期Something: 平滑因子,通常預設為 2
舉例陽明(2609) 111/02/18 的 5 EMA加權指數K = 平滑因子 / (時間週期 + 1) = Something / (N + 1) = 2 / (5 + 1) = 2 / 6 = 0.333333333
今日 EMAToday EMA = (今日收盤價 * 加權指數) + 昨日 EMA * (1 - 加權指數) = (Today CP * K) + Yesterday EMA * (1 - K) = (116.50 * 0.333333333 ...
【學習筆記】簡單移動平均線 Simple Moving Average
簡單移動平均線(Simple Moving Average, SMA)
計算方式1234當日 N SMA = (Day 1 CP + Day 2 CP + ... + Day N CP) / NN : 天數Day N CP : 第 N 天的收盤價
舉例陽明(2609) 111/02/18 的 5 SMA111/02/18 的收盤價 116.50111/02/17 的收盤價 112.00111/02/16 的收盤價 112.50111/02/15 的收盤價 111.00111/02/14 的收盤價 110.50
以上 5 天的收盤價加起來等於 562.00,並將其除以 5 等於 112.50,因此 111/02/18 的 5 日移動平均 為 112.50。
舉例陽明(2609) 111/02/18 的 10 SMA111/02/18 的收盤價 116.50111/02/17 的收盤價 112.00111/02/16 的收盤價 112.50111/02/15 的收盤價 111.00111/02/14 的收盤價 110.50111/02/11 的收盤 ...
利用 Python + OpenCV + ADB 實現 Android 模擬器控制,以彈射世界 World Flipper 為例,操作篇
系列文章
安裝篇
測試篇
操作篇(目前這篇)
透過前面兩篇(安裝篇、測試篇)文章,我們建立了 Python 的環境、使用了 adb 控制模擬器,以及透過 OpenCV 來抓出需要點擊的物件,接下來我們需要直接實際操作模擬器,並且做出一個可模組化的程式。
首先我們可以先讓透過 adb 自動擷取模擬器截圖的動作抽離出來,做成一個 screenshot() 的方法,只要執行這個方法,就會自動執行 adb 指令將模擬器截圖並輸出:
123def screenshot(): subprocess.check_output('adb shell /system/bin/screencap -p /sdcard/screencap.png', shell=True) subprocess.check_output('adb pull /sdcard/screencap.png ./screencap.png', shell=True)
再來我們可以把透過 OpenCV 程式判斷這件事情抽離出來,做成一個 scan_screenshot(pre ...
利用 Python + OpenCV + ADB 實現 Android 模擬器控制,以彈射世界 World Flipper 為例,測試篇
系列文章
安裝篇
測試篇(目前這篇)
操作篇
透過安裝篇的文章,我們已經將 Python、OpenCV、ADB 這些環境處理完畢了,接下來我們需要進行測試,測試 ADB 是否能夠抓取模擬器的螢幕截圖、測試 OpenCV 是否能夠抓取我們所想要的圖片,並且計算其位置、其準確率。
測試 ADB 截圖首先第一步我們需要測試的是「測試 ADB 是否能夠抓取模擬器的螢幕截圖」,這邊我們會需要 import os 引入,並且透過 os.popen 去呼叫 adb 指令來進行模擬器截圖、模擬器輸出圖片的動作。
123456789import osif __name__ == '__main__': # 讓程式持續運作 while True: # 透過 adb 去將模擬器截圖起來儲存於 sdcard 當中 os.system('adb shell /system/bin/screencap -p /sdcard/screencap.png') # 透過 adb 將模擬器儲存的截圖輸出到專案根目錄底下 ...
利用 Python + OpenCV + ADB 實現 Android 模擬器控制,以彈射世界 World Flipper 為例,安裝篇
系列文章
安裝篇(目前這篇)
測試篇
操作篇
最近在研究如何透過 OpenCV 來偵測畫面物件,並透過 ADB 來對 Android 模擬器做控制的動作,不過在此之前需要先做一個聲明,以下研究皆以學習、研究為目的。
ADB(Android Debug Bridge)對於 Android 開發人員而言 ADB(Android Debug Bridge) 這項工具一定不陌生,是 Android 的開發工具之一,透過 USB 或者 TCP 連接 Android 設備,並對其設備做出控制的動作,像試列出可用的裝置、安裝 APK 檔案、在 Android 系統上執行命令或從模擬器或裝置擷取檔案。
ADB 的詳細資訊可以參考 Android 的官方文件:
Android Debug Bridge (adb) - Android Developers
因此我們需要先安裝 Android SDK Platform Tools,
下載 Android SDK Platform Tools
丟到任意地方,例如根目錄(C:)當中
將其設定為環境變數,系統 -> 進階系統設定 -> 環境變 ...
如何在 Laravel 上的 Livewire 當中使用 VueJS
在 Laravel 當中有個讓前後端無痛溝通的技術叫做 Livewire,它可以讓你輕鬆建立起單頁應用程式(Single Page Application, SPA),但它也有個小問題,就是如果你在 Livewire 當中使用 Vue Component 元件的話,那在 Livewire 第一次渲染時,Livewire 可以正常渲染你的 Vue 元件,但在你執行 Livewire 的搜尋、排序或分頁 Pagination 功能後,Vue 元件將會失效。
Livewire 頁面載入後,第一次渲染畫面
Livewire 執行排序後,原本的 Vue 元件將失效
這是因為 Livewire 的運作模式會改變 DOM 的結構,造成 JavaScript 的失效,而 Vue 是使用 Virtual DOM 結構,是以 JavaScript 物件模擬特定 DOM 結構而產生的樹狀結構,因此當 Livewire 運作時,Vue 的 Virtual DOM 並不會因此跟著變更,才會導致 Livewire 的元件是正常顯示的,而 Vue 元件則停止運作。
The reason I ask is beca ...
(偽教學)乾太教我之(好讀版)如何使用 PHP 在網頁上顯示文字
【乾太教我之(好讀版)如何使用 PHP 在網頁上顯示文字】
這個方法是我以前還在讀書時,看到一位前輩的做法,由於太過於印象深刻了,所以拿來當作第一次「乾太教我」的教材。
先備知識:略懂 HTML 與 Java 的 Script
首先我們要知道 PHP 的副檔名為 .php,但是你把副檔名改成 .php 直接丟到瀏覽器上並不會運行,通常你需要有個伺服器負責去執行它,像是 Apache 或 Nginx 之類的,有了這些之後,我們就可以開始寫 PHP 了!
在網頁當中為了插入 PHP 的片段,我們需要在開始的地方寫 <?php 來作為宣告的開始,並且使用 ?> 來作為結束,好的,到這邊你已經學會如何安插 PHP 到你的網頁應用程式上了,非常棒!
為了做到網頁上的互動,所以我們簡單舉個倒數計時器的例子,因為會需要使用 Java 的 Script 來顯示,但為了善用 PHP 所以我們要將 alert 包起來,就像這樣
123<?php echo '<script>alert("倒數計時: " + ' . $i . ...
如何開出一份好的職缺?
前幾天收到了版友私訊請教徵才相關問題,不過我沒有 HR 這方面的經驗,也沒有開過職缺這件事,所以在這方面可能沒辦法提供甚麼好的建言 QQ 但身為一個後端開發者,看過不少相關的職缺,也做過幾份工作,或許我可以分享一下我自己在找工作時,喜歡看到甚麼樣的職缺。
我會建議至少先跟公司內的工程師或主管聊過會比較妥當,至少先了解公司內所採用的技術有哪些,你可以搭配下面的「2021 年成為 Web 開發人員的路線圖」當中的「後端 Back-end 路線圖」,把聽到的關鍵字都圈起來,稍作整理就是很好的職缺條件要求了,如果今天換成是前端徵才、DevOps 徵才,就換相對應的路線圖依樣畫葫蘆。
2021 年成為 Web 開發人員的路線圖👉 https://github.com/goodjack/developer-roadmap-chinese
當你把一些資訊準備充足了以後,接下來就是撰寫一份吸引人的職缺了,大致上會有公司介紹、制度、工作內容、薪資、條件及福利,這邊我歸納了可以嘗試的做法,以及不太建議的做法來提供參考。
0️⃣ - 公司介紹向求職者介紹公司在做甚麼是一件很重要的事,這可以讓我能夠想像未 ...
純靠北工程師 2020 發燒排行榜
又到了一年一度,回顧去年發燒文章的時間了,究竟 2020 年的純靠北工程師有哪些令人噴飯,抑或者是讓人非常有感觸的文章呢?這邊把所有文章的討論度、互動指數、按讚及分享,各項指數加權後,依序排名排列出來,馬上就讓我們來看看吧!
你問說為什麼我有這些資料?拜託我版主欸,平台、服務、程式都我的,怎麼會沒有這些資料 😎
第 1 名 讓我們跟 Internet Explorer 說掰掰文章連結: #純靠北工程師3waInternet Explorer 也就是俗稱的 IE 瀏覽器,在 1995 年的時候發布,隨著網頁瀏覽器這塊大餅逐漸重要,微軟索性直接把 IE 瀏覽器預載在作業系統當中,使得當初整個市場都是使用 IE 瀏覽器,但隨著科技的進步,微軟推出了更好的 Edge 瀏覽器後,在現代似乎是個笑柄的 IE 瀏覽器好像就沒有存在的必要性了,最終微軟宣布停止支援 IE 正式宣告其壽終正寢,但在安息之前也不忘秀一波 IE 獨有的特色?
維基百科: Internet Explorer
第 2 名 下地獄之後,還要再當一次工程師文章連結: #純靠北工程師3wx如果在地獄也有一個世界,那麼近年下地 ...