Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Redis

สร้างแอปพลิเคชันทางการเงินของคุณบน RedisTimeSeries

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

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

ฉันไม่ได้อยู่ที่นี่เพื่อโต้แย้งหรือต่อต้านรูปแบบการลงทุนเหล่านี้ แต่นักลงทุนทั้งพื้นฐานและทางเทคนิคศึกษา วิเคราะห์ และตัดสินใจโดยอิงจากแหล่งข้อมูลนับร้อยหรือนับพัน

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

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

เมื่อเร็ว ๆ นี้ ฉันเขียนเกี่ยวกับสาเหตุที่ Redis Enterprise เป็นเครื่องมือที่จำเป็นสำหรับอุตสาหกรรมการเงิน ในบล็อกโพสต์นี้ ฉันจะแสดงให้เห็นว่า RedisTimeSeries สามารถใช้ในการจัดเก็บ รวม และสอบถามราคาหุ้นและตัวชี้วัดทางเทคนิคได้อย่างไร หลักการที่ฉันจะสรุปไว้ยังสามารถใช้ในการจัดเก็บและค้นหาข้อมูลทางการเงินจากบริษัทหรือข้อมูลอนุกรมเวลาอื่นๆ ที่ใช้โดยนักลงทุนพื้นฐาน

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

ติดตามราคาหุ้นด้วย RedisTimeSeries

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

ถูกหรือผิด หลายคนถือว่า Dow Jones Industrial Average (DJIA) เป็นตัวกลางของเศรษฐกิจสหรัฐฯ ฉันต้องการติดตามตัวบ่งชี้ทางเทคนิคของหุ้นทั้งหมด 30 ตัวใน DJIA พร้อมกับราคาและปริมาณการซื้อขายของหุ้น ฉันเริ่มต้นด้วยการติดตามราคาหุ้นของ Goldman Sachs ซึ่งเป็นองค์ประกอบ Dow และหนึ่งในตัวชี้วัดทางเทคนิคสำหรับหุ้นนั้น หนึ่งในตัวชี้วัดทางเทคนิคที่ฉันชอบคือ Relative Strength Index (RSI) RSI เป็นตัวบ่งชี้โมเมนตัมที่ใช้ในการวัดหุ้นที่อาจอยู่ในเขตซื้อเกินหรือขายเกิน เมื่อ RSI เคลื่อนไหวใกล้หรือต่ำกว่า 30 หุ้นอาจถูกมองว่าขายมากเกินไปและอาจเสนอโอกาสในการซื้อ ในทำนองเดียวกัน เมื่อ RSI เคลื่อนตัวเหนือ 70 อาจเข้าสู่เขตซื้อมากเกินไปและส่งสัญญาณถึงเวลาขายที่ดี

ดัชนีความแข็งแกร่งสัมพัทธ์สำหรับ Goldman Sachs Group

สร้างแอปพลิเคชันทางการเงินของคุณบน RedisTimeSeries

ในระหว่างชั่วโมงซื้อขาย RSI เช่นเดียวกับตัวบ่งชี้ทางเทคนิคอื่น ๆ จะแตกต่างกันไปตามการซื้อขายขึ้นอยู่กับอุปสงค์และอุปทานของหุ้นของ Goldman Sachs เราสามารถใช้โมดูล RedisTimeSeries เพื่อช่วยตอบคำถามสำคัญหลายประการ: 

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

เราสามารถใช้การสืบค้น RedisTimeSeries เพื่อระบุค่า RSI ต่ำสุดและสูงสุดโดยทางโปรแกรม และราคาหุ้นในช่วงเวลาที่กำหนด ตัวอย่างเช่น ถ้าฉันต้องการค้นหาตัวเลข RSI ต่ำสุดและสูงสุดในแต่ละช่วงเวลา 15 นาทีของวันซื้อขายจะเป็นอย่างไร เมื่อ RSI อยู่ที่ 30 หรือใกล้ 30 ฉันอาจต้องการสร้างการแจ้งเตือน ทำการค้า หรือเริ่มต้นเวิร์กโฟลว์การซื้อขายที่ซับซ้อนอื่นเพื่อวิเคราะห์ตัวบ่งชี้ทางเทคนิคอื่น ๆ ก่อนซื้อหรือขาย ทุกสิ่งที่คุณต้องการทำสามารถสร้างแบบจำลองได้อย่างง่ายดายในฐานข้อมูล RedisTimeSeries

แบบจำลองข้อมูลราคาหุ้นและตัวชี้วัดทางเทคนิค 

วิธีที่ง่ายที่สุดในการสัมผัสประสบการณ์จริงกับ RedisTimeSeries คือการเรียกใช้อิมเมจ Docker สำหรับ RedisTimeSeries

ดำเนินการคำสั่งต่อไปนี้เพื่อดึงและเรียกใช้อิมเมจ Docker:

docker run -p 6379:6379 -it --rm redis/redistimeseries

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

เมื่อคุณเปิดใช้งานคอนเทนเนอร์ RedisTimeSeries แล้ว คุณสามารถเชื่อมต่อกับเซิร์ฟเวอร์ (ตรวจสอบให้แน่ใจว่าคุณมีที่อยู่ IP หรือชื่อโฮสต์ที่ถูกต้อง) โดยใช้ Python ดังต่อไปนี้:

จาก redistimeseries.client นำเข้า Client rts =Client(host='127.0.0.1', port=6379)

ด้วยหลักการออกแบบการถือเมตริกเดียวในแต่ละอนุกรมเวลา เราสามารถจัดเก็บราคาหุ้นระหว่างวันและ RSI สำหรับหุ้น DJIA แต่ละตัวในอนุกรมเวลาของตัวเอง ด้านล่างนี้ ฉันได้สร้างอนุกรมเวลาสำหรับ Goldman Sachs Group, Inc. (NYSE:GS) ฉันได้ตั้งชื่อ RSI ระหว่างวันสำหรับ Goldman Sachs ‘DAILYRSI:GS’ และฉันได้ใช้ป้ายกำกับต่างๆ กับแต่ละอนุกรมเวลา การติดป้ายกำกับอนุกรมเวลาช่วยให้คุณค้นหาคีย์ทั้งหมดได้โดยใช้ป้ายกำกับ

 rts.create ('dailyrsi:gs', labels ={'symbol':'gs', 'desc':'relation_strength_index', 'ดัชนี':'djia', 'timeframe':'1_day', 'ตัวบ่งชี้' ':'RSI'                    , 'COMPANYNAME':'GOLDMAN_SACHS_GROUP'})

ที่นี่ ฉันได้สร้างอนุกรมเวลาสำหรับราคาหุ้นระหว่างวันของ Goldman Sachs ซึ่งเรียกว่า ‘INTRADAYPRICES:GS’ :

 rts.create ('intradayprices:gs', labels ={'symbol':'gs', 'desc':'share_price', 'ดัชนี':'djia', 'pricetype':'intraday', 'ชื่อ บริษัท ':'GOLDMAN_SACHS_GROUP'})

ต่อไป ฉันสร้างการรวมต่างๆ ของข้อมูล RSI ภายในกรอบเวลา 15 นาทีที่กำหนด (เราสามารถสร้างการรวมในกรอบเวลาที่ยาวขึ้นหรือสั้นลงเพื่อให้เหมาะกับความต้องการในการซื้อขายของเรา) การรวมกลุ่มเหล่านี้จะช่วยให้เราดูค่าแรกสุด ค่าต่ำสุด สูงสุด และช่วงสำหรับ RSI ในการสร้างการรวม ก่อนอื่นเราต้องสร้างอนุกรมเวลาเพื่อจัดเก็บการรวม จากนั้นจึงสร้างกฎเพื่อเติมอนุกรมเวลาด้วยค่ารวม ในกรณีนี้ เราได้สร้างอนุกรมเวลาชื่อ ‘DAILYRSI15MINRNG:GS’ เพื่อจัดเก็บช่วงสำหรับ RSI ภายในช่วงเวลา 15 นาที ‘createrule’ ใช้ฟังก์ชันช่วงกับข้อมูลดิบ (‘DAILYRSI:GS’ ) ในแต่ละกรอบเวลา 15 นาทีและรวมเป็น ‘DAILYRSI15MINRNG:GS’ .

 rts.create ('dailyrsi15minrng:gs', labels ={'symbol':'gs', 'desc':'relation_strength_index', 'ดัชนี':'djia', 'timeframe':'15_minutes', ' ':'RANGE'                    , 'INDICATOR':'RSI'                     , 'COMPANYNAME':'GOLDMAN_SACHS_GROUP'}) rts.'RSIMIN:'RAILY,'DAILY, 'DAILY, 'DAILY:'DAILY, 

ที่นี่ ฉันสร้างกฎสองสามข้อเพื่อคำนวณช่วงและค่าเบี่ยงเบนมาตรฐานสำหรับราคาหุ้นของ Goldman Sachs ในแต่ละช่วงเวลา 15 นาทีระหว่างวันซื้อขาย:

 rts.create ('intradayprices15minrng:gs', labels ={'symbol':'gs', 'desc':'share_price', 'ดัชนี':'djia', 'pricetype':'range', ' ':' range ',' ระยะเวลา ':' 15_minutes ',' componyName ':' goldman_sachs_group '}) rts.createrule (' intradayprices:gs ',' intradayprices15minrng:gs ',' range ', 900) rts.create (' IntradayPrices15minstdp:gs ', labels ={' symbol ':' gs ',' desc ':' share_price ',' ดัชนี ':' djia ',' pricetype ':' stddev ',' การรวม ':' stddev ',' ระยะเวลา ' ':'15_MINUTES'                   , 'COMPANYNAME':'GOLDMAN_SACHS_GROUP'})rts.createrule( 'INTRADAYPRICES:GS'              , 'ST' DP  S15                                                                                                                                                                                                    

คุณสร้างอนุกรมเวลาสำหรับหุ้นทั้ง 30 ตัวใน Dow Jones Industrial Average (DJIA) ในลักษณะเดียวกันได้

วิธีการนำเข้าข้อมูล  

มีสองวิธีในการนำเข้าข้อมูลไปยัง RedisTimeSeries TS.ADD คำสั่งช่วยให้คุณสามารถเพิ่มราคาหุ้นหรือตัวบ่งชี้ทางเทคนิคแต่ละรายการลงในอนุกรมเวลาได้ แต่เนื่องจากข้อมูลจากตลาดการเงินมีการผลิตเกือบต่อเนื่อง และคุณจำเป็นต้องเพิ่มตัวอย่างหลายรายการใน RedisTimeSeries ควรใช้ TS.MADD กระบวนการ. ฟังก์ชัน MADD รับรายการทูเพิลเป็นอาร์กิวเมนต์ ทูเพิลแต่ละตัวใช้ชื่อของคีย์อนุกรมเวลา การประทับเวลา และค่า:

สร้างแอปพลิเคชันทางการเงินของคุณบน RedisTimeSeries

คุณสามารถใช้คำสั่ง Python ต่อไปนี้เพื่อแทรกข้อมูลลงในคีย์อนุกรมเวลา:

rts.madd()

กำลังค้นหา RedisTimeSeries 

เช่นเดียวกับสิ่งส่วนใหญ่ใน RedisTimeSeries การสืบค้นฐานข้อมูลเป็นเรื่องง่าย พิสัยและส่วนเบี่ยงเบนมาตรฐานสำหรับราคาหุ้นหรือตัวบ่งชี้ทางเทคนิคเป็นตัวบ่งชี้ถึงความผันผวน ข้อความค้นหาต่อไปนี้จะช่วยให้คุณเห็นช่วงราคาและส่วนเบี่ยงเบนมาตรฐานสำหรับราคาหุ้นของ Goldman Sachs ภายในทุกๆ 15 นาที:

rts.range( 'INTRADAYPRICES15MINRNG:GS'          , from_time =1603704600          , to_time   =1603713600)

แบบสอบถามของการรวมช่วงนี้ให้ชุดผลลัพธ์ต่อไปนี้:

<ก่อนหน้า> [(1603704600, 1.75999999999999), (1603705500, 0.775000000000006), (1603706400, 0.730000000000018), (1603707300, 0.449999999999989), (1603708200, 0.370000000000005), (1603709100, 1.01000000000002), (1603710000, 0.490000000000009), (160371900, 0.8000000 ), (1603711800, 0.629999999999995), (1603712700, 0.490000000000009), (1603713600, 0.27000000000001)]

จากผลลัพธ์ของข้อความค้นหานี้ เมื่อเริ่มต้นวันซื้อขายเวลา 9:30 น. ของวันที่ 26 ตุลาคม 2020 ET (การประทับเวลาจำนวนเต็ม =1603704600) หุ้น Goldman Sachs มีความผันผวน โดยซื้อขายที่ช่วง $1.75 ตอนนี้เปรียบเทียบสิ่งนี้กับอีก 15 นาทีข้างหน้า เริ่มเวลา 09:45 น. ของวันที่ 26 ตุลาคม (ประทับเวลาจำนวนเต็ม =1603705500) ซึ่งความผันผวนลดลงด้วยช่วง 0.77 ดอลลาร์ ช่วงราคาหุ้น Goldman Sachs ยังคงลดลงอย่างต่อเนื่องในช่วง 15 นาทีต่อมา และความผันผวนไม่เคยกลับมาถึงระดับที่ถึงในช่วง 15 นาทีที่เปิด

ข้อมูลจาก RedisTimeSeries นี้สามารถมองเห็นได้ง่ายในแดชบอร์ดและแผนภูมิ แผนภูมิด้านล่างแสดงช่วงราคาของ Goldman Sachs ในช่วงเวลา 15 นาที:

สร้างแอปพลิเคชันทางการเงินของคุณบน RedisTimeSeries

แผนภูมิด้านล่างแสดงข้อมูลเดียวกันในรูปแบบแผนภูมิเส้น ซึ่งบ่งชี้ว่าช่วงราคาที่ Goldman Sachs ซื้อขายจะเข้มงวดมากขึ้นเมื่อเวลาผ่านไปตลอดทั้งวัน (แผนภูมินี้แสดงการประทับเวลาจำนวนเต็มบนแกน x):

สร้างแอปพลิเคชันทางการเงินของคุณบน RedisTimeSeries

คุณสามารถทำการค้นหาที่คล้ายกันโดยใช้การวัดความผันผวนอื่น—ส่วนเบี่ยงเบนมาตรฐาน—เป็นฟังก์ชันการรวม:

rts.range( 'INTRADAYPRICES15MINSTDP:GS'          , from_time =1603704600          , to_time   =160371360)
<ก่อนหน้า>[(1603704600, 0.54657783830434), (1603705500, 0.23201149395202), (1603706400, 0.196072381345986), (1603707300, 0.160267138157647), (1603708200, 0.116990621700049), (1603709100, 0.28043101744222), (1603710000,9337160,189) ), (1603711800, 0.163118915546951), (1603712700, 0.151417199675549), (1603713600, 0.0963889432843203)]

สิ่งนี้เปิดโอกาสที่น่าสนใจมากมาย สมมติว่าคุณต้องการทราบราคาหุ้นของ Goldman Sachs เมื่อค่า RSI ระหว่างวันอยู่ระหว่าง 30 ถึง 40 คุณสามารถสอบถามอนุกรมเวลาสำหรับ RSI และอนุกรมเวลาของราคาหุ้นเพื่อระบุจุดเริ่มต้นที่ทำกำไรได้สำหรับการซื้อขาย

ที่นี่ ฉันกำลังสอบถามค่า RSI สำหรับ Goldman Sachs ในกรอบเวลาระหว่าง 1605260100 (9:35 น. ET วันที่ 13 พฤศจิกายน 2020) ถึง 1605260940 (9:49 น. ET ในวันนั้น)

dailyGSRSIValue =rts.range( 'DAILYRSI:GS'                            , from_time =1605260100                             =160560100                         260  =1605                                            ก่อน                             

แบบสอบถามพบว่าค่า RSI คือ 34.2996427544861 เวลา 1605260820 (9:47 น. ET)

<ก่อน>[(1605260100, 75.0305441024708), (1605260160, 81.6673948350152), (1605260220, 83.8852225932517), (1605260280, 85.9469082344746), (1605260340, 94.3803586011592), (1605260400, 92.241226250265,2), (160573260158657) ), (1605260580, 89.9407873066781), (1605260640, 57.1512452602676), (1605260700, 50.5638232111769), (1605260760, 35.2804436894564), (1605260820, 34.2996427544861), (1605260880, 54.5486275202972), (160533094850)

ตอนนี้ฉันสามารถสอบถามราคาระหว่างวันของ Goldman Sachs ได้ในช่วงเวลาเดียวกับที่ใช้สำหรับการสืบค้น RSI หรือเปลี่ยนการสืบค้นโดยทางโปรแกรมเพื่อให้สะท้อนว่าค่า RSI อยู่ที่ 34.29 นี่คือตัวอย่างโดยใช้กรอบเวลาเดียวกับคำค้นหา RSI

dailyGSPrice =rts.range( 'INTRADAYPRICES:GS'                         , from_time =1605260100                         , to_time  pre =1605260940)

แบบสอบถามส่งคืนราคาหุ้นของ Goldman Sachs สำหรับช่วงที่ระบุ:เมื่อเวลา 1605260820 (9:47 น. ET วันที่ 13 พฤศจิกายน 2020) ราคาอยู่ที่ $217.18

<ก่อนหน้า>[(1605260100, 216.57), (1605260160, 216.73), (1605260220, 217.08), (1605260280, 217.17), (1605260340, 217.87), (1605260400, 218.05), (1605260460, 217.91), (1605260520, 218.0 ), (1605260580, 218.11), (1605260640, 218.02), (1605260700, 217.72), (1605260760, 217.22), (1605260820, 217.18), (1605260880, 217.46), (1605260940, 217.61)]

RedisTimeSeries นำเสนอวิธีที่มีประสิทธิภาพในการสืบค้นข้อมูลอนุกรมเวลาหลายชุดในคราวเดียว TS.MGET คำสั่งช่วยให้คุณสามารถสืบค้นข้ามอนุกรมเวลาได้หลายชุดโดยใช้ตัวกรอง เราได้สร้างอนุกรมเวลาต่างๆ และติดป้ายกำกับไว้แล้ว ตอนนี้ป้ายกำกับเหล่านั้นสามารถทำหน้าที่เป็นตัวกรองเพื่อสืบค้นข้ามอนุกรมเวลาได้

โค้ด Python ต่อไปนี้ใช้ตัวกรองสองตัวตามป้ายกำกับ:“DESC” และ “TIMEFRAME” พารามิเตอร์ “with_labels=False” อนุญาตให้ส่งคืนชุดผลลัพธ์โดยไม่มีป้ายกำกับสำหรับแต่ละค่า:

allRSIValues ​​=rts.mget(filters=['DESC=RELATIVE_STRENGTH_INDEX','TIMEFRAME=1_DAY'], with_labels=False)

ข้อความค้นหานี้จะแสดงผลคล้ายกับที่แสดงไว้ที่นี่ ซึ่งจะคืนค่า RSI ล่าสุดจากหุ้นจำนวนหนึ่ง:

[{'DAILYRSI:BA':[{}, 1605261060, 62.2048922111768]}, {'DAILYRSI:CAT':[{}, 1605261060, 68.3834400302296]} {'DAILYRSI:CRM':[{}, 1605261060 , 59.2107333830133]}, {'DAILYRSI:CSCO':[{}, 1605261060, 52.7011052724688]}, {'DAILYRSI:CVX':[{}, 1605261060, 62.9890368832232]}, {'DAILYRSI:DOW':[{}, 1605261060, 73.597680480764]}, {'DAILYRSI:GS':[{}, 1605283140, 41.182852552541]}, {'DAILYRSI:IBM':[{}, 1605261060, 65.3742140862697]}, {'DAILYRSI:JPM':[{} , 1605261060, 77.7760292843745]}, {'DAILYRSI:KO':[{}, 1605261060, 26.8638381005608]}, {'DAILYRSI:MMM':[{}, 1605261060, 65.7852833683174]}, {'DAILYRSI:MRK':[{ }, 1605261060, 38.9991886598036]}, {'DAILYRSI:UNH':[{}, 1605261060, 74.2672428885775]}, {'DAILYRSI:VZ':[{}, 1605261060, 33.177554436462]}, {'DAILYRSI:WBA':[ {}, 1605261060, 47.3877762365391]}]

ถ้าฉันตั้งค่า “with_labels=True” ผลลัพธ์จะได้รวมป้ายกำกับทั้งหมดในแต่ละอนุกรมเวลาดังที่แสดงไว้ที่นี่:

[{'DAILYRSI:BA':[{'SYMBOL':'BA', 'DESC':'RELATIVE_STRENGTH_INDEX', 'INDEX':'DJIA', 'TIMEFRAME':'1_DAY', 'INDICATOR':' RSI', 'COMPANYNAME':'BOEING'}, 1605261060, 62.2048922111768]}, {'DAILYRSI:CAT':[{'SYMBOL':'CAT', 'DESC':'RELATIVE_STRENGTH_INDEX', 'INDEX':'DJIA' , 'TIMEFRAME':'1_DAY', 'INDICATOR':'RSI', 'COMPANYNAME':'CATERPILLAR'}, 1605261060, 68.3834400302296]}, {'DAILYRSI:CRM':[{'SYMBOL':'CRM', ' DESC':'RELATIVE_STRENGTH_INDEX', 'INDEX':'DJIA', 'TIMEFRAME':'1_DAY', 'INDICATOR':'RSI', 'COMPANYNAME':'SALEFORCE'}, 1605261060, 59.2107333830133]}]

บทสรุป 

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

คุณสามารถหาโค้ดตัวอย่างสำหรับโพสต์บล็อกนี้บน GitHub ได้ที่นี่ และคุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับ RedisTimeSeries ที่นี่