現代化的策略投資數據平台Beplay体育安卓版本
2021年1月29日 在工程的博客
偏好投資於2020年曆史最高水平的個人和機構投資者。一項研究顯示,“散戶占近25%的股票市場後COVID-driven波動”。此外,機構投資者在cryptocurrency堆在投資,36%投資於cryptocurrency,商業內幕的概述。隨著投資者獲得和貿易cryptocurrency等另類資產,交易量飆升和創建新數據的挑戰。此外,前沿的研究不再局限於機構投資者在華爾街投資——當今世界延伸到數字交流在矽穀,以數據為中心的做市商和零售經紀商對投資者投資越來越AI-powered工具。數據湖泊已經成為標準構建金融數據產品和研究,但他們有一個獨特的挑戰:
- 缺乏藍圖如何構建一個企業數據在雲中湖
- 組織仍在努力保證數據的可靠性和及時性,導致次優的過程和稀釋的見解
因此,可伸縮的AI(如波動預測)難以實現是由於維護成本高、缺乏規模,因此交易盈利的藍圖。作為我們建議藍圖的一部分,我們建議標準化三角洲湖,這是一個開源存儲層,給Apache火花™和大數據帶來ACID事務工作負載。在三角洲湖是一批表,以及流源和下沉。流媒體數據攝取、批曆史回填和交互式查詢都是工作的。特別是自原始市場數據實時傳遞,必須用於實時交易決策支持,支持交易用例三角洲湖是至關重要的。
這個博客主要有2部分。第一個覆蓋著陸金融市場數據的詳細選項為三角洲湖。第二部分涵蓋了藍圖productionalizing用例等金融產品的波動性預測以及市場監測三角洲湖上。值得注意的是,作為用例的一部分,我們引入一個開源時序包開發作為磚實驗室的一部分,這有助於構建的基礎上麵的用例。
如何構建一個市場三角洲湖
在這個博客,通過一係列的設計模式和現實世界的例子,我們將處理數據的挑戰。視覺引導,下麵的參考體係結構將如何構建的基礎數據來源和牧師湖數據集結束報告、交易總結,和市場監控警報。
基本數據來源攝取
基本數據,(圖1)定位在左上角鬆散定義為經濟和金融因素用來衡量一個公司的內在價值,可今天從大多數金融數據供應商。包括兩個最常見的來源Factset和標普市場情報平台Beplay体育安卓版本。這兩個來源使數據可以通過FTP、API和一個SQL Server數據庫。由於數據是可以通過因子分析的數據庫,有三個簡單選擇攝入為三角洲湖:
選擇1 -夥伴攝入網絡
磚已經與6家公司組成的“數據攝入網絡合作夥伴。“我們的合作夥伴有能力接收來自各種數據源的數據,包括FTP、crm、營銷資源和數據庫資源。自金融供應商允許金融客戶主機數據庫,我們的合作夥伴可以使用工具取出數據直接存儲在三角洲湖。完整的文檔如何攝取使用這個網絡和合作夥伴位於磚的清單文檔,合作夥伴數據集成。
選項2 -使用原生雲攝入工具
雲服務提供商也有現有的數據庫複製到三角洲湖的工具。下麵是兩個選項從數據庫(on-prem或雲)攝取到三角洲湖。
AWS
AWS提供了一個解決方案,數據庫遷移服務,這些服務允許組織建立一個變化數據捕獲(CDC)處理數據庫更改複製到雲數據湖泊。我們提出一個具體的方法複製數據庫更改三角洲湖在我們的博客,“事務數據遷移到使用AWS DMS三角洲湖。”Xpressfeed以來標準普爾的數據,例如,有數以百計的來源,從環境、社會和治理風險評分和替代數據基本收益和新聞人氣數據集,一個自動化的方法來複製這些三角洲湖是至關重要的。上麵提到的AWS的解決方案提供了一個簡單的方法來設置。
Azure
Azure最受歡迎的服務之一是Azure數據工廠(ADF)而且有很好的理由。ADF允許複製來自許多不同的數據源,包括數據庫、FTP、甚至跨雲如BigQuery來源。特別是,有兩種方法對三角洲湖從SQL數據庫寫入數據:
- ADF提供了一個簡單的”複製到的工廠,簡單地複製數據庫表blob存儲(blob或ADLS Gen2),和三角洲湖是一個有效的目標表複製功能。
- 更自定義轉換從一個數據庫到三角洲湖,ADF足夠靈活,能夠從數據庫讀取所有表使用一個信息模式如圖所示在這裏。從這裏,你可以隻配置一個磚筆記本使用的輸入表名信息模式和每個表副本通過執行一個磚筆記本從數據庫讀取使用JDBC。的例子是在這裏。
基於api的數據源執行攝入
布隆伯格是一個行業標準的市場數據,參考數據和其他成百上千的提要。為了顯示基於API的一個例子攝入(中間左在圖1)從彭博數據訂閱的B-PIPE(彭博數據API來訪問市場數據來源)模擬器就會被使用。Java市場數據訂閱客戶端代碼在原始模擬器一直在修改下麵的代碼發布事件到運動實時流使用AWS SDK。
寫B-PIPE市場數據流媒體服務
//開放市場數據訂閱服務session.openServiceAsync (“/ / blp / mktdata”,新CorrelationID (-9999年));//創建列表的證券來不斷攝取成三角洲湖SubscriptionList slist=新SubscriptionList ();slist.add (新訂閱(“間諜美國股票”,RunMarketDataSubscription._fields));slist.add (新訂閱(“apple 150117 c00600000股本”,RunMarketDataSubscription._fields));slist.add (新訂閱(“AMD美國股票”,RunMarketDataSubscription._fields));session.subscribe (slist)//內循環連續流的消息從B- - - - - -管市場數據訂閱//使用動作客戶機來寫記錄檢索從API來運動流AmazonKinesisClient kinesisClient=新AmazonKinesisClient (新BasicAWSCredentials (,));字符串kinesisEndpointUrl=“https://kinesis.us -東- 1. - amazonaws.com”;字符串regionName=“us-east-1”;kinesisClient.setEndpoint (kinesisEndpointUrl);//創建PutRecordRegust與字節從API請求(輸出)和包括序列號PutRecordRequest PutRecordRequest=新PutRecordRequest ();putRecordRequest。setStreamName (“databricks-bpipe”);putRecordRequest.setData (ByteBuffer。包裝(output.getBytes ()));putRecordRequest。setPartitionKey (“mkt-data-partitionKey”);putRecordRequest。setSequenceNumberForOrdering (sequenceNumberOfPreviousRecord);PutRecordResult PutRecordResult=kinesisClient。putRecord (putRecordRequest);sequenceNumberOfPreviousRecord=putRecordResult.getSequenceNumber ();
從運動流到三角洲湖寫入數據
薇爾運動=spark.readStream.format(“運動”).option (“streamName”、“databricks-bpipe”).option(“地區”、“us-east-1”).option (“initialPosition”、“最新”).load ()val df=運動.withColumn (“mktdata坳(“數據”)。投(“字符串”)).withColumn (“event_ts”,分裂(坳(“mktdata”)、“,”) (0)).withColumn(“股票”,分裂(分裂(坳(“mktdata”)、“,”) (1)”、“)(1)).withColumn (“quote_pr”,翻譯(分裂(坳(“mktdata”)、“,”) (2)," $ "," ")).withColumn (“event_dt坳(“event_ts”)。投(“時間戳”)。投(“日期”)
df.writeStream.partitionBy (“event_dt”).format(“δ”).option(“路徑”、“/ tmp /磚/ bpipe”).option (“checkpointLocation”、“/ tmp /磚/ bpipe_cp”)。開始()
變換和閱讀記錄
顯示器(spark.read。格式(“δ”).load (“/ tmp /磚/ bpipe”))
蜱蟲數據源攝入
蜱蟲的數據(圖1)定位在左下角,這是高分辨率盤中市場數據的通用術語,通常來自數據供應商作為CSV批來源,JSON或二進製格式。類型的蜱蟲數據包括貿易、報價和合同數據,交付的一個例子蜱蟲曆史數據服務湯森路透(Thomson Reuters)提供的。最簡單的方法不斷地從這些來源數據到三角洲湖設置磚自動裝卸機閱讀從一桶和重定向數據到一個單獨的三角洲湖表。從這裏開始,各種ETL過程可能牧師每個消息類型為精製或聚合三角洲表。自動裝卸機的好處是雙重的:
- 從三角洲湖繼承的可靠性和性能
- 更低的成本由於底層使用SQS (AWS)或aq (Azure),以避免重新輸入文件以及管理檢查點來避免手動選擇最新的未讀文件。
從三角洲湖到金融服務用例productionization
超出了數據收集的挑戰表麵在構建任何數據平台,投資管理公司越來越需要解決的人工智能產品套件,以及工程成本管理功能。Beplay体育安卓版本特別是:
- 散戶和機構投資公司也需要能夠查詢和數據上運行ETL湖泊具有成本效益的方式,減少維護成本的數量與豐富的湖泊和查詢數據。
- 散戶投資者期望AI-powered祭在訂閱和見解。最優解將主辦的人工智能基礎設施,用戶可以創建AI-powered儀表板應用程序和庫的設置時間和彈性計算基礎設施最小化,可以縮放和底層處理數以億計的數據點,在日常事務數據來源(客戶事務和蜱蟲引用)。
既然我們已經提出了可靠、有效的方法著陸金融數據集數據雲湖,我們想解決一些現有的金融數據集之間的縫隙雲和AI-powered產品。
上圖顯示了數據集和孤立的基礎設施不足以提供投資分析產品生產。FSIs大部分采用了幾乎所有的AI用例推動者右邊但是沒能最大化的成交量加權重疊與核心數據集。磚統一數據分析平台的包容前四人工智能實現的用例。Beplay体育安卓版本使productionization更具體的,我們將展示如何使用一個新的磚開源包節奏大規模操縱時間序列。然後我們將深入介紹以下用例功能創建模板,使用節奏和展示如何得到最好的兩個世界在維恩圖中。
- 零售投資使用基本數據細節通知每日波動預測。
- 市場監測細節改進和檢測過程總結價格欺騙。
速度-時間序列包
在金融服務領域,時間序列是無處不在的,我們發現我們的客戶大規模鬥爭與操縱時間序列。beplay体育app下载地址在過去,我們列出了一些方法擴展時間序列查詢。現在,磚實驗室發布了一組簡單常見的時間序列的實用程序在開源包稱為時間序列處理簡單節奏。這個包包含以下工具:
- 的連接合並到一起數以百萬計的不規則的時間序列
- 現有指標的功能創建滾動聚合
- 優化寫入三角洲湖適合特別的時間序列查詢
- 成交量加權平均價(VWAP)計算
- 重采樣
- 指數移動平均計算
通過結合蜱蟲的多功能性質數據,可靠的數據管道和開源軟件如節奏、組織可以釋放指數的價值從不同的用例以最小成本和快速執行周期。下一節討論兩個反複出現的主題在資本市場利用節奏:波動性預測和市場監督。
波動率預測方法與基本技術數據
標普全球市場情報提供基本數據可攝入使用一種稱為Xpressfeed的機製(包括在本指南)。一些重要的點對該提要:
- 它涵蓋了成千上萬的基本數據指標
- 它涵蓋了全球成千上萬的上市公司和非上市股票
- 報告頻率是每天——有一個存檔日期可用於時間點分析
雖然我們不包括蜱蟲ETL(接觸磚的管理過程銷售在這個用例)的更多信息,我們從標準選擇格式輪廓加工到最終的預測對象使用節奏庫;我們的實現是在這個博客的鏈接在底部。高層細節如下:
- 創建日曆時間點——合並最新的基本數據到最新的日程表日期使用存檔日期(基本數據存檔日期作為貿易日期)。通常被稱為的加入,這個操作通常是昂貴的和主題在一個高度不平衡數據集的技術瓶頸。節奏會保證這個操作彈性均勻分布利用最好的雲(及其相關的成本)。
- 創建對等組——使用有意義的基本數據項,如每股收益、淨資產收益率、浮動%(代表利益相關者holdings),根據每個指標形式對等組。注意,數據項的值需要旋轉進行有意義的工程特性。
- 重新取樣點數據小時(或其他所需的粒度)。每小時的選擇因為每天聚合並沒有提供足夠的粒度預測波動性。
- 預測市場波動在磚使用運行時機器學習。
- 綜合預測結果找到最大/最小波動公司基於證券被評估。
值得注意的一個方麵的數據架構是最後轉換在創建黃金預測表。特別是,
- 我們已經將ML工程處理的一部分功能。這意味著我們應該全麵嚴格申請CI / CD毫升治理的一部分。在這裏是一個模板,用於實現全麵嚴謹。
- 我們選擇強調gpu預測波動率的重要性。在筆記本的例子在這個博客,我們選擇使用xgboost和簡單的統計範圍各種引用指標的一部分功能。利用gpu_hist樹方法和全麵管理GPU集群和運行時,我們可以節省2.65 x (x 2.27運行時),都表現出努力降低成本和生產力節省數據團隊。這些指標得到6個月的蜱蟲來自美國主要交易所的數據。
最終,節奏和的幫助下磚運行時機器學習、零售券商服務他們的客戶與儀表板可以統一使用人工智能技術基礎和技術分析。下麵是我們同齡群體的結果預測。
與蜱蟲數據市場監測方法
市場監測是一個重要的金融服務的生態係統的一部分,其目的是為了減少操縱市場,增加透明度,為各種資產類執行基準規則。政府和私人組織的一些例子,有廣泛的監測項目包括納斯達克,FINRA, CFTC,芝加哥商品交易所集團。隨著零售行業投資更大的更新和沒有經驗的投資者(源),尤其是在數字貨幣空間,重要的是要理解如何構建一個基本的監測項目,減少金融詐騙和增加透明度等領域的市場波動,風險,和最好的執行。在下麵的部分中,我們將展示如何構建基本價格改善總結,以及將一個基本的欺騙一起實現。
價格提高
價格提高是指改善報價的數量(在銷售訂單的情況下)或要求(在購買訂單的情況下),代理提供客戶。這對零售經紀人很重要,因為它常常有助於感知質量的代理如果它一直保存客戶的錢在一組交易。價格提高的基本概念是:
- 瑪麗亞地方市場秩序為XYZ股票100股上午10:00最好的出價/問的是10 / 11美元
- 代理一個路由交換的命令執行每股10.95美元的價格
- 儲蓄是0.05 * 100 = 5.00美元在這個執行,代表一定的價格提高
盡管進步很小,隨著時間的推移,這些儲蓄可以添加在數以百計的交易。一些經紀人也顯示這個信息應用透明度和展示能力的路由到適當的市場中心或做市商得到好的價格。
計算價格提高
價格的改進是一個特例滑動(多少執行價格的變化從最好的出價/問訂單到達時間)。它會影響數字貨幣傳統股票,更因為有大量的波動性和訂單量的波動。例如,這裏有一些見解在金融市場深度和滑移。下麵是一個基本的藍圖如何計算滑移使用節奏(詳細的代碼可以在連接筆記本):
- 攝取市場秩序消息(訂單)
- 攝取執行信息
- 執行的連接使用節奏訂單到達時間
- 執行的連接使用節拍執行時間
- 測量不同的執行價格和投標/問可以在訂單到達時間
- 總結公司在SQL和提供分析和/或BI儀表板
攝入的訂單數據得到訂單和執行通常可用在JSON或其他平麵文件格式從內部係統或網絡營銷峰會(訂單管理係統)。一旦這個數據是可用的,在加入操作一對節奏的官方文檔中所描述的數據幀在這裏:
下麵我們展示的代碼執行連接。
從tempo.tsdf進口TSDF交易= spark.table (“exchange_trades”)trades_tsdf = TSDF(交易,ts_col =“event_ts”partition_cols = (“日期”,“股票”])quotes_tsdf = TSDF (spark.table (“tempo.delta_tick_quotes_6mo”),ts_col =“event_ts”partition_cols = (“日期”,“股票”])ex_asof = trades_tsdf。asofJoin (quotes_tsdf right_prefix =“asof_ex_time”)orders_tsdf = TSDF (ex_asof。df, ts_col =“order_arrival_ts”partition_cols = (“日期”,“股票”])order_asof = ex_asof。asofJoin (quotes_tsdf right_prefix =“asof_ord_time”)
order_asof \.df \.write \。格式(“δ”)\.mode (“覆蓋”)\.saveAsTable (“tempo.silver_trade_slippage”)
一旦這在三角洲湖數據可用,它可以切成各種方法總結的這些證券突出的滑移。看到下麵的例子,總結了日誌的總滑動片一段時間在一個交易日。
欺騙
欺騙是指市場操縱模式涉及人工感興趣的條目(通過假訂單放置)其次是執行另一側利用最好的出價/要求的變化,由原來的人工錯誤的影響。欺騙的事件通常需要取消訂單,我們大綱下麵一個簡單的例子。
欺騙是數以百計的不同的市場操縱技術和發生在許多不同的資產類別。特別是,它被大多數市場監測程序的一部分股票,但由於需求增加在數字貨幣比特幣和乙醚等,這是增加的重要性。事實上,自從cryptocurrencies波動變量,關鍵是保護客戶從潛在的欺騙活動安全信任加密平台,無論是交易所或違抗框架。Beplay体育安卓版本
樣本模式
步驟的序列檢測欺騙也適用於其他操作模式(例如老鼠倉、分層等),所以我們列出一個簡單的方法來突出一些底層技術。
- 保存訂單信息——關鍵訂單ID和序列號碼
- 保存取消所有訂單的信息(配有訂單ID)
- NBBO記錄在訂單到達時間(order_rcvd_ts下麵的數據)以及NBBO秩序arrivalJoin之前訂單和取消(尋找完全取消)和記錄序列如下形式:
- NBBO變化限製從秒之前下單下單(銷售訂單,減少最好問)
- 取消訂單(我們指的是一個假的秩序non-bonafide順序)
- 上麵放置的順序執行的對麵
- 洗貿易(self-trade)活動同樣的市場參與者(或細微差別,這可能代表不同的下MPIDs CRD相同)
樣本模式捕捉NBBO(這裏引用作為代理)信息使用節奏的加入:
從tempo.tsdf進口TSDForders_and_cncls_tsdf=TSDF (orders_and_cncls ts_col=“prior_order_rcvd_ts”,partition_cols=(“日期”、“股票”))prior_quotes_tsdf=TSDF (prior_quotes ts_col=“event_ts”,partition_cols=(“日期”、“股票”))prior_order_asof=orders_and_cncls_tsdf。asofJoin (prior_quotes_tsdf right_prefix=“asof_prior_order”)prior_order_asof=TSDF (prior_order_asof。df, ts_col=“order_rcvd_ts”,partition_cols=(“日期”、“股票”))order_asof=prior_order_asof。asofJoin (prior_quotes_tsdf right_prefix=“asof_order”)nbbo_deltas=order_asof。df \.withColumn (“nbbo_ask_delta_direction”符號(坳(“asof_prior_order_ASK_PRICE”)- - - - - -坳(“asof_order_ASK_PRICE”))) \.withColumn (“nbbo_bid_delta_direction”符號(坳(“asof_order_BID_PRICE”)- - - - - -坳(“asof_prior_order_BID_PRICE”))) \.withColumn (“nbbo_ask_delta”,腹肌(坳(“asof_prior_order_ASK_PRICE”)- - - - - -坳(“asof_order_ASK_PRICE”))) \.withColumn (“nbbo_bid_delta”,腹肌(坳(“asof_order_BID_PRICE”)- - - - - -坳(“asof_prior_order_BID_PRICE”)))
下麵,我們想象的向下運動NBBO幾個樣品訂單,驗證模式我們正在尋找在NBBO變化。
最後,我們保存的報告公司non-bonafide處決,不約而同洗交易活動。
結論
在這個藍圖,我們專注於共同數據集的攝入湖成三角洲以及策略productionizing三角洲湖上管道對象。利用三角洲湖使FSIs專注於為客戶產品交付,最終導致資產增加,降低金融欺詐,增加訂閱,成為世界投資擴大到越來越多的散戶投資者。beplay体育app下载地址從技術角度來看,上麵所有的用例都是通過現代數據架構的核心原則的幫助下新發布的節奏庫:
- 支持開源包和與行業認可的框架的集成
- 基礎設施支持AI用例
- 功能創建模板
- 時間序列分析支持
我們已經記錄下了這些方法和提供功能創建模板幾個流行的用例在筆記本下麵的鏈接。此外,我們引入節奏及其應用在這些模板作為投資的基礎數據平台。Beplay体育安卓版本
試試以下筆記本磚今天和加速你的投資平台Beplay体育安卓版本聯係我們了解更多關於我們如何幫助客戶提供類似的用例。beplay体育app下载地址