Python Programming SIPA ( Improve 2018 )

WITAYA  MASTER TRADER BLOCK

Why Python?
PYTHON SIPA
PRASERTCBS
2110101 การกระทำการ โปรเเกรม Chula
เริ่มเขียน Bot Trade ด้วย Python + Oanda API
http://interactivepython.org/courselib/static/pythonds
Link : https://qtmlresearch.com/
Algoadict Youtube
Facebook Algo adict
ADVANCE Machine LN University
LattePanda Alpha 864 Windows Linux Mini PC Computer w/ Core m3, 8G/64GB (No Key)

GOOd Learning Link
Machine Learning In Python
https://www.codeingschool.com/p/opencv-image-procesionh.html
วิชาการคำนวน
Machine Learning
Can bus
Machine LLNNN
Python ...อาจารย์ ม.เกษตร ศรีราชา
การวิเคราะห์วงจรไฟฟ้า
AI Booth Camp ( สมาคม Programer Thai )


ทำไมจึงเลือกใช้ Python ในการพัฒนาแพลตฟอร์ม? ถ้ากล่าวถึงการวิจัยวิเคราะห์ข้อมูลทางด้านนี้ก็คงมีตัวเลือกที่น่าสนใจอยู่หลักๆ 2 ภาษา คือ Python และ R แต่ที่เราเลือก Python เพราะ ศักยภาพของตัวภาษา โครงสร้างภาษาที่เข้าใจได้ง่าย และความสามารถในการสร้างโปรดักส์ ที่สำคัญคือพลังของ communities ที่แข็งแรง ทั้งกลุ่มนักวิจัย และ กลุ่มของนักลงทุนทั่วโลก ที่ทำให้ Python มีการพัฒนา package ทางการลงทุนที่มีประสิทธิภาพออกมาอย่างไม่ขาดสาย ทำให้เราสามารถมั่นใจได้ว่า การสร้างระบบเทรดด้วย Python ตั้งแต่การอ่านข้อมูล การวิเคราะห์ข้อมูล ทั้งด้วย Technical Indicator แบบทั่วไปและ Machine Learning algorithm ตลอดจนการส่งคำสั่งไปยังโบรกเกอร์ สามารถทำได้อย่างสะดวก รวมไปถึงแพคเกจ Full back-test จาก Python ที่ครบเครื่อง ดังตัวอย่างที่นำมาให้ดูกัน ซึ่งเป็นเพียงส่วนหนึ่งเท่านั้น
ถ้า Python จะมีข้อจำกัดอยู่บ้าง ก็คงจะเป็นในเรื่องของการเขียนโปรแกรมที่อาจจะต้องอาศัยพื้นฐานการเขียนโปรแกรมอยู่บ้าง แต่ก็ไม่ได้ยากจนเกินไปที่จะเรียนรู้ได้(เรียนรู้ได้ง่ายกว่า R เพราะโครงสร้างภาษาที่ดีกว่า) ถ้าแลกกับการที่เราจะสามารถสร้างระบบการลงทุนทำงานได้รวดเร็ว มีประสิทธภาพสูง ในสไตล์ของเราเองได้อย่างอิสระ อีกทั้งยังสามารถพูดคุยแลกเปลี่ยนแนวคิดในการลงทุนกับนักวิจัยจากทั่วโลกได้อย่างกว้างขวาง มันก็คุ้ม! ดังนั้น ถ้าใครกำลังสนใจมองหาภาษาที่จะใช้อยู่ Python เป็นตัวเลือกที่น่าสนใจเลยทีเดียว

  • Community :  เนื่องจากเป็น Open Source จึงมี Community ที่ใหญ่มาก มีผู้ใช้ทั่วโลก จึงทำให้มีสังคมนักพัฒนาแทบทุกภาคส่วน ตั้งแต่นักพัฒนาแอฟฟลิเคชั่น นักเขียนเวปไซต์ นักวิเคราะห์ข้อมูล นักวิทยาศาสตร์ข้อมูล หรือแม้กระทั่งในส่วนของไฟแนนซ์ (ด้านนี้อาจจะเป็นรอง R อยู่บ้างแต่ไม่มากหรอกครับ ในอนาคตอาจจะแซง R ก็ได้) ฉะนั้นไม่ว่าเราจะทำโปรเจ็คอะไร ติดปัญหาอะไรก็ลองไปถาม Google ดูจะมีคนทำกับเราเสมอครับไม่เหงาแน่นอน ยกตัวอย่างเช่น “stackoverflow” นี่เป็นอีกหนึ่ง community ที่ดีมากในสอบถามปัญหาที่เราพบเจอเวลาพัฒนาครับ
  • Fast developement ขับเคลื่อนด้วย Community ขนาดใหญ่ ไม่ได้มาจากทีมงานของภาษาใดภาษาหนึ่งจึงทำให้พัฒนาไปเร็วมากครับ มีคนขับเคลื่อนเรามหาศาล(รูปจากงาน Pycom) ข้อนี้จะต่างกับภาษาที่เป็นระบบปิดเช่น Mat lab ,SAS or Labview
tumblr_static_pycon_header.jpg

  • ระดับสูง? (High-level) : ผมเคยได้ยินว่า Python คือภาษาสำหรับคนอยากวิเคราะห์ข้อมูลในระดับสูง อย่าเพิ่งตกใจไปกับคำนั้นครับ ผมขออธิบายหน่อยนึงในจุดนี้นะครับ คำว่า “ระดับสูง” ในภาษาคอมพิวเตอร์มันไม่ใช่แบบนั้น ระดับสูงในทางคอมพิวเตอร์ คือ “การที่ใช้งานง่าย เขียนในภาษาที่มนุษย์อ่านรู้เรื่อง เค้าเลยเรียกมันว่า   High level หรือ ระดับสูง (ที่มนุษย์เข้าใจได้ง่าย) นั่นเองครับ “ เช่น print (“Hello World”) ทุกคนมาอ่านก็เข้าใจว่าเป็นคำสั่งให้มันทำการพริ้นหรือแสดงผลออกมา จึงถูกเรียกว่าระดับสูงตอนเขียนเราอ่านเข้าใจแต่เมื่อถึงเวลาจะไปทำงานจริงมันต้องแปลงเป็นภาษาที่เครื่องเข้าใจอีกทีหนึ่งครับซึ่งต้องกินเวลาหน่อย (แต่เราไม่รู้สึกหรอกครับมันน้อยมากๆเลยล่ะ เสี้ยววิก็ไม่ถึง 555)
Python3-powered_hello-world.svg
  •  ถ้าระดับต่ำคือภาษาที่มนุษย์ไม่อาจอ่านรู้เรื่องได้ง่ายๆ แต่คอมพิวเตอร์จะเข้าใจเป็นอย่างดี ข้อดีของพวกภาษาระดับต่ำก็คือ ทำงานเร็วกว่าแต่เราก็จะพัฒนาอัลกอริทึ่มที่ละเอียดมากๆลำบากครับ ภาษาในระดับนี้ก็พวก Assembly เป็นต้น ฉะนั้นจงอย่าตกใจถ้ามีใครบอกว่ามันเป็นภาษาระดับสูง สมัยนี้มหาลัยดังๆ ต่างประเทศเค้าเอา Python มาเป็นภาษา Introduction to programming  มันจะเป็นระดับสูงจริงๆก็เพราะมันง่ายนี่

PROG-LAN
  • Plenty of Libraries : Python อาจจะมี Library ไม่มากเท่า R แต่ก็ถือว่ามีเยอะมากทีเดียว แต่ละ Library นั้นค่อนข้างมีประโยชน์ระดับสากลเลยครับ ตัวอย่างเช่น ในทาง Finance นั้นมี Pandas ที่มีไว้จัดการ data อย่าง Data Frame ซึ่งข้อมูลทาง Finance เราก็เป็นแบบนี้ซะมาก, Numpy สำหรับการทำ operation ทางคณิตศาสตร์, Scikit-Learn ที่รวมรวมอัลกอริทึมพื้นฐาน Machine Learning ไว้ครบครัน, Matplotlib&Seaborn ที่ช่วยเราในการ Visualize ข้อมูลออกมาได้อย่างดีและสวยงาม ทำให้เป็น Environment ที่เหมาะสำหรับการทำวิจัยพัฒนาอัลกอริทึ่มสำหรับ Trading with Machine Learning ที่ว่ามานี้ยังไม่ได้นับรวม Package ที่สร้างมาเพื่อ Algorithmic Trading โดยเฉพาะอีกหลายตัว แต่จุดหนึ่งเมื่อ blog ของเราก้าวไปถึงจุดนั้นผมจะเขียนเปรียบเทียบอันที่น่าสนใจ เช่น Zipline,PyAlgoTrade,pybacktest พวกนี้นะครับ
Finance ==> Pandas
Mathematics ==> Numpy
Scikit-Learn ==>Algorithm
Matplotlib&Seaborn ==> DataVisualization
Zipline == Trading system
PyAlgoTrade == Trading System
pybracktest == Trading System


cb3d5ca4-7282-648c-4436-acdee67e0a0c.png
  • Machine Learning : Python เป็นภาษายอดฮิตในการทำ Machine Learning ในยุคใหม่นี้มาก เนื่องด้วยมันฟรีอย่างที่บอกมาจึงมี Community ใหญ่ ตรงนี้แหละครับที่ทำให้ มหาลัยดังๆ หรือองค์กรใหญ่ๆระดับโลก เวลาเค้าสร้าง Library สำหรับด้าน Machine Learning เค้าจะมองมาที่ Python ก่อนเป็นประจำ เช่น Tensor Flow ของกูเกิล ที่กำลังฮอตในยุคหลังๆ มานี้ กับ Theano ของมหาวิทยาลัยระดับโลกทางด้าน Machine/Deep Learning ของแคนาดา เป็นต้น

frameworks

  • Cross platform : ใช้ได้แทบจะทุกระบบปฎิบัติการไม่ว่าจะเป็น Window ,OSX ,Linux ฉะนั้นไม่ต้องห่วงว่าคุณจะใช้เครื่องอะไร มันก็พัฒนาได้ทันได้ทั้งนั้นแหละครับ , Also can apply to Lab-view or Raspberry pi 
  • ได้เห็นข้อดีของ Python กับไปแล้วนะครับ หวังว่าคงทำให้ทุกท่านที่กำลังตัดสินใจเลือกภาษาที่จะพัฒนาระบบเทรดอัตโนมัติกันอยู่ได้คำตอบที่ชัดเจนขึ้นนะครับ และ ถ้าเหตุผลทั้งหมดทั้งมวลถูกใจท่าน ก็ขอยินดีต้อนรับเข้าสู่วงการ Python ไว้ตรงนี้เลยนะครับ







































Python A. Prasert ( Dem_04)
การติดตั้ง Anaconda

มี conda เป็นตัวจัดการ package เช่นเดียวกับ pip
conda update conda  (  update version ล่าสุด)
conda list
conda update -all ( update ทีเดียว / pip  เลือก update )


create conda  environment
conda  create  -n py27 python=2.7  ( จะสร้าง env ออกมา )
conda env list  ( show all  env list )

ใช้คำสั้ง conda env list  เเสดง env ทั้งหมดออกมา  ( py27 and Root )   ....activate py2.7  จะ activate  env ตัวที่เราต้องการ หรือ deactivate จะลบ env ที่เราสร้างออกมา  ใช้คำสั้ง conda  list เเสดง package ออกมา  

... ถ้าต้องการเพิ่มก็ conda install python-dateutil  หรือต้องการ remove package  ==> conda remove python-dateutil  เเต่ถ้าต้องการกลับมาใช้ python 3.9 โดยการลบ 2.7 ออก ==> conda remove -n  -all





import matplotlib.pyplot as plt
plt.plot([3 ,7,5])
plt.show()


พิมส์คำสั่ง   set จะบอก path program ทั้งหมดของ python



https://launchschool.com/books/javascript/read/introduction
เรียน free EDX (FB) Witaya chaison

เตรียมความรู้ I2C คืออะไร
serial-communication-between-matlab-and-arduino
Unlock the future code ( Digital Thailand )



การทำ short if in python  1

https://classroom.udacity.com/me ( witaya.chaison@gmail.com login with google )