python
程式交易的常識

Python 教學,看這篇就足夠!

Python 教學,要實踐 Python trade 之前,要先了解什麼是 Python ,它和傳統碼有什麼分別,我們先從 Python 3個優勢和2個缺點開始了解。

Python 教學 優勢一:語法簡單

我們以 C++、Java、Python 三種語言為例﹐來比較哪個語法較簡易﹐讓人比較好理解

先看 C++ 語言。C++ 語言得寫出下面這段程式碼、存檔、拿著這個原始碼檔去編譯﹐才能在螢幕上印出「Hello, it is Forex Forest class!」:

#include <stdio.h>

int main() {

         printf(“Hello, it is Forex Forest class!”);

}
接著來看 Java 語言。跟 C++ 語言很類似﹐得寫出下面這段程式碼﹐歷經「存檔、編譯、執行」三步驟後﹐在螢幕上印出「Hello, it is Forex Forest class!」字樣:

public class Main {

         public static void main(String[] args) {

                  System.out.println(“Hello, it is Forex Forest class!”);

        }

}
最後是 Python。Python 只要寫下面這段原始碼﹐直接按 Enter 鍵﹐不必存檔、不必編譯﹐就能直接執行﹐並印「Hello, it is Forex Forest class!」字樣:

print(“Hello, it is Forex Forest class!”) 很明顯Python 贏了許多﹐如此簡易清楚﹐不用打許多就能完成﹐讓許多人容易入門。

Python 教學 優勢二:功能強大

Python 另一個受歡迎的原因﹐可以用在網頁設計、手機 App 撰寫、遊戲程式設計、硬體自動控制、生物醫學、大數據…等領域。所以Python能說是「萬用語言」啊!

Python 能做到「萬用語言」的原因是它有豐富的「函式庫(Library)」。不但累積了相當完整的標準程式庫 (模組)﹐更有無以計數的非標準模組﹐而且絕大部分都是開放原始碼的。單以內建的模組來講﹐從簡單的數學運算、字串處理、網際網路協定連線、網際網路資料處理、各種壓縮格式﹐以及 POSIX 與主要作業系統的支援功能等等﹐含括的範圍非常地廣泛。
所謂「函式庫」﹐就是把別人事先寫好的一些好用 Python 程式打成一包﹐允許你直接取用﹐而不必學習這些程式背後的寫作原理。 不僅如此﹐Pandas、scikit-learn 和 Tensorflow 等包使 Python 在高級機器學習應用中也有很強的存在感。

Python 教學 優勢三:能夠跨平台

各種主要的作業系統都支援 Python。Python 程式常常不需要修改﹐便能同時在 Linux 與 Windows 平台上執行﹐即使撰寫 GUI 程式 (透過 PyGTK, wxPython 等 binding) 也是一樣。所撰寫的 Python 程式透過標準的 distutils (模組) 進行包裝後﹐用標準的方式即可安裝於各種平台;在 Windows 下更可以自動產生方便的可執行 installer。

Python 的缺點

缺點一:認別類型錯誤

Python是一個動態類型的語言,它只能進行動態類型檢查。舉例:由於在Python中,因為integer類型與string類型是不能相加的,所以經常會出現類別錯誤。

缺點二:執行速度慢

Python 為了能在各種場合都發揮作用,就得取得各種場合的「平衡點」,沒辦法為單一情況做「最佳化」!但這點影響不大,畢竟對使用者而言,機器執行的速度可以忽略,因為感覺不太出速度的差異XD

變數型態

• 布林(Boolean) ‣ True / False

• 整數(Integer) ‣ 24, 100 …

• 浮點數(Float) ‣ 3.1416 …

• 字串(String) ‣ ‘Hello’ , “Hello” …

‣ 確認變數型態:type() e.g. type(3.14) -> float
‣ Python 3 整數無⼤⼩限制
‣ 字串可⽤單引號或雙引號

命名規則

• 可以⽤來命名的字元 ‣ ⼩寫英⽂字⺟(a-z) ‣ ⼤寫英⽂字⺟(A-Z) ‣ 數字(0-9) ‣ 底線(_)

• 規則:開頭不可以是數字

‣ Python 3 統⼀使⽤Unicode (萬國碼)﹐包含中⽂字也都可⽤來命名 (但 不建議) e.g. 變數 = 3 

保留字

不能使⽤這些字來命名

‣ False, class, finally, is , return None, continue, for, lambda,  True, def, from, nonlocal,  while and, del, global, not, with as, elif, if, or, yield assert, else, import, pass break, except, in, raise ,try

基本運算

‣ 運算規則:先乘除後加減 e.g. 2 + 3 * 2 = 8 

資料類型轉換

• 轉換成數字:int()

‣ e.g. int(12.3) = 12(無條件捨去)

• 轉換成浮點數:float()

‣ e.g. float(’12.3’) = 12.3 • 轉換成字串:str() ‣ e.g. str(12.3) = ’12.3 ’

Print

– 輸出⾄螢幕 ‣ e.g. print(“Hello, it is Forex Forest class!”)

– 以空⽩串接字串或數值(會被轉成字串)

‣ e.g. print(“We”,”are”, “separated”, “by”, “space”)

‣ We are separated by space

‣ Print in Python 2 and 3 
e.g. print “Hello, it is Forex Forest class!” (Python 2) 
e.g. print(“Hello, it is Forex Forest class!”) (Python 3)

引號

– 單引號(’)和雙引號(”)效果相同

– 若字串中需使⽤單或雙引號,則須⽤另⼀種引號括住 ‣ e.g. ‘Hello’ 等於 “Hello” ‣ e.g. “It’s is Forex Forest”

字串串接

字串串接(+) ‣ e.g. str = “Hello” + “ForexForestClass” ‣ HelloForexForestClass

字串複製(*) ‣ str = “let” * 3 + “StartTrading” ‣ letletletStartTrading

字串字元取用

字串長度 ‣ len(str)

字元取⽤(i可為負值,代表從最後開始數,-1為最後⼀個位置)

‣ str[i]:第i個字元(從0開始算起)

‣ str[i:j]:從i到j(不包含位置j)

‣ str[:j]:從開頭(0)到j(不包含位置j)

‣ str[i:]:從i到最後

‣ str[i:j:k]:從i到j(不包含位置j),間隔k

‣ Key: 包含頭(i)不包含尾(j)
‣ Python 的切片(Slicing)規則適⽤於 許多地⽅,包含後續課程的串列 (List)、矩陣、資料表(DataFrame) 等資料格式,請務必熟悉。

字串切割與合併

• str.split(分隔符號)

 ‣ e.g. str.split(“,”)

• str(分隔符號).join(iterable) (iterable置入可迭代的物件如list)

 ‣ e.g. “,”.join(word_list)

⼤⼩寫轉換

• str.upper():轉⼤寫

 ‣ e.g. “hello”.upper() ‣ HELLO

• str.lower():轉⼩寫  

‣ e.g. “HELLO”.lower() ‣ hello

其他

• 判斷是否是⼤/⼩寫:str.isupper() / str.islower()

• 判斷是否是數字:str.isnumeric()

• 字串取代:str.replace()

總結:

Python 是近年流行的編碼工具,要由零開始學習到上手是很快的,這是由一般了解電腦 C++ 的人說的分享,對於未曾學習電腦碼的人是不易掌握的。如果想用 Python 來進行 AI 投資,實踐 Python trade ,你可以考慮參加 Forex Forest 的8小時自動交易程式入門班, Forex Forest 已經在用 AI 進行自動交易投資,而且學費限時優惠價只需 $388

延伸閱讀: Python 入門必看 | 超實用 Multicharts 教學,三招教你極速上手

發佈回覆

你的電郵地址並不會被公開。 必要欄位標記為 *

8小時自動程式交易課程於 ⏰ 分鐘前人報名