2 là ngôn ngữ lập trình cấp cao, đa năng được sử dụng trong nhiều lĩnh vực và lĩnh vực kỹ thuật. Trên trang webIn
[
2
]:
100
*
2.5
+
50
2, bạn tìm thấy phần tóm tắt sau đây [cf. https. //www. con trăn. org/doc/essays/blurb]In
[
2
]:
100
*
2.5
+
50
Python là ngôn ngữ lập trình cấp cao, hướng đối tượng, thông dịch với ngữ nghĩa động. Các cấu trúc dữ liệu tích hợp ở mức cao, kết hợp với kiểu gõ động và liên kết động, làm cho nó trở nên rất hấp dẫn đối với Phát triển ứng dụng nhanh, cũng như để sử dụng làm ngôn ngữ kịch bản hoặc ngôn ngữ keo để kết nối các thành phần hiện có với nhau. Cú pháp đơn giản, dễ học của Python nhấn mạnh khả năng đọc và do đó giảm chi phí bảo trì chương trình. Python hỗ trợ các mô-đun và gói, khuyến khích mô-đun hóa chương trình và tái sử dụng mã. Trình thông dịch Python và thư viện chuẩn mở rộng có sẵn ở dạng nguồn hoặc nhị phân miễn phí cho tất cả các nền tảng chính và có thể được phân phối miễn phí
Điều này mô tả khá rõ lý do tại sao
2 đã phát triển thành một trong những ngôn ngữ lập trình chính cho đến ngày nay. Ngày nay,In
[
2
]:
100
*
2.5
+
50
2 được sử dụng bởi lập trình viên mới bắt đầu cũng như nhà phát triển chuyên gia có tay nghề cao, tại các trường học, trường đại học, tại các công ty web, trong các tập đoàn lớn và tổ chức tài chính, cũng như trong bất kỳ lĩnh vực khoa học nàoIn
[
2
]:
100
*
2.5
+
50
Trong số những thứ khác,
2 được đặc trưng bởi các tính năng sauIn
[
2
]:
100
*
2.5
+
50
Nguồn mở
2 và phần lớn các thư viện và công cụ hỗ trợ có sẵn là nguồn mở và thường đi kèm với các giấy phép khá linh hoạt và mở. Phiên dịchViệc triển khai tham chiếuIn
[
2
]:
100
*
2.5
+
50
8 là trình thông dịch của ngôn ngữ dịch mãIn
[
2
]:
100
*
2.5
+
50
2 trong thời gian chạy sang mã byte thực thi. MultiparadigmIn
[
2
]:
100
*
2.5
+
50
2 hỗ trợ các mô hình triển khai và lập trình khác nhau, chẳng hạn như hướng đối tượng và lập trình mệnh lệnh, chức năng hoặc thủ tục. Đa năngIn
[
2
]:
100
*
2.5
+
50
2 có thể được sử dụng để phát triển mã tương tác, nhanh chóng cũng như để xây dựng các ứng dụng lớn; . Đa nền tảngIn
[
2
]:
100
*
2.5
+
50
2 có sẵn cho các hệ điều hành quan trọng nhất, chẳng hạn nhưIn
[
2
]:
100
*
2.5
+
50
13,In
[
2
]:
100
*
2.5
+
50
14 vàIn
[
2
]:
100
*
2.5
+
50
15; . http. //www. mâm xôi. tổ chức]. Các kiểu được nhập động trongIn
[
2
]:
100
*
2.5
+
50
2 nói chung được suy ra trong thời gian chạy và không được khai báo tĩnh như trong hầu hết các ngôn ngữ được biên dịch. Nhận biết thụt lề Ngược lại với phần lớn các ngôn ngữ lập trình khác,In
[
2
]:
100
*
2.5
+
50
2 sử dụng thụt lề để đánh dấu các khối mã thay vì dấu ngoặc đơn, dấu ngoặc đơn hoặc dấu chấm phẩy. Thu gom rácIn
[
2
]:
100
*
2.5
+
50
2 có chức năng thu gom rác tự động, giúp lập trình viên không cần phải quản lý bộ nhớIn
[
2
]:
100
*
2.5
+
50
Khi nói đến cú pháp
2 và tất cả những gì vềIn
[
2
]:
100
*
2.5
+
50
2, Đề xuất cải tiến Python 20—i. e. , cái gọi là “Zen of Python”—cung cấp các hướng dẫn chính. Nó có thể được truy cập từ mọi shell tương tác bằng lệnhIn
[
2
]:
100
*
2.5
+
50
02In
[
2
]:
100
*
2.5
+
50
1In
[
2
]:
100
*
2.5
+
50
2____23In
[
2
]:
100
*
2.5
+
50
Mặc dù
2 có thể vẫn còn sức hấp dẫn của một cái gì đó mới mẻ đối với một số người, nhưng nó đã xuất hiện từ khá lâu rồi. Trên thực tế, những nỗ lực phát triển đã bắt đầu từ những năm 1980 bởi Guido van Rossum từ Hà Lan. Anh ấy vẫn tích cực trong việc phát triểnIn
[
2
]:
100
*
2.5
+
50
2 và đã được cộng đồngIn
[
2
]:
100
*
2.5
+
50
2 phong tặng danh hiệu Nhà độc tài nhân từ suốt đời [cf. http. // vi. wikipedia. org/wiki/History_of_Python]. Những điều sau đây có thể được coi là những cột mốc quan trọng trong quá trình phát triển củaIn
[
2
]:
100
*
2.5
+
50
2In
[
2
]:
100
*
2.5
+
50
- Trăn 0. 9. 0 phát hành năm 1991 [bản phát hành đầu tiên]
- Trăn 1. 0 phát hành năm 1994
- Trăn 2. 0 phát hành năm 2000
- Trăn 2. 6 phát hành năm 2008
- Trăn 2. 7 phát hành năm 2010
- Trăn 3. 0 phát hành năm 2008
- Trăn 3. 3 phát hành năm 2010
- Trăn 3. 4 phát hành năm 2014
Điều đáng chú ý và đôi khi gây nhầm lẫn cho những người mới sử dụng
2 là có hai phiên bản chính vẫn đang được phát triển và quan trọng hơn là được sử dụng song song từ năm 2008. Khi viết bài này, điều này sẽ tiếp tục trong một thời gian dài vì không có khả năng tương thích mã 100% giữa các phiên bản, cũng như không phải tất cả các thư viện phổ biến đều có sẵn choIn
[
2
]:
100
*
2.5
+
50
08. Phần lớn mã có sẵn và đang được sản xuất vẫn làIn
[
2
]:
100
*
2.5
+
50
09 và cuốn sách này dựa trên phiên bảnIn
[
2
]:
100
*
2.5
+
50
10, mặc dù phần lớn các ví dụ về mã cũng sẽ hoạt động với phiên bảnIn
[
2
]:
100
*
2.5
+
50
11In
[
2
]:
100
*
2.5
+
50
Một tính năng chính của
2 với tư cách là một hệ sinh thái, so với việc chỉ là một ngôn ngữ lập trình, là sự sẵn có của một số lượng lớn các thư viện và công cụ. Các thư viện và công cụ này thường phải được nhập khi cần [e. g. , một thư viện đồ thị] hoặc phải được bắt đầu như một quy trình hệ thống riêng biệt [e. g. , một môi trường phát triểnIn
[
2
]:
100
*
2.5
+
50
2]. Nhập có nghĩa là cung cấp một thư viện cho không gian tên hiện tại và quy trình phiên dịchIn
[
2
]:
100
*
2.5
+
50
2 hiện tạiIn
[
2
]:
100
*
2.5
+
50
Bản thân
2 đã đi kèm với một bộ thư viện lớn giúp nâng cao trình thông dịch cơ bản theo các hướng khác nhau. Ví dụ: các phép tính toán học cơ bản có thể được thực hiện mà không cần nhập, trong khi các hàm toán học phức tạp hơn cần được nhập thông qua thư việnIn
[
2
]:
100
*
2.5
+
50
16In
[
2
]:
100
*
2.5
+
50
In
[
2
]:
100
*
2.5
+
50
1In
[
2
]:
100
*
2.5
+
50
0______31In
[
2
]:
100
*
2.5
+
50
2In
[
2
]:
100
*
2.5
+
50
3In
[
2
]:
100
*
2.5
+
50
Mặc dù cái gọi là “sao nhập khẩu” [i. e. , việc nhập mọi thứ từ thư viện qua
17] đôi khi thuận tiện, thông thường người ta nên sử dụng một phương pháp thay thế để tránh sự mơ hồ liên quan đến không gian tên và mối quan hệ của các chức năng với thư viện. Điều này sau đó có hình thứcIn
[
2
]:
100
*
2.5
+
50
5In
[
2
]:
100
*
2.5
+
50
20In
[
2
]:
100
*
2.5
+
50
Mặc dù
16 là thư việnIn
[
2
]:
100
*
2.5
+
50
2 tiêu chuẩn có sẵn với bất kỳ cài đặt nào, nhưng có nhiều thư viện khác có thể được cài đặt tùy chọn và có thể được sử dụng theo cách rất giống với thư viện tiêu chuẩn. Các thư viện như vậy có sẵn từ các nguồn [web] khác nhau. Tuy nhiên, thông thường nên sử dụng phân phốiIn
[
2
]:
100
*
2.5
+
50
2 để đảm bảo rằng tất cả các thư viện đều thống nhất với nhau [xem Chương 2 để biết thêm về chủ đề này]In
[
2
]:
100
*
2.5
+
50
Các ví dụ mã được trình bày cho đến nay đều sử dụng
21 [cf. http. //www. ipython. org], đây có lẽ là môi trường phát triển tương tác [IDE] phổ biến nhất choIn
[
2
]:
100
*
2.5
+
50
2. Mặc dù ban đầu nó chỉ là một trình bao nâng cao, nhưng ngày nay nó có nhiều tính năng thường thấy trong các IDE [e. g. , hỗ trợ lập hồ sơ và gỡ lỗi]. Những tính năng bị thiếu thường được cung cấp bởi các trình soạn thảo mã/văn bản nâng cao, chẳng hạn nhưIn
[
2
]:
100
*
2.5
+
50
23 [cf. http. //www. văn bản tuyệt vời. com]. Do đó, không có gì lạ khi kết hợpIn
[
2
]:
100
*
2.5
+
50
21 với trình soạn thảo văn bản/mã mà một người lựa chọn để tạo thành bộ công cụ cơ bản cho quy trình phát triểnIn
[
2
]:
100
*
2.5
+
50
2In
[
2
]:
100
*
2.5
+
50
21 đôi khi còn được gọi là ứng dụng sát thủ của hệ sinh tháiIn
[
2
]:
100
*
2.5
+
50
2. Nó tăng cường vỏ tương tác tiêu chuẩn theo nhiều cách. Ví dụ: nó cung cấp các chức năng lịch sử dòng lệnh được cải tiến và cho phép kiểm tra đối tượng dễ dàng. Chẳng hạn, văn bản trợ giúp cho một chức năng được in bằng cách chỉ cần thêm mộtIn
[
2
]:
100
*
2.5
+
50
28 đằng sau tên chức năng [thêmIn
[
2
]:
100
*
2.5
+
50
29 sẽ cung cấp nhiều thông tin hơn]________ 221 ________ 222 ________ 223In
[
2
]:
100
*
2.5
+
50
21 có ba phiên bản khác nhau. một phiên bản shell, một phiên bản dựa trên giao diện người dùng đồ họaIn
[
2
]:
100
*
2.5
+
50
31 [_______432] và một phiên bản dựa trên trình duyệt [_______433]. Đây chỉ là một lời trêu ghẹo;In
[
2
]:
100
*
2.5
+
50
2 không chỉ thu hút các nhà phát triển phần mềm chuyên nghiệp;In
[
2
]:
100
*
2.5
+
50
Các nhà phát triển phần mềm chuyên nghiệp tìm thấy tất cả những gì họ cần để xây dựng các ứng dụng lớn một cách hiệu quả. Hầu như tất cả các mô hình lập trình đều được hỗ trợ; . Những kiểu người dùng này thường xây dựng các khung và lớp của riêng họ, cũng hoạt động trên
2 cơ bản và ngăn xếp khoa học, đồng thời cố gắng tận dụng tối đa hệ sinh tháiIn
[
2
]:
100
*
2.5
+
50
Các nhà phát triển khoa học hoặc chuyên gia miền nói chung là những người sử dụng nhiều thư viện và khung nhất định, đã xây dựng các ứng dụng của riêng họ để nâng cao và tối ưu hóa theo thời gian, đồng thời điều chỉnh hệ sinh thái theo nhu cầu cụ thể của họ. Những nhóm người dùng này cũng thường tham gia vào các phiên tương tác dài hơn, nhanh chóng tạo mẫu mã mới cũng như khám phá và trực quan hóa nghiên cứu và/hoặc bộ dữ liệu miền của họ
Các lập trình viên thông thường thích sử dụng
2 nói chung cho các vấn đề cụ thể mà họ biết rằngIn
[
2
]:
100
*
2.5
+
50
2 có điểm mạnh trong. Ví dụ: truy cập trang thư viện củaIn
[
2
]:
100
*
2.5
+
50
50, sao chép một đoạn mã trực quan nhất định được cung cấp ở đó và điều chỉnh mã theo nhu cầu cụ thể của họ có thể là trường hợp sử dụng có lợi cho các thành viên của nhóm nàyIn
[
2
]:
100
*
2.5
+
50
Ngoài ra còn có một nhóm người dùng
2 quan trọng khác. lập trình viên mới bắt đầu, tôi. e. , những người mới bắt đầu lập trình. Ngày nay,In
[
2
]:
100
*
2.5
+
50
2 đã trở thành một ngôn ngữ rất phổ biến tại các trường đại học, cao đẳng và thậm chí cả các trường phổ thông để giới thiệu cho sinh viên về lập trình. [] Lý do chính cho điều này là cú pháp cơ bản của nó rất dễ học và dễ hiểu, ngay cả đối với những người không phải là nhà phát triển. Ngoài ra, thật hữu ích khiIn
[
2
]:
100
*
2.5
+
50
2 hỗ trợ hầu hết các phong cách lập trình. []In
[
2
]:
100
*
2.5
+
50
Có một bộ thư viện nhất định được gọi chung là ngăn xếp khoa học. Ngăn xếp này bao gồm, trong số những thứ khác, các thư viện sau
54In
[
2
]:
100
*
2.5
+
50
54 cung cấp một đối tượng mảng đa chiều để lưu trữ dữ liệu đồng nhất hoặc không đồng nhất; .In
[
2
]:
100
*
2.5
+
50
56_______456 là một tập hợp các thư viện con và chức năng thực hiện chức năng tiêu chuẩn quan trọng thường cần trong khoa học hoặc tài chính; .In
[
2
]:
100
*
2.5
+
50
50Đây là thư viện trực quan hóa và vẽ sơ đồ phổ biến nhất choIn
[
2
]:
100
*
2.5
+
50
2, cung cấp cả khả năng trực quan hóa 2D và 3D.In
[
2
]:
100
*
2.5
+
50
200In
[
2
]:
100
*
2.5
+
50
200 là trình bao bọc phổ biến cho thư viện lưu trữ dữ liệuIn
[
2
]:
100
*
2.5
+
50
202 [cf. http. //www. hdfgroup. org/HDF5/]; .In
[
2
]:
100
*
2.5
+
50
203In
[
2
]:
100
*
2.5
+
50
203 xây dựng trênIn
[
2
]:
100
*
2.5
+
50
54 và cung cấp các lớp phong phú hơn để quản lý và phân tích chuỗi thời gian và dữ liệu dạng bảng;In
[
2
]:
100
*
2.5
+
50
Tùy thuộc vào miền hoặc vấn đề cụ thể, ngăn xếp này được mở rộng bởi các thư viện bổ sung, thường không có điểm chung là chúng được xây dựng trên một hoặc nhiều thư viện cơ bản này. Tuy nhiên, mẫu số chung nhỏ nhất hoặc khối xây dựng cơ bản nói chung là lớp
54In
[
2
]:
100
*
2.5
+
50
209 [cf. Chương 4]In
[
2
]:
100
*
2.5
+
50
Chỉ lấy
2 làm ngôn ngữ lập trình, có một số ngôn ngữ khác có thể theo kịp cú pháp và sự sang trọng của nó. Ví dụ,In
[
2
]:
100
*
2.5
+
50
211 là một ngôn ngữ khá phổ biến thường được so sánh vớiIn
[
2
]:
100
*
2.5
+
50
2. Trên trang web của ngôn ngữ, bạn tìm thấy mô tả sauIn
[
2
]:
100
*
2.5
+
50
Một ngôn ngữ lập trình nguồn mở, năng động, tập trung vào sự đơn giản và năng suất. Nó có một cú pháp tao nhã, tự nhiên để đọc và dễ viết
Phần lớn những người sử dụng
2 có lẽ cũng sẽ đồng ý với chính xác nhận định tương tự được đưa ra về chínhIn
[
2
]:
100
*
2.5
+
50
2. Tuy nhiên, điều khiến nhiều người dùng khác biệt giữaIn
[
2
]:
100
*
2.5
+
50
2 với các ngôn ngữ hấp dẫn không kém nhưIn
[
2
]:
100
*
2.5
+
50
211 là tính khả dụng của ngăn xếp khoa học. Điều này làm choIn
[
2
]:
100
*
2.5
+
50
2 không chỉ là một ngôn ngữ tốt và tao nhã để sử dụng mà còn là một ngôn ngữ có khả năng thay thế các ngôn ngữ và bộ công cụ dành riêng cho miền nhưIn
[
2
]:
100
*
2.5
+
50
218 hoặcIn
[
2
]:
100
*
2.5
+
50
219. Ngoài ra, theo mặc định, nó cung cấp mọi thứ mà bạn mong đợi, chẳng hạn như với tư cách là nhà phát triển web hoặc quản trị viên hệ thống dày dạn kinh nghiệmIn
[
2
]:
100
*
2.5
+
50
Bây giờ chúng ta đã có một số ý tưởng sơ bộ về tất cả những gì về
2, thật hợp lý khi lùi lại một chút và suy ngẫm ngắn gọn về vai trò của công nghệ trong tài chính. Điều này sẽ giúp chúng ta có thể đánh giá tốt hơn vai trò củaIn
[
2
]:
100
*
2.5
+
50
2 và thậm chí quan trọng hơn, có thể sẽ đóng vai trò trong ngành tài chính trong tương laiIn
[
2
]:
100
*
2.5
+
50
Theo một nghĩa nào đó, bản thân công nghệ không có gì đặc biệt đối với các tổ chức tài chính [chẳng hạn như so với các công ty công nghiệp] hoặc đối với chức năng tài chính [so với các chức năng khác của công ty, như hậu cần]. Tuy nhiên, trong những năm gần đây, được thúc đẩy bởi sự đổi mới và quy định, các ngân hàng và các tổ chức tài chính khác như quỹ phòng hộ ngày càng phát triển thành các công ty công nghệ thay vì chỉ là trung gian tài chính. Công nghệ đã trở thành tài sản lớn đối với hầu hết mọi tổ chức tài chính trên toàn cầu, có khả năng dẫn đến lợi thế cạnh tranh cũng như bất lợi. Một số thông tin cơ bản có thể làm sáng tỏ những lý do cho sự phát triển này
Các ngân hàng và tổ chức tài chính cùng nhau tạo thành ngành công nghiệp chi nhiều nhất cho công nghệ hàng năm. Do đó, tuyên bố sau đây không chỉ chỉ ra rằng công nghệ quan trọng đối với ngành tài chính mà ngành tài chính cũng thực sự quan trọng đối với lĩnh vực công nghệ
Các ngân hàng sẽ chi 4. Theo các nhà phân tích của IDC, tăng 2% cho công nghệ trong năm 2014 so với năm 2013. Các nhà phân tích cho biết tổng chi tiêu CNTT trong các dịch vụ tài chính trên toàn cầu sẽ vượt quá 430 tỷ USD vào năm 2014 và vượt qua 500 tỷ USD vào năm 2020.
Các ngân hàng lớn, đa quốc gia ngày nay thường sử dụng hàng ngàn nhà phát triển để duy trì các hệ thống hiện có và xây dựng các hệ thống mới. Các ngân hàng đầu tư lớn với yêu cầu nặng về công nghệ cho thấy ngân sách dành cho công nghệ thường lên tới vài tỷ USD mỗi năm
Sự phát triển của công nghệ cũng đã góp phần đổi mới và nâng cao hiệu quả trong lĩnh vực tài chính
Đổi mới công nghệ đã góp phần đáng kể vào hiệu quả cao hơn trên thị trường phái sinh. Thông qua những đổi mới trong công nghệ giao dịch, các giao dịch tại Eurex ngày nay được thực hiện nhanh hơn nhiều so với mười năm trước mặc dù khối lượng giao dịch và số lượng báo giá tăng mạnh… Những cải tiến mạnh mẽ này chỉ có được nhờ các khoản đầu tư CNTT cao, liên tục của các sàn giao dịch phái sinh và
— Tập đoàn Deutsche Börse 2008
Là một tác dụng phụ của hiệu quả ngày càng tăng, lợi thế cạnh tranh thường phải được tìm kiếm trong các sản phẩm hoặc giao dịch phức tạp hơn bao giờ hết. Điều này đến lượt nó làm tăng rủi ro và làm cho việc quản lý rủi ro cũng như giám sát và quy định ngày càng khó khăn hơn. Cuộc khủng hoảng tài chính năm 2007 và 2008 kể câu chuyện về những mối nguy hiểm tiềm tàng do những diễn biến đó gây ra. Theo cách tương tự, “thuật toán và máy tính trở nên điên cuồng” cũng thể hiện rủi ro tiềm ẩn đối với thị trường tài chính; . http. // vi. wikipedia. org/wiki/2010_Flash_Crash]
Công nghệ và nhân tài là rào cản gia nhập
Một mặt, tiến bộ công nghệ giảm chi phí theo thời gian, ceteris paribus. Mặt khác, các tổ chức tài chính tiếp tục đầu tư mạnh vào công nghệ để giành thị phần và bảo vệ vị trí hiện tại của họ. Để hoạt động trong một số lĩnh vực tài chính ngày nay thường đòi hỏi phải đầu tư quy mô lớn vào cả công nghệ và đội ngũ nhân viên lành nghề. Ví dụ, hãy xem xét không gian phân tích công cụ phái sinh [xem thêm nghiên cứu điển hình trong Phần III của cuốn sách]
Được tổng hợp trong toàn bộ vòng đời của phần mềm, các công ty áp dụng chiến lược nội bộ để định giá [công cụ phái sinh] OTC sẽ yêu cầu đầu tư từ 25 triệu đến 36 triệu đô la để xây dựng, duy trì và nâng cao thư viện công cụ phái sinh hoàn chỉnh
Không chỉ tốn kém và mất thời gian để xây dựng một thư viện phân tích phái sinh chính thức, mà bạn còn cần có đủ chuyên gia để làm việc đó. Và những chuyên gia này phải có sẵn các công cụ và công nghệ phù hợp để hoàn thành nhiệm vụ của họ
Một câu trích dẫn khác về những ngày đầu của Quản lý vốn dài hạn [LTCM], trước đây là một trong những quỹ phòng hộ định lượng được kính trọng nhất—tuy nhiên, quỹ này đã phá sản vào cuối những năm 1990—tiếp tục hỗ trợ cho hiểu biết sâu sắc này về công nghệ và tài năng
Meriwether đã chi 20 triệu đô la cho một hệ thống máy tính hiện đại và thuê một nhóm kỹ sư tài chính giỏi để điều hành chương trình tại LTCM, công ty đã thành lập cửa hàng ở Greenwich, Connecticut. Đó là quản lý rủi ro ở cấp độ công nghiệp
Sức mạnh tính toán tương tự mà Meriwether phải mua với giá hàng triệu đô la ngày nay có thể có sẵn với giá hàng nghìn đô la. Mặt khác, giao dịch, định giá và quản lý rủi ro đã trở nên phức tạp đối với các tổ chức tài chính lớn hơn đến mức ngày nay họ cần triển khai cơ sở hạ tầng CNTT với hàng chục nghìn lõi máy tính.
Tốc độ, tần suất, khối lượng dữ liệu ngày càng tăng
Có một khía cạnh của ngành tài chính bị ảnh hưởng nhiều nhất bởi những tiến bộ công nghệ. tốc độ và tần suất mà các giao dịch tài chính được quyết định và thực hiện. Cuốn sách gần đây của Lewis [2014] mô tả cái gọi là giao dịch chớp nhoáng—i. e. , giao dịch ở tốc độ cao nhất có thể—chi tiết sống động
Một mặt, việc tăng tính khả dụng của dữ liệu ở quy mô nhỏ hơn bao giờ hết khiến cần phải phản ứng theo thời gian thực. Mặt khác, tốc độ và tần suất giao dịch ngày càng tăng khiến khối lượng dữ liệu tăng thêm. Điều này dẫn đến các quy trình củng cố lẫn nhau và đẩy thang thời gian trung bình cho các giao dịch tài chính xuống một cách có hệ thống
Quỹ Huy chương của Renaissance đã đạt được 80 phần trăm đáng kinh ngạc trong năm 2008, tận dụng sự biến động cực độ của thị trường với các máy tính nhanh như chớp của nó. Jim Simons là người kiếm tiền nhiều nhất thế giới trong năm của quỹ phòng hộ, bỏ túi 2 đô la tuyệt vời. 5 tỷ
Dữ liệu giá cổ phiếu hàng ngày trong 30 năm cho một cổ phiếu đại diện cho khoảng 7.500 báo giá. Loại dữ liệu này là thứ mà hầu hết lý thuyết tài chính ngày nay dựa trên. Ví dụ: các lý thuyết như lý thuyết danh mục đầu tư hiện đại [MPT], mô hình định giá tài sản vốn [CAPM] và rủi ro giá trị [VaR] đều có nền tảng trong dữ liệu giá cổ phiếu hàng ngày
Để so sánh, vào một ngày giao dịch thông thường, giá cổ phiếu của Apple Inc. [AAPL] được trích dẫn khoảng 15.000 lần—số lần trích dẫn nhiều gấp hai lần so với trích dẫn cuối ngày trong khoảng thời gian 30 năm. Điều này mang lại cho nó một số thách thức
Xử lý dữ liệu Việc xem xét và xử lý báo giá cuối ngày đối với cổ phiếu hoặc các công cụ tài chính khác là chưa đủ; . Tốc độ phân tích Các quyết định thường phải được thực hiện trong vài mili giây hoặc thậm chí nhanh hơn, do đó cần phải xây dựng các khả năng phân tích tương ứng và phân tích lượng lớn dữ liệu trong thời gian thực. Cơ sở lý thuyết Mặc dù các lý thuyết và khái niệm tài chính truyền thống còn lâu mới hoàn hảo, nhưng chúng đã được thử nghiệm kỹ lưỡng [và đôi khi cũng bị bác bỏ] theo thời gian;
Tất cả những thách thức này về nguyên tắc chỉ có thể được giải quyết bằng công nghệ hiện đại. Một điều cũng có thể hơi ngạc nhiên là việc thiếu các lý thuyết nhất quán thường được giải quyết bằng các phương pháp công nghệ, trong đó các thuật toán tốc độ cao khai thác các yếu tố cấu trúc vi mô thị trường [e. g. , luồng đặt hàng, chênh lệch giá mua-giá bán] thay vì dựa vào một số lý do tài chính
Có một ngành học có tầm quan trọng tăng mạnh trong ngành tài chính. phân tích tài chính và dữ liệu. Hiện tượng này có mối quan hệ chặt chẽ với hiểu biết sâu sắc rằng tốc độ, tần suất và khối lượng dữ liệu tăng với tốc độ chóng mặt trong ngành. Trên thực tế, phân tích thời gian thực có thể được coi là câu trả lời của ngành cho xu hướng này
Nói một cách đại khái, “phân tích dữ liệu và tài chính” đề cập đến nguyên tắc áp dụng phần mềm và công nghệ kết hợp với các thuật toán và phương pháp [có thể nâng cao] để thu thập, xử lý và phân tích dữ liệu nhằm hiểu rõ hơn, đưa ra quyết định hoặc thực hiện quy định. . Các ví dụ có thể bao gồm ước tính tác động bán hàng do thay đổi cơ cấu giá đối với sản phẩm tài chính trong chi nhánh bán lẻ của ngân hàng. Một ví dụ khác có thể là tính toán điều chỉnh giá trị tín dụng [CVA] qua đêm trên quy mô lớn đối với các danh mục giao dịch phái sinh phức tạp của một ngân hàng đầu tư
Có hai thách thức lớn mà các tổ chức tài chính phải đối mặt trong bối cảnh này
Dữ liệu lớn Các ngân hàng và các tổ chức tài chính khác đã phải xử lý lượng dữ liệu khổng lồ ngay cả trước khi thuật ngữ “dữ liệu lớn” được đặt ra; . Nền kinh tế thời gian thực Trước đây, những người ra quyết định có thể dựa vào các quy trình quản lý, quyết định và [rủi ro] có cấu trúc, thường xuyên, trong khi ngày nay họ phải đối mặt với nhu cầu xử lý các chức năng này trong thời gian thực;
Một lần nữa, người ta có thể quan sát thấy sự tác động lẫn nhau giữa những tiến bộ trong công nghệ và thực tiễn tài chính/kinh doanh. Một mặt, cần phải liên tục cải thiện các phương pháp phân tích về tốc độ và khả năng bằng cách áp dụng các công nghệ hiện đại. Mặt khác, những tiến bộ về mặt công nghệ cho phép các phương pháp phân tích mới được coi là không thể [hoặc không khả thi do hạn chế về ngân sách] cách đây vài năm hoặc thậm chí vài tháng.
Một xu hướng chính trong không gian phân tích là việc sử dụng các kiến trúc song song ở phía CPU [đơn vị xử lý trung tâm] và các kiến trúc song song ồ ạt ở phía GPGPU [đơn vị xử lý đồ họa đa năng]. Các GPGPU hiện tại thường có hơn 1.000 lõi tính toán, đôi khi cần phải suy nghĩ lại triệt để về ý nghĩa của tính song song đối với các thuật toán khác nhau. Điều vẫn còn là một trở ngại trong vấn đề này là người dùng thường phải học các mô hình và kỹ thuật mới để khai thác sức mạnh của phần cứng đó. []
Phần trước mô tả một số khía cạnh chọn lọc đặc trưng cho vai trò của công nghệ trong tài chính
- Chi phí cho công nghệ trong ngành tài chính
- Công nghệ như một yếu tố hỗ trợ cho kinh doanh mới và đổi mới
- Công nghệ và tài năng là rào cản gia nhập ngành tài chính
- Tăng tốc độ, tần số và khối lượng dữ liệu
- Sự gia tăng của phân tích thời gian thực
Trong phần này, chúng tôi muốn phân tích cách
2 có thể giúp giải quyết một số thách thức liên quan đến các khía cạnh này. Nhưng trước tiên, ở cấp độ cơ bản hơn, chúng ta hãy kiểm traIn
[
2
]:
100
*
2.5
+
50
2 về tài chính từ quan điểm ngôn ngữ và cú phápIn
[
2
]:
100
*
2.5
+
50
Cú pháp tài chính và Python
Hầu hết những người thực hiện những bước đầu tiên với
2 trong bối cảnh tài chính có thể tấn công một vấn đề thuật toán. Điều này tương tự như một nhà khoa học, chẳng hạn, muốn giải một phương trình vi phân, muốn đánh giá một tích phân hoặc đơn giản là muốn trực quan hóa một số dữ liệu. Nói chung, ở giai đoạn này, chỉ có rất ít suy nghĩ dành cho các chủ đề như quy trình phát triển chính thức, thử nghiệm, tài liệu hoặc triển khai. Tuy nhiên, điều này đặc biệt có vẻ là giai đoạn mà mọi người yêu thíchIn
[
2
]:
100
*
2.5
+
50
2. Lý do chính cho điều này có thể là cú phápIn
[
2
]:
100
*
2.5
+
50
2 nói chung khá gần với cú pháp toán học được sử dụng để mô tả các vấn đề khoa học hoặc thuật toán tài chínhIn
[
2
]:
100
*
2.5
+
50
Chúng ta có thể minh họa hiện tượng này bằng một thuật toán tài chính đơn giản, cụ thể là định giá quyền chọn mua kiểu Châu Âu bằng mô phỏng Monte Carlo. Chúng tôi sẽ xem xét thiết lập Black-Scholes-Merton [BSM] [xem thêm Chương 3] trong đó yếu tố rủi ro cơ bản của tùy chọn tuân theo chuyển động Brown hình học
Giả sử chúng ta có các giá trị tham số số sau để định giá
- Cấp chỉ số chứng khoán ban đầu S0 = 100
- Giá thực hiện quyền chọn mua kiểu Âu K = 105
- Thời gian đáo hạn T = 1 năm
- Lãi suất ngắn hạn không đổi, không rủi ro r = 5%
- Biến động không đổi 𝜎 = 20%
Trong mô hình BSM, cấp độ chỉ số khi đáo hạn là một biến ngẫu nhiên, được cho bởi Phương trình 1-1 với z là một biến ngẫu nhiên có phân phối chuẩn
Phương trình 1-1. Mức chỉ số Black-Scholes-Merton [1973] khi đáo hạn
Sau đây là mô tả thuật toán của quy trình định giá Monte Carlo
- Vẽ I [giả]các số ngẫu nhiên z[i], i ∈ {1, 2, …, I}, từ phân phối chuẩn chuẩn
- Tính toán tất cả các mức chỉ số kết quả khi đáo hạn ST[i] cho z[i] đã cho và Phương trình 1-1
- Tính tất cả các giá trị bên trong của quyền chọn khi đáo hạn là hT[i] = max[ST[i] – K,0]
- Ước tính giá trị hiện tại của quyền chọn thông qua công cụ ước tính Monte Carlo được đưa ra trong Công thức 1-2
Phương trình 1-2. Công cụ ước tính Monte Carlo cho quyền chọn kiểu Châu Âu
Bây giờ chúng ta sẽ dịch bài toán và thuật toán này sang mã
2. Người đọc có thể làm theo các bước đơn lẻ bằng cách sử dụng, ví dụ,In
[
2
]:
100
*
2.5
+
50
21—tuy nhiên, điều này không thực sự cần thiết ở giai đoạn nàyIn
[
2
]:
100
*
2.5
+
50
Trước tiên, chúng ta hãy bắt đầu với các giá trị tham số. Điều này thực sự dễ dàng
24In
[
2
]:
100
*
2.5
+
50
Tiếp theo, thuật toán định giá. Ở đây, lần đầu tiên chúng tôi sẽ sử dụng
54, điều này làm cho nhiệm vụ thứ hai của chúng tôi trở nên khá dễ dàngIn
[
2
]:
100
*
2.5
+
50
25In
[
2
]:
100
*
2.5
+
50
Thứ ba, chúng tôi in kết quả
26In
[
2
]:
100
*
2.5
+
50
Đầu ra có thể là. []
27In
[
2
]:
100
*
2.5
+
50
Ba khía cạnh đáng làm nổi bật
Cú pháp Cú pháp
2 thực sự khá gần với cú pháp toán học, e. g. , khi nói đến việc gán giá trị tham số. Dịch Mọi câu lệnh toán học và/hoặc thuật toán nói chung có thể được dịch thành một dòng mãIn
[
2
]:
100
*
2.5
+
50
2. VectorizationMột trong những điểm mạnh củaIn
[
2
]:
100
*
2.5
+
50
54 là cú pháp nhỏ gọn, vector hóa, e. g. , cho phép thực hiện 100.000 phép tính trong một dòng mãIn
[
2
]:
100
*
2.5
+
50
Mã này có thể được sử dụng trong môi trường tương tác như
21. Tuy nhiên, mã có nghĩa là được sử dụng lại thường xuyên thường được tổ chức trong cái gọi là mô-đun [hoặc tập lệnh], là mộtIn
[
2
]:
100
*
2.5
+
50
2 [i. e. , văn bản] các tệp có hậu tốIn
[
2
]:
100
*
2.5
+
50
235. Trong trường hợp này, một mô-đun như vậy có thể giống như Ví dụ 1-1 và có thể được lưu dưới dạng tệp có tênIn
[
2
]:
100
*
2.5
+
50
236In
[
2
]:
100
*
2.5
+
50
Ví dụ 1-1. Định giá Monte Carlo về quyền chọn mua kiểu Châu Âu
28In
[
2
]:
100
*
2.5
+
50
Ví dụ thuật toán khá đơn giản trong tiểu mục này minh họa rằng
2, với chính cú pháp của nó, rất phù hợp để bổ sung cho bộ đôi ngôn ngữ khoa học cổ điển, tiếng Anh và Toán học. Có vẻ như việc thêmIn
[
2
]:
100
*
2.5
+
50
2 vào bộ ngôn ngữ khoa học sẽ làm cho nó trở nên tròn trịa hơn. Chúng ta cóIn
[
2
]:
100
*
2.5
+
50
- Tiếng Anh để viết, nói về các vấn đề khoa học và tài chính, v.v.
- Toán học để mô tả và mô hình hóa chính xác và ngắn gọn các khía cạnh trừu tượng, thuật toán, số lượng phức tạp, v.v.
- Python để lập mô hình kỹ thuật và triển khai các khía cạnh trừu tượng, thuật toán, số lượng phức tạp, v.v.
Toán học và Cú pháp Python
Hiếm có ngôn ngữ lập trình nào gần với cú pháp toán học như
2. Do đó, các thuật toán số rất đơn giản để dịch từ biểu diễn toán học sang triển khaiIn
[
2
]:
100
*
2.5
+
50
240. Điều này làm cho việc tạo nguyên mẫu, phát triển và bảo trì mã trong các lĩnh vực như vậy khá hiệu quả vớiIn
[
2
]:
100
*
2.5
+
50
2In
[
2
]:
100
*
2.5
+
50
Ở một số khu vực, thông thường người ta sử dụng mã giả và sau đó giới thiệu thành viên họ ngôn ngữ thứ tư. Ví dụ, vai trò của mã giả là biểu diễn các thuật toán tài chính theo kiểu kỹ thuật hơn, vừa gần với biểu diễn toán học vừa khá gần với triển khai kỹ thuật. Ngoài bản thân thuật toán, mã giả còn tính đến nguyên tắc hoạt động của máy tính
Thực tiễn này thường có nguyên nhân của nó là với hầu hết các ngôn ngữ lập trình, việc triển khai kỹ thuật khá “xa vời” với biểu diễn toán học, chính thức của nó. Phần lớn các ngôn ngữ lập trình bắt buộc phải đưa vào quá nhiều yếu tố chỉ yêu cầu về mặt kỹ thuật nên khó thấy được sự tương đương giữa toán học và mã.
Ngày nay,
2 thường được sử dụng theo cách mã giả vì cú pháp của nó gần giống với toán học và vì “chi phí” kỹ thuật được giữ ở mức tối thiểu. Điều này được thực hiện bởi một số khái niệm cấp cao được thể hiện bằng ngôn ngữ không chỉ có lợi thế mà còn đi kèm với rủi ro và/hoặc các chi phí khác nói chung. Tuy nhiên, có thể nói rằng vớiIn
[
2
]:
100
*
2.5
+
50
2, bất cứ khi nào có nhu cầu, bạn có thể tuân theo cùng một quy trình triển khai và viết mã nghiêm ngặt mà các ngôn ngữ khác có thể yêu cầu ngay từ đầu. Theo nghĩa đó,In
[
2
]:
100
*
2.5
+
50
2 có thể cung cấp những điều tốt nhất của cả hai thế giới. trừu tượng cấp cao và thực hiện nghiêm ngặtIn
[
2
]:
100
*
2.5
+
50
Hiệu quả và năng suất thông qua Python
Ở cấp độ cao, lợi ích từ việc sử dụng
2 có thể được đo lường theo ba chiềuIn
[
2
]:
100
*
2.5
+
50
Hiệu quả Làm thế nào để
2 có thể giúp đạt được kết quả nhanh hơn, tiết kiệm chi phí và tiết kiệm thời gian?. ]?Chất lượngIn
[
2
]:
100
*
2.5
+
50
2 cho phép chúng tôi làm điều gì mà chúng tôi không thể làm với các công nghệ thay thế?In
[
2
]:
100
*
2.5
+
50
Một cuộc thảo luận về các khía cạnh này về bản chất có thể không đầy đủ. Tuy nhiên, nó có thể làm nổi bật một số đối số như một điểm khởi đầu
Một lĩnh vực mà hiệu quả của
2 trở nên khá rõ ràng là phân tích dữ liệu tương tác. Đây là lĩnh vực được hưởng lợi mạnh mẽ từ các công cụ mạnh mẽ nhưIn
[
2
]:
100
*
2.5
+
50
21 và các thư viện nhưIn
[
2
]:
100
*
2.5
+
50
203In
[
2
]:
100
*
2.5
+
50
Hãy xem xét một sinh viên tài chính, đang viết luận văn thạc sĩ và quan tâm đến giá cổ phiếu của Google. Cô ấy muốn phân tích thông tin lịch sử về giá cổ phiếu trong 5 năm để xem mức độ biến động của giá cổ phiếu theo thời gian. Cô ấy muốn tìm bằng chứng cho thấy tính không ổn định, trái ngược với một số giả định điển hình của mô hình, dao động theo thời gian và không phải là hằng số. Kết quả cũng nên được hình dung. Cô ấy chủ yếu phải làm như sau
- Tải xuống dữ liệu giá cổ phiếu của Google từ Web
- Tính độ lệch chuẩn cán của nhật ký trả về [độ biến động]
- Vẽ đồ thị dữ liệu giá cổ phiếu và kết quả
Những nhiệm vụ này phức tạp đến mức cách đây không lâu người ta có thể coi chúng là công việc dành cho các nhà phân tích tài chính chuyên nghiệp. Ngày nay, ngay cả sinh viên tài chính cũng có thể dễ dàng đối phó với những vấn đề như vậy. Hãy để chúng tôi xem chính xác nó hoạt động như thế nào—mà không cần lo lắng về các chi tiết cú pháp ở giai đoạn này [mọi thứ sẽ được giải thích chi tiết trong các chương tiếp theo]
Trước tiên, đảm bảo có sẵn tất cả các thư viện cần thiết
29In
[
2
]:
100
*
2.5
+
50
Thứ hai, truy xuất dữ liệu từ chính Google
30In
[
2
]:
100
*
2.5
+
50
31In
[
2
]:
100
*
2.5
+
50
Thứ ba, thực hiện các phân tích cần thiết cho các biến động
32In
[
2
]:
100
*
2.5
+
50
Thứ tư, vẽ biểu đồ kết quả. Để tạo một biểu đồ nội tuyến, chúng tôi sử dụng lệnh ma thuật
21In
[
2
]:
100
*
2.5
+
50
253 với tùy chọnIn
[
2
]:
100
*
2.5
+
50
254In
[
2
]:
100
*
2.5
+
50
33In
[
2
]:
100
*
2.5
+
50
Hình 1-1 hiển thị kết quả đồ họa của phiên tương tác ngắn này với
21. Có thể coi là gần như tuyệt vời khi bốn dòng mã đủ để thực hiện ba tác vụ khá phức tạp thường gặp trong phân tích tài chính. thu thập dữ liệu, tính toán toán học phức tạp và lặp đi lặp lại và trực quan hóa kết quả. Ví dụ này minh họa rằngIn
[
2
]:
100
*
2.5
+
50
203 giúp làm việc với toàn bộ chuỗi thời gian gần như đơn giản như thực hiện các phép toán trên các số dấu phẩy độngIn
[
2
]:
100
*
2.5
+
50
Hình 1-1. Giá đóng cửa của Google và biến động hàng năm
Được dịch sang bối cảnh tài chính chuyên nghiệp, ví dụ này ngụ ý rằng các nhà phân tích tài chính có thể—khi áp dụng các công cụ và thư viện
2 phù hợp, cung cấp khả năng trừu tượng ở mức độ cao—tập trung vào chính lĩnh vực của họ chứ không phải bản chất kỹ thuật. Các nhà phân tích có thể phản ứng nhanh hơn, cung cấp những hiểu biết có giá trị gần như trong thời gian thực và đảm bảo rằng họ đi trước đối thủ một bước. Ví dụ về hiệu quả tăng lên này có thể dễ dàng chuyển thành các hiệu ứng cuối cùng có thể đo lường đượcIn
[
2
]:
100
*
2.5
+
50
Đảm bảo hiệu suất cao
Nói chung, người ta chấp nhận rằng
2 có cú pháp khá ngắn gọn và nó tương đối hiệu quả để viết mã với. Tuy nhiên, do bản chất củaIn
[
2
]:
100
*
2.5
+
50
2 là một ngôn ngữ được giải thích, vẫn tồn tại định kiến rằngIn
[
2
]:
100
*
2.5
+
50
2 nói chung là quá chậm đối với các tác vụ chuyên sâu về điện toán trong lĩnh vực tài chính. Thật vậy, tùy thuộc vào cách tiếp cận triển khai cụ thể,In
[
2
]:
100
*
2.5
+
50
2 có thể rất chậm. Nhưng nó không nhất thiết phải chậm—nó có thể đạt hiệu suất cao trong hầu hết mọi lĩnh vực ứng dụng. Về nguyên tắc, người ta có thể phân biệt ít nhất ba chiến lược khác nhau để đạt hiệu quả tốt hơnIn
[
2
]:
100
*
2.5
+
50
Mô hình Nói chung, nhiều cách khác nhau có thể dẫn đến cùng một kết quả trong ________ 02, nhưng với các đặc điểm hiệu suất khá khác nhau; . g. , một thư viện cụ thể] có thể cải thiện đáng kể kết quả. Biên dịchNgày nay, có sẵn một số thư viện hiệu suất cung cấp các phiên bản đã biên dịch của các chức năng quan trọng hoặc biên dịch mã
2 tĩnh hoặc động [tại thời điểm chạy hoặc thời gian gọi] thành mã máy, có thể nhanh hơn nhiều; . Song song hóa Nhiều tác vụ tính toán, đặc biệt là trong lĩnh vực tài chính, có thể hưởng lợi rất nhiều từ việc thực thi song song;In
[
2
]:
100
*
2.5
+
50
Tính toán hiệu suất với Python
2 về bản chất không phải là công nghệ điện toán hiệu năng cao. Tuy nhiên,In
[
2
]:
100
*
2.5
+
50
2 đã phát triển thành một nền tảng lý tưởng để tiếp cận các công nghệ hiệu suất hiện tại. Theo nghĩa đó,In
[
2
]:
100
*
2.5
+
50
2 đã trở thành một thứ giống như ngôn ngữ kết dính cho tính toán hiệu suấtIn
[
2
]:
100
*
2.5
+
50
Các chương sau minh họa chi tiết cả ba kỹ thuật. Hiện tại, chúng tôi muốn sử dụng một ví dụ đơn giản nhưng vẫn thực tế, liên quan đến cả ba kỹ thuật
Một nhiệm vụ khá phổ biến trong phân tích tài chính là đánh giá các biểu thức toán học phức tạp trên các dãy số lớn. Để đạt được điều này, bản thân
2 cung cấp mọi thứ cần thiếtIn
[
2
]:
100
*
2.5
+
50
34In
[
2
]:
100
*
2.5
+
50
35In
[
2
]:
100
*
2.5
+
50
Trình thông dịch
2 cần 15 giây trong trường hợp này để đánh giá hàmIn
[
2
]:
100
*
2.5
+
50
272 25.000.000 lầnIn
[
2
]:
100
*
2.5
+
50
Nhiệm vụ tương tự có thể được thực hiện bằng cách sử dụng
54, cung cấp tối ưu hóa [i. e. , được biên dịch sẵn], các hàm để xử lý các hoạt động dựa trên mảng đóIn
[
2
]:
100
*
2.5
+
50
36In
[
2
]:
100
*
2.5
+
50
37In
[
2
]:
100
*
2.5
+
50
Sử dụng
54 giảm đáng kể thời gian thực hiện xuống còn 1. 7 giâyIn
[
2
]:
100
*
2.5
+
50
Tuy nhiên, thậm chí còn có một thư viện dành riêng cho loại nhiệm vụ này. Nó được gọi là
275, dành cho “biểu thức số. ” Ví dụ, nó biên dịch biểu thức để cải thiện hiệu suất của chức năng chung củaIn
[
2
]:
100
*
2.5
+
50
54 bằng cách tránh các bản sao trong bộ nhớ của các mảng trên đường điIn
[
2
]:
100
*
2.5
+
50
38In
[
2
]:
100
*
2.5
+
50
39In
[
2
]:
100
*
2.5
+
50
Sử dụng phương pháp chuyên biệt hơn này giúp giảm thời gian thực hiện xuống còn 1. 2 giây. Tuy nhiên,
275 cũng có các khả năng tích hợp sẵn để thực hiện song song hoạt động tương ứng. Điều này cho phép chúng tôi sử dụng tất cả các luồng có sẵn của CPUIn
[
2
]:
100
*
2.5
+
50
0In
[
2
]:
100
*
2.5
+
50
1In
[
2
]:
100
*
2.5
+
50
Điều này mang lại thời gian thực hiện hơn nữa xuống 0. 5 giây trong trường hợp này, với hai lõi và bốn luồng được sử dụng. Nhìn chung, đây là một cải tiến hiệu suất gấp 30 lần. Đặc biệt, lưu ý rằng loại cải tiến này có thể thực hiện được mà không cần thay đổi vấn đề/thuật toán cơ bản và không cần biết gì về các vấn đề biên dịch và song song hóa. Các khả năng có thể truy cập từ cấp cao ngay cả bởi những người không phải là chuyên gia. Tuy nhiên, tất nhiên, người ta phải nhận thức được những khả năng nào tồn tại
Ví dụ cho thấy rằng
2 cung cấp một số tùy chọn để tận dụng tối đa các tài nguyên hiện có—i. e. , tăng năng suất. Với cách tiếp cận tuần tự, khoảng 21 triệu đánh giá mỗi giây được thực hiện, trong khi cách tiếp cận song song cho phép gần 48 triệu đánh giá mỗi giây—trong trường hợp này chỉ đơn giản bằng cách yêu cầuIn
[
2
]:
100
*
2.5
+
50
2 sử dụng tất cả các luồng CPU có sẵn thay vì chỉ mộtIn
[
2
]:
100
*
2.5
+
50
Từ nguyên mẫu đến sản xuất
Hiệu quả trong phân tích tương tác và hiệu suất khi nói đến tốc độ thực thi chắc chắn là hai lợi ích của
2 cần xem xét. Tuy nhiên, một lợi ích lớn khác của việc sử dụngIn
[
2
]:
100
*
2.5
+
50
2 cho tài chính thoạt nhìn có vẻ tinh vi hơn một chút; . Đó là khả năng sử dụngIn
[
2
]:
100
*
2.5
+
50
2 từ đầu đến cuối, từ nguyên mẫu đến sản xuấtIn
[
2
]:
100
*
2.5
+
50
Thực tiễn ngày nay tại các tổ chức tài chính trên toàn cầu, khi nói đến các quy trình phát triển tài chính, thường được đặc trưng bởi một quy trình hai bước riêng biệt. Một mặt, có các nhà phân tích định lượng [“quants”] chịu trách nhiệm phát triển mô hình và tạo nguyên mẫu kỹ thuật. Họ thích sử dụng các công cụ và môi trường như
218 vàIn
[
2
]:
100
*
2.5
+
50
219 cho phép phát triển ứng dụng tương tác nhanh chóng. Ở giai đoạn nỗ lực phát triển này, các vấn đề như hiệu suất, tính ổn định, quản lý ngoại lệ, tách quyền truy cập dữ liệu và phân tích, trong số những vấn đề khác, không quá quan trọng. Một người chủ yếu tìm kiếm bằng chứng về khái niệm và/hoặc nguyên mẫu thể hiện các tính năng mong muốn chính của thuật toán hoặc toàn bộ ứng dụngIn
[
2
]:
100
*
2.5
+
50
Sau khi nguyên mẫu kết thúc, bộ phận CNTT cùng với các nhà phát triển của họ sẽ tiếp quản và chịu trách nhiệm dịch mã nguyên mẫu hiện có thành mã sản xuất đáng tin cậy, có thể bảo trì và hoạt động hiệu quả. Thông thường, ở giai đoạn này, có một sự thay đổi mô hình trong đó các ngôn ngữ như
285++ hoặcIn
[
2
]:
100
*
2.5
+
50
286 hiện được sử dụng để đáp ứng các yêu cầu sản xuất. Ngoài ra, một quy trình phát triển chính thức với các công cụ chuyên nghiệp, kiểm soát phiên bản, v.v. được áp dụngIn
[
2
]:
100
*
2.5
+
50
Cách tiếp cận hai bước này có một số hậu quả thường không lường trước được
Không hiệu quả Mã nguyên mẫu không thể tái sử dụng; . Các bộ kỹ năng đa dạng Các bộ phận khác nhau thể hiện các bộ kỹ năng khác nhau và sử dụng các ngôn ngữ khác nhau để thực hiện “những điều giống nhau. ”Mã kế thừa Mã có sẵn và phải được duy trì bằng các ngôn ngữ khác nhau, thường sử dụng các kiểu triển khai khác nhau [e. g. , từ quan điểm kiến trúc]
Mặt khác, sử dụng
2 cho phép quy trình từ đầu đến cuối được sắp xếp hợp lý từ các bước tạo nguyên mẫu tương tác đầu tiên đến mã sản xuất có độ tin cậy cao và có thể bảo trì hiệu quả. Việc giao tiếp giữa các phòng ban khác nhau trở nên dễ dàng hơn. Việc đào tạo lực lượng lao động cũng tinh giản hơn ở chỗ chỉ có một ngôn ngữ chính bao quát mọi lĩnh vực xây dựng ứng dụng tài chính. Nó cũng tránh được sự kém hiệu quả và dư thừa vốn có khi sử dụng các công nghệ khác nhau trong các bước khác nhau của quy trình phát triển. Nói chung,In
[
2
]:
100
*
2.5
+
50
2 có thể cung cấp một khung công nghệ nhất quán cho hầu hết các nhiệm vụ trong phát triển ứng dụng tài chính và triển khai thuật toánIn
[
2
]:
100
*
2.5
+
50
2 với tư cách là một ngôn ngữ—nhưng còn hơn thế nữa với tư cách là một hệ sinh thái—là một khuôn khổ công nghệ lý tưởng cho ngành tài chính. Nó được đặc trưng bởi một số lợi ích, chẳng hạn như cú pháp tao nhã, phương pháp phát triển hiệu quả và khả năng sử dụng để tạo mẫu và sản xuất, trong số những lợi ích khác. Với số lượng lớn các thư viện và công cụ có sẵn,In
[
2
]:
100
*
2.5
+
50
2 dường như có câu trả lời cho hầu hết các câu hỏi được đặt ra bởi những phát triển gần đây trong ngành tài chính về phân tích, khối lượng và tần suất dữ liệu, tuân thủ và quy định, cũng như bản thân công nghệ. Nó có khả năng cung cấp một khuôn khổ duy nhất, mạnh mẽ, nhất quán để hợp lý hóa các nỗ lực sản xuất và phát triển từ đầu đến cuối ngay cả giữa các tổ chức tài chính lớn hơnIn
[
2
]:
100
*
2.5
+
50