Python for Financial Analysis Series - Python Tools วันที่ 6

Matplotlib กันเถอะ! นี่เป็นช่วงสุดท้ายของซีรีส์ เราจะสร้างภาพข้อมูลที่จำเป็นด้วย Matplotlib เราจะพล็อตเส้น , กระจายและบาร์

เคล็ดลับก่อนเริ่ม

การแสดงภาพเป็นสิ่งที่ยอดเยี่ยม แต่สำหรับการวิเคราะห์มันเป็นเครื่องมือ

ค่ามาจาก STATS และ METRICS ลองนึกภาพว่าเราทำการทดสอบย้อนหลังของกลยุทธ์การซื้อขาย เป็นเรื่องดีถ้าเราสามารถพล็อต PnL (การสูญเสียกำไร) แต่เป็นตัวชี้วัดเช่นผลตอบแทนความถี่ในการซื้อขายและการเบิกสูงสุดที่บอกเล่าเรื่องราวที่แท้จริง เรามีแนวโน้มที่จะประเมินกลยุทธ์โดยการเปรียบเทียบเมตริกมากกว่าการหยิบแผนภูมิด้วยสายตา

เป้าหมายของเซสชันนี้คือการให้ตัวอย่างแผนภูมิที่สำคัญด้วยวิธีง่ายๆซึ่งเป็นส่วนเสริมของการวิเคราะห์ข้อมูลหลัก

การอัปเดตที่สำคัญ

เนื่องจาก Microsoft Azure Notebooks ได้ย้ายไปใช้ GitHub ซึ่งอาจเป็นเรื่องท้าทายสำหรับผู้เริ่มต้นในการเริ่มต้น ฉันใส่เนื้อหาทั้งหมดไว้ใน Google Colab แล้ว มันเป็นสภาพแวดล้อมที่ Jupyter โน๊ตบุ๊คที่คล้ายกันมากและคุณอาจตรวจสอบได้โดยคลิกที่นี่

รหัสและไฟล์ทั้งหมดของฉันถูกแชร์และคุณสามารถคลิกที่นี่เพื่อเปิด

รับข้อมูลจริง

หากคุณยังไม่ได้อ่านเซสชันสุดท้ายและยังไม่มีคีย์ APIเพื่อดึงราคาหุ้นจากIEX Cloudโปรดดูรายการสุดท้ายด้านล่าง

Python for Financial Analysis Series - Python Tools วันที่ 5

เราจะทำงานกับข้อมูลของหุ้นสองตัวคือ MSFT และ IBM ดังนั้นเรามาดาวน์โหลดราคาย้อนหลังหนึ่งปีสำหรับทั้งสองอย่างด้วย IEX Cloud

เช่นเดียวกับเซสชันที่แล้วเราติดตั้ง IEX Cloud SDK ก่อนด้วยคำสั่ง“ ! pip install ” จากนั้นจึงนำเข้าแพ็คเกจทั้งหมดรวมถึง Matplotlib เมื่อนำเข้าแพ็คเกจทั้งหมดแล้วเราจะเริ่มต้นการเชื่อมต่อกับ IEX Cloud ด้วยโทเค็นการทดสอบแซนด์บ็อกซ์ของเรา สุดท้ายเราสามารถดาวน์โหลดราคาย้อนหลังด้วยฟังก์ชัน“ chartDF ”

แผนภูมิเส้นอย่างง่าย

ตอนนี้เราสามารถเริ่มพล็อต ข่าวดีก็คือ Pandas ได้รวมเข้ากับ Matplotlib เพื่อให้เราสามารถวางแผนโดยตรงกับ DataFrame โดยใช้ฟังก์ชัน " plot " นี่คือตัวอย่างง่ายๆของกราฟเส้นสำหรับราคาประจำวันของ Microsoft

มันไม่ง่ายไปกว่านั้น รับคอลัมน์ที่คุณต้องการและใช้ฟังก์ชัน " พล็อต " จากนั้นเราจะได้แผนภูมิ! ที่นี่เราใช้พารามิเตอร์สามตัว

figsize : เป็น Python tuple กำหนดความกว้างและความสูงของแผนภูมิ

ชื่อเรื่อง : ส่วนหัวที่อยู่ตรงกลางด้านบนของแผนภูมิ

ตำนาน : แสดง / ซ่อนตำนาน

จะเป็นอย่างไรถ้าเราต้องการพล็อต IBM ด้วย? เพียงเพิ่มบรรทัดที่คล้ายกันสำหรับ IBM

อย่างที่เราเห็นการพล็อตเริ่มต้นจะอยู่ในแผนภูมิเดียวกัน (ตัวเลขเดียวกันอย่างแม่นยำยิ่งขึ้น) และจะใช้สเกลแกน x และแกน y เดียวกันโดยอัตโนมัติ

อีกวิธีหนึ่งในการลงจุดเส้นในแผนภูมิเดียวกันคือการลงจุด DataFrame ที่มีหลายคอลัมน์ ลองทำตัวอย่างหนึ่ง ลองนึกภาพว่าเราต้องการเปรียบเทียบผลตอบแทนจากการบันทึกสะสมของหุ้นทั้งสอง

ก่อนอื่นเราจะคำนวณผลตอบแทนบันทึกประจำวันและรวมสอง DataFrames เข้าด้วยกัน โปรดตรวจสอบวันที่ 5 สำหรับคำอธิบายรายละเอียด

ด้วยการส่งคืนบันทึกประจำวันเราสามารถคำนวณทางคณิตศาสตร์อย่างง่ายเพื่อคำนวณผลตอบแทนสะสม

การเงินเป็นเรื่องของผลตอบแทนทบต้นดังนั้นเราจึงใช้ฟังก์ชัน“ cumprod” เริ่มต้นจากแถวที่สองและสำหรับแต่ละแถวจะทำการคูณกับแถวก่อนหน้าทั้งหมด ใน Excel เรามักจะต้องมีสองคอลัมน์ที่มีการคูณซ้ำ ตอนนี้เราสามารถพล็อตแผนภูมิด้วย DataFrame ได้โดยตรง

สังเกตความแตกต่างคือในตัวอย่างแรกเราเลือกคอลัมน์ก่อนจากนั้นจึงลงจุดคอลัมน์ ที่นี่เราใช้ฟังก์ชัน " พล็อต " กับ DataFrame ทั้งหมด

กระจาย

Scatter เป็นหนึ่งในแผนภูมิที่คนทั่วไปใช้ใน Finance ลองดูตัวอย่างอื่น เราสามารถใช้เพื่อแสดงภาพความสัมพันธ์ระหว่างหุ้นสองตัวคือ MSFT และ IBM

ตามค่าเริ่มต้นฟังก์ชัน " พล็อต " จะทำแผนภูมิเส้น หากเราต้องการแผนภูมิประเภทอื่นเราสามารถใช้พารามิเตอร์ " kind " สำหรับแผนภูมิกระจายเราจำเป็นต้องระบุชื่อคอลัมน์ของxและyซึ่งควรตรงกับชื่อคอลัมน์กับ DataFrame

บาร์

คนทั่วไปทำแผนภูมิอื่น ๆ และลองทำอีกตัวอย่างง่ายๆ สมมติว่าเราต้องการเปรียบเทียบผลตอบแทนหนึ่งปีระหว่างหุ้นสองตัวด้วยกราฟแท่ง

ขั้นแรกเรานำแถวสุดท้ายจาก DataFrame“ cum_return_df ” จากนั้นเพื่อตั้งชื่อให้ดีขึ้นเราจึงแทนที่ค่าของดัชนีด้วย“ 1Y ” สุดท้ายเราวางแผนแผนภูมิโดยบอกว่าเราต้องการ " ใจดี " เป็น " บาร์ " ให้ดีขึ้นเห็นภาพบาร์เราจะแสดงเส้นตารางเกินไปโดยการตั้งค่าพารามิเตอร์“ ตาราง ” ให้เป็นจริง

สองแกนสองเครื่องชั่ง

หนึ่งในความต้องการที่พบบ่อยในการวิเคราะห์ทางการเงินคือการมีสองแกนที่มีสองเครื่องชั่ง ตัวอย่างเช่นหากเราต้องการพล็อตราคาด้วยปริมาณเราไม่สามารถวางลงในมาตราส่วนเดียวได้เนื่องจากปริมาณมีตัวเลขมากกว่าราคามาก ลองทำตัวอย่างนี้

อันดับแรกเราจะวาดกราฟราคาแบบเส้นปกติเช่นเดียวกับที่เราทำก่อนหน้านี้

ประการที่สองเราเพิ่มพล็อต "พื้นที่" อีกอัน (โดยทั่วไปคือเส้นที่มีพื้นที่ด้านล่างเต็มไปด้วยสี)

สังเกตครั้งนี้เราใช้พารามิเตอร์อีกสองตัว:

Secondary_y : มีพล็อตโดยใช้แกน y ทุติยภูมิ (แฮนด์ด้านขวา)

อัลฟา : เพื่อทำให้พื้นที่โปร่งใสค่าระหว่าง 0 ถึง 1 โดย 0 หมายถึงโปร่งใสเต็มที่

มีหลายสิ่งที่เราสามารถปรับปรุงได้ ขั้นแรกมีการทับซ้อนกันระหว่างเส้นราคาและพื้นที่ปริมาณ เราสามารถดันระดับเสียงลงเล็กน้อยโดยเพิ่มค่าสูงสุดของแกน y ทางด้านขวา ประการที่สองเราสามารถสร้างสีของแกน y ที่ถูกต้องและขีดสีส้มเพื่อให้เข้ากับสีของพล็อตพื้นที่ มาปรับปรุงโค้ดของเรากัน

ความแตกต่างที่สำคัญประการหนึ่งคือตอนนี้เรากำหนดพล็อตเป็นตัวแปร " ขวาน " จากนั้นตัวแปรนี้สามารถใช้เพื่อแก้ไขส่วนประกอบของแผนภูมิ เพื่อทำความเข้าใจส่วนประกอบของแผนภูมิเราสามารถตรวจสอบการสอนอย่างเป็นทางการของ Matplotlib ด้านล่าง

https://matplotlib.org/3.1.1/tutorials/introductory/usage.html

เติมระหว่างบรรทัด

ตัวบ่งชี้ทางเทคนิคจำนวนมากต้องการการเน้นขอบเขตบนและล่าง ตัวอย่างเช่น Bollinger Band เป็นแบบทั่วไป เราสามารถดูวิธีทำได้ด้วยตัวอย่างง่ายๆของแถบค่าเบี่ยงเบนมาตรฐานแบบหมุน

เราเริ่มต้นตัวอย่างด้วยการคำนวณค่าเบี่ยงเบนมาตรฐานการหมุนและแถบบน / ล่าง

อีกครั้งโปรดตรวจสอบวันที่ 5 เพื่อดูรายละเอียดของฟังก์ชัน "กลิ้ง"

จากนั้นเราสามารถพล็อตแผนภูมิเส้นอย่างง่ายเหมือนเดิมและเพิ่มไฮไลต์ของวงดนตรีด้วยฟังก์ชัน“ fill_between ”

จำไว้ว่าเรานำเข้า“ plt” จาก Matplotlib ในตอนเริ่มต้น มีฟังก์ชัน“ fill_between ” ซึ่งเราต้องให้อินพุตต่อไปนี้:

x : ค่าแกน x

y1 : หนึ่งในซีรีส์วงดนตรี

y2 : อีกชุดของวง

สี : สีของวงดนตรี

อัลฟา : ระดับความโปร่งใสของวงดนตรี

ทำไมไม่เป็นแท่งเทียน?

แผนภูมิอันดับหนึ่งที่ผู้คนทำในด้านการเงิน แต่จะไม่เหมาะสมที่จะพล็อตใน Jupyter แท่งเทียนใช้สำหรับเราเพื่อเพิ่มคำอธิบายประกอบแบบโต้ตอบเพื่อวิเคราะห์แนวโน้มของตลาด เราจะต้องมีแพลตฟอร์มการวิเคราะห์ทางเทคนิคที่ดีและ Jupyter ก็ไม่ดีสำหรับการวิเคราะห์นั้น คุณอาจพบแพลตฟอร์มการวิเคราะห์ทางเทคนิคมากมายทางออนไลน์เช่น TradingView

การใช้ Jupyter และ Python ที่สำคัญคือการวิเคราะห์เชิงระบบและเชิงปริมาณเพื่อให้เราสามารถนำไปใช้ได้อย่างแม่นยำ การพล็อตเชิงเทียนที่นี่อาจไม่เป็นประโยชน์ อย่างไรก็ตามหากเราต้องการพล็อตแผนภูมิดังกล่าวก็ยังตรงไปตรงมา ตรวจสอบลิงค์ต่อไปนี้สำหรับ Plotly

ยินดีด้วย! เราได้ทำหลามสำหรับชุดการวิเคราะห์ทางการเงิน - เครื่องมือหลาม ถ้าคุณยังใหม่กับงูหลามหรือต้องการที่จะฟื้นฟูความรู้พื้นฐานหลามโปรดตรวจสอบชุดแรก, งูหลามหลัก

Python for Financial Analysis Series - Python Core วันที่ 1

ขั้นตอนต่อไป

นี่เป็นครั้งแรกที่ฉันเขียนบล็อกบทเรียนเกี่ยวกับ Medium ในช่วงสามเดือนที่ผ่านมาฉันเขียนซีรีส์สองเรื่อง 12 บทความ นับเป็นความสำเร็จครั้งสำคัญสำหรับฉันในฐานะที่ไม่ใช่เจ้าของภาษาอังกฤษ ฉันหวังว่ามันจะช่วยให้ผู้เชี่ยวชาญด้านการเงินพัฒนางานประจำวันด้วยทักษะ Python ใหม่ ๆ

จากที่นี่ฉันวางแผนที่จะเริ่มเขียนเกี่ยวกับกรณีศึกษาที่ใช้ได้จริง สิ่งหนึ่งที่ฉันสังเกตเห็นคือหลาย ๆ คนใน Medium เขียนเกี่ยวกับหัวข้อที่ล้ำยุคเช่น AI และ ML อย่างไรก็ตามผู้คนส่วนใหญ่ในตลาดการเงินยังคงต้องใช้ Python พื้นฐานในการแก้งานประจำวันธรรมดา ๆ ฉันหวังว่าการเขียนกรณีศึกษาที่เป็นประโยชน์มากขึ้นอาจช่วยให้ผู้คนจำนวนมากขึ้นในการปรับปรุงขั้นตอนการทำงานประจำวัน

ลาก่อนและฉันจะคุยกับคุณเร็ว ๆ นี้!

การทดสอบกลยุทธ์การซื้อขายย้อนหลังด้วยตัวบ่งชี้ทางเทคนิค # 1

Suggested posts

การค้นหาข้อมูลเกี่ยวกับชื่อโดเมน

ตัดตอนมาจาก Small, Sharp Software Tools โดย Brian P. Hogan

การค้นหาข้อมูลเกี่ยวกับชื่อโดเมน

เมื่อคุณส่งคำขอไปที่ facebook.com คอมพิวเตอร์ของคุณจะค้นหาชื่อโดเมนเพื่อแปลชื่อโดเมนนั้นเป็นที่อยู่ IP เพื่อให้คอมพิวเตอร์ของคุณสามารถเชื่อมต่อได้

ทบทวนสื่อ: ความจริง 5 ประการของ McChesney และอนาคตของการสื่อสาร

ในโลกปัจจุบันที่เชื่อมต่อกันมากเกินไป ระบบสื่อมีบทบาทสำคัญในการกำหนดความคิดเห็นของสาธารณชน และเป็นผลให้เกิดขึ้นในการตัดสินใจตามระบอบประชาธิปไตย ในการวิเคราะห์อย่างลึกซึ้งเกี่ยวกับเศรษฐศาสตร์การเมืองของการสื่อสาร นักวิชาการ Robert McChesney ท้าทายภูมิปัญญาดั้งเดิมและนำเสนอสิ่งที่เขาเรียกว่า "ความจริงห้าประการ" เกี่ยวกับสื่อ

Related posts

การค้นหาข้อมูลเกี่ยวกับชื่อโดเมน

ตัดตอนมาจาก Small, Sharp Software Tools โดย Brian P. Hogan

การค้นหาข้อมูลเกี่ยวกับชื่อโดเมน

เมื่อคุณส่งคำขอไปที่ facebook.com คอมพิวเตอร์ของคุณจะค้นหาชื่อโดเมนเพื่อแปลชื่อโดเมนนั้นเป็นที่อยู่ IP เพื่อให้คอมพิวเตอร์ของคุณสามารถเชื่อมต่อได้

สิ่งที่คุณสามารถทำได้ในช่วงเวลาแห่งการรอคอย (รองานแรกของคุณในด้านเทคโนโลยี)

สิ่งที่คุณสามารถทำได้ในช่วงเวลาแห่งการรอคอย (รองานแรกของคุณในด้านเทคโนโลยี)

การเปลี่ยนอาชีพใหม่อาจเป็นเรื่องที่ท้าทายอย่างยิ่งหากคุณพยายามทำคนเดียว สิ่งสำคัญคือต้องหาพันธมิตรที่มีความรับผิดชอบซึ่งอยู่ในระดับการเรียนรู้เดียวกันกับคุณ ซึ่งมีเป้าหมาย ความดื้อรั้น และแรงผลักดันที่คล้ายคลึงกัน

สองปีในการออกแบบ - ดี ไม่ดี และน่าเกลียด...

สองปีในการออกแบบ - ดี ไม่ดี และน่าเกลียด...

“หวัดดี Siri เล่น Me Dive โดย Olivia Dean” ในเดือนพฤษภาคม 2021 ฉันเริ่มฝึกงานที่ Future Academy Africa ในเมือง Akure ประเทศไนจีเรีย

การรวบรวม OSINT เพื่อการล่าภัยคุกคาม

การรวบรวม OSINT เพื่อการล่าภัยคุกคาม

สวัสดีชาวไซเบอร์! ยินดีต้อนรับกลับสู่ OSINT สำหรับซีรี่ส์การล่าภัยคุกคาม ในบทความแรก ฉันได้ให้ภาพรวมของ OSINT และความสำคัญในการตามล่าภัยคุกคาม