Example of Single-indicator based strategy with Python(Bollinger bands)

บทความนี้เราจะนำตัวอย่างการสร้างกลยุทธในการเทรดจาก Bollinger Bands ด้วย Python มาฝากกันค่ะ โดยเราจะแสดงให้เห็นว่า Python เป็นภาษาที่ยืดหยุ่นมาก สามารถใช้ในการเทรดได้อย่างสมบูรณ์ ตั้งแต่การอ่านข้อมูล วิเคราะห์ข้อมูล สร้างกลยุทธ์ สร้างสัญญาณซื้อขาย คำนวนค่า Return และ ค่าวัดผลอื่นๆ นอกจากนี้ Python ยังสามารถเชื่อมต่อกับ Interactive Broker เพื่อส่งสัญญาณ ซื้อ – ขาย ได้อัตโนมัติได้แบบสบายๆ อีกด้วย อย่าให้เสียเวลาเรามาเริ่มกันเลยดีกว่า การเทรดโดยเขียนโปรแกรมด้วยตัวเองทั้งหมด แบบไม่ใช้ตัวช่วยเลย ไม่ได้ยากเย็นอะไรนัก มีเพียง 5  ขั้นตอนหลักๆ เท่านั้น ดังนี้ ในบทความนี้เราจะยังไม่แจก source … Continue reading Example of Single-indicator based strategy with Python(Bollinger bands)

Basic Pair Trading (2) : การประยุกต์ใช้ Cointegration

บทความนี้เขียนมาจากการเข้าร่วมสัมมนากับกลุ่ม Quantopain ที่กรุงลอนดอน ประเทศอังกฤษ ในช่วงต้นปีที่ผ่านมา ส่วนหนึ่งของสัมมนาได้กล่าวถึง Basic pair trading strategy ที่มีการประยุกต์ใช้ค่า Cointegration เราจะตัดส่วนนี้มาพูดถึงกันในบทความชุดนี้ค่ะ บทความแรก Basic Pair Trading (1)  สามารถหาอ่านได้จากลิงก์นี้    https://qtmlresearch.com/2017/03/12/cointegration-%E0%B8%81%E0%B8%B1%E0%B8%9A%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%97%E0%B8%B3-pairs-trading-1/ Cointegration idea  แนวคิดหลักๆ ของ Cointegration ที่เราจะนำมาใช้กันใน basic pair trading ก็คือ การใช้ค่า Cointegration เพื่อหาหุ้นที่มี “Economic link”  ต่อกัน โดยที่ หุ้น 2 ตัวจะ … Continue reading Basic Pair Trading (2) : การประยุกต์ใช้ Cointegration

An Example using ARIMA in Prediction using Thailand GDP (2)

บทความนี้เราจะมาว่ากันต่อในเรื่องของการทำนายข้อมูล Time Series ด้วย  ARIMA กันค่ะ โดยบทความนี้เป็นบทความที่ 3  ของบทความชุด “ARIMA เท่าที่เข้าใจ” ซึ่งได้เขียนไปแล้ว 2 ตอนด้วยกัน สามารถอ่านได้ตามลิงก์ด้านล่าง เมื่ออ่านครบทั้ง 3 บทความนี้ ก็น่าจะสามารถนำ ARIMA ไปประยุกต์ใช้ในการทำนายข้อมูลประเภทต่างๆ ได้อย่างไม่ยากแล้วค่ะ บทความชุด “ARIMA เท่าที่เข้าใจ” 1) ARIMA เท่าที่เข้าใจ อธิบายการทำงานของ ARIMA model จากประสบการณ์ใช้งานของ QuantML (https://qtmlresearch.com/2017/06/07/arima-part-1-the-basic/) 2) ตัวอย่างการใช้ ARIMA ทำนายข้อมูล GDP ของประเทศไทย … Continue reading An Example using ARIMA in Prediction using Thailand GDP (2)

Data storage for financial data

Data storage เป็นอีกเรื่องที่มีความสำคัญไม่น้อย แต่มักจะไม่ได้ค่อยรับการพูดถึงกันมากนัก แต่ถ้าต้องการสร้างระบบเทรดอัตโนมัติสุดท้ายแล้วก็จะหนีไม่พ้นการตัดสินใจเรื่องของการจัดเก็บข้อมูล ระบบเทรดอัตโนมัตินอกจากจะมีความสามารถในการ สร้าง, เปิด และ ปิด “orders” ได้โดยอัตโนมัติแล้ว อีกส่วนที่ระบบควรจะมีความสามารถครอบคลุมก็คือการ “อัพเดต” ข้อมูลราคาอัตโนมัตินั่นเองส่วนระยะเวลาการอัพเดตนั้นก็จะขึ้นอยู่กับผู้สร้างระบบเป็นสำคัญ เช่น อัพเดตทุกครั้งที่มีราคาใหม่ออกมาจากผู้ให้บริการข้อมูล  (vendors) หรือ อัพเดตทุกหนึ่งอาทิตย์ เป็นต้น Data storage ที่นิยมใช้ในระบบเทรด มีด้วยกัน 3 รูปแบบ คือ 1) Flat-file : จัดเก็บเป็น ไฟล์ เช่น CSV file 2) Document : จัะเก็บเป็นเอกสาร … Continue reading Data storage for financial data

Top 5 Machine Learning Python libraries แห่งปี 2017

1. SciKit – Learn (Commits: 21793, Contributors: 842) SciKit – Learn นับว่าเป็น Library ที่ Hot มาก สำหรับการทำ Machine Learning จริงๆ แล้ว library  นี้ ตอนออกมาใหม่ตั้งใจออกมาเป็นตัวเสริมต่อจาก library SciPy แต่กลับโด่งดัง ได้รับความนิยมอย่างแพร่หลายในเวลาอันรวดเร็ว  เนื่องจากครอบคลุม Algorithm หลักๆ ของ Machine Learning ไว้แทบจะทั้งหมด ที่ต้องบอกว่าหลักๆ เนื่องจาก ML พัฒนาเร็วมาก การจะเคลมว่าทำได้ทุกอย่างก็คงจะรับประกันไม่ได้ แต่เอาเป็นว่าถ้าต้องการทำ … Continue reading Top 5 Machine Learning Python libraries แห่งปี 2017

Top 5 Basic Python Libraries แห่งปี 2017

ในบทความนี้ เราจะมาทัวร์ไลบารี่พื้นฐานของ Python ที่เป็นที่กำลังเป็นที่นิยมกันมากๆในปีนี้กันค่ะ ใครที่ใช้ Python  หรือ กำลังสนใจจะใช้ ก็อย่าลืมไป install มาใช้กันนะคะ รับรองเลยว่าจะทำให้การทำงานราบรื่น ง่ายดาย ขึ้นอีกมากกกกกก นี่ล่ะค่ะ อีกหนึ่งข้อดีของ Open source  และ ยิ่งเป็น Open source ที่กำลังได้รับความนิยมจากผู้ใช้ทั่วโลกแบบนี้ด้วยแล้ว การพัฒนาจะรวดเร็ว ก้าวไกล ยิ่งขึ้นไปอีก ทำให้ผู้ใช้งานอย่างเราได้รับผลประโยชน์ไปแบบเต็มๆ มาดูกันดีกว่าค่ะ ว่าไลบรารี่พื้นฐานที่น่าเล่นของ  Python มีอะไรกันบ้าง 1. Numpy (Commits: 15908, Contributors: 522) หนึ่งในไลบารี่พื้นฐานที่ผู้ใช้ Python 99% … Continue reading Top 5 Basic Python Libraries แห่งปี 2017

Why Python for Finance/Machine Learning?

Open Source : “ฟรี” ครับ “ฟรี” เหตุผลง่ายๆ เลยครับ และเมื่อมันฟรีจึงถูกนำไปใช้หลายด้านหลายงานมาก บริษัทต่างๆ ในหลายๆ ภาคอุตสหกรรมก็ใช้ Python กัน อีกทั้งพลังของ Python ไม่ได้ด้อยไปกว่า Matlab SAS ที่ใช้งานกันในสายวิเคราะห์ข้อมูลและไฟแนนซ์ ราคาแพงเลยส่วนตัวผมให้คะแนนมันมากกว่าด้วยซ้ำเพราะเหตุผลต่อไปนี้ Community :  เนื่องจากเป็น Open Source จึงมี Community ที่ใหญ่มาก มีผู้ใช้ทั่วโลก จึงทำให้มีสังคมนักพัฒนาแทบทุกภาคส่วน ตั้งแต่นักพัฒนาแอฟฟลิเคชั่น นักเขียนเวปไซต์ นักวิเคราะห์ข้อมูล นักวิยาศาสตร์ข้อมูล หรือแม้กระทั่งในส่วนของไฟแนนซ์ (ด้านนี้อาจจะเป็นรอง R อยู่บ้างแต่ไม่มากหรอกครับ ในอนาคตอาจจะแซง R ก็ได้) ฉะนั้นไม่ว่าเราจะทำโปรเจ็คอะไร ติดปัญหาอะไรก็ลองไปถาม google ดูจะมีคนทำกับเราเสมอครับไม่เหงาแน่นอน ยกตัวอย่างเช่น “stackoverflow” นี่เป็นอีกหนึ่ง community ที่ดีมากในสอบถามปัญหาที่เราพบเจอเวลาพัฒนาครับ Fast developement ขับเคลื่อนด้วย Community ขนาดใหญ่ ไม่ได้มาจากทีมงานของภาษาใดภาษาหนึ่งจึงทำให้พัฒนาไปเร็วมากครับ มีคนขับเคลื่อนเรามหาศาล(รูปจากงาน Pycom)ข้อนี้จะต่างกับภาษาที่เป็นระบบปิดเช่น Matlab SAS ระดับสูง? (High-level) : ผมเคยได้ยินว่า Python คือภาษาสำหรับคนอยากวิเคราะห์ข้อมูลในระดับสูง อย่าเพิ่งตกใจไปกับคำนั้นครับ ผมขออธิบายหน่อยนึงในจุดนี้นะครับ คำว่า “ระดับสูง” ในภาษาคอมพิวเตอร์มันไม่ใช่แบบนั้น ระดับสูงในทางคอมพิวเตอร์ คือ “การที่ใช้งานง่าย เขียนในภาษาที่มนุษย์อ่านรู้เรื่อง เค้าเลยเลยมันว่า  high leve หรือ ระดับสูง (ที่มนุษย์เข้าใจได้ง่าย) นั่นเองครับ “ เช่น print(“Hello World”) ทุกคนมาอ่านก็เข้าใจว่าเป็นคำสั่งให้มันทำการพริ้นหรือแสดงผลออกมา จึงถูกเรียกว่าระดับสูงตอนเขียนเราอ่านเข้าใจแต่เมื่อถึงเวลาจะไปทำงานจริงมันต้องแปลงเป็นภาษาที่เครื่องเข้าใจอีกทีหนึงครับซึ่งต้องกินเวลาหน่อย (แต่เราไม่รู้สึกหรอกครับมันหน่อยมากๆเลยล่ะ เสี้ยววิก็ไม่ถึง ฮา)  ถ้าระดับต่ำคือภาษาที่มนุษย์ไม่อาจอ่านรู้เรื่องได้ง่ายๆ แต่คอมพิวเตอร์จะเข้าใจเป็นอย่างดี ข้อดีของพวกภาษาระดับต่ำก็คือ ทำงานเร็วกว่าแต่เราก็จะพัฒนาอัลกอริทึ่มที่ละเอียดมากๆลำบากครับ ภาษาในระดับนี้ก็พวก Assembly เป็นต้น ฉะนั้นจงอย่าตกใจถ้ามีใครบอกว่ามันเป็นภาษาระดับสูง สมัยนี้มหาลัยดังๆ ต่างประเทศเค้าเอา Python มาเป็นภาษา Introduction … Continue reading Why Python for Finance/Machine Learning?