TY - BOOK AU - Washington,Timothy TI - Clojure for finance: leverage the power and flexibility of the Clojure language for finance T2 - Community experience distilled SN - 9781785287619 AV - QA76.73.C565 U1 - 332.0285 23 PY - 2016/// CY - Birmingham, UK PB - Packt Publishing KW - Finance KW - Data processing KW - Clojure (Computer program language) KW - Functional programming (Computer science) KW - Finances KW - Informatique KW - Clojure (Langage de programmation) KW - Programmation fonctionnelle KW - BUSINESS & ECONOMICS KW - bisacsh KW - fast KW - Electronic books N1 - Includes index; Cover; Copyright; Credits; About the Author; About the Reviewers; www.PacktPub.com; Table of Contents; Preface; Chapter 1: Orientation -- Addressing the Questions Clojure Answers; Chapter 2: First Principles and a Useful Way to Think; Chapter 3: Developing the Simple Moving Average; Chapter 4: Strategies for Calculating and Manipulating Data; Chapter 5: Traversing Data, Branching, and Conditional Dispatch; Chapter 6: Surveying the Landscape; Chapter 7: Dealing with Side Effects; Chapter 8: Strategies for Using Macros; Chapter 9: Building Algorithms -- Strategies to Manipulate and Compose FunctionsIndex; Notions of computation; Notions of finance; Concrete types of computation; Tooling; A first look at Clojure's core functions; Summary; Modeling stock price activity; Function evaluation; First-class functions; Lazy evaluation; Basic Clojure functions and immutability; Namespaces and creating our first function; Basic data structures; Summary; Perception and representation; Knowing the data input; Knowing the data output; Reasoning about the equation needed to achieve our output; Understanding Vars and bindingsWorking with lazy sequences; Implementing our equation; Destructuring; Summary; Our first refactor -- the price list; The exponential moving average; The Bollinger Bands; Summary; Our second refactor -- the generate prices function; Polynomial expressions; A sine wave; Stitching the pieces together; Surveying the function landscape; First order functions; Applying functions; Summary; Scalar data types; Numbers and precision; A review of collections; Data transformation patterns and principles; Clojure's model of state and identity; Introducing side effects; Concurrency and parallelismType systems; Comparing Clojure with object orientation; Comparing Clojure with FP and strong typing; Summary; Simple writing; Extensible Data Notation; Devising a persistence strategy; Consuming from a data stream; Using a componentized architecture; Summary; Simple reading; Functions for querying a system; Separate OR AND lookups; Deriving a query language using macros; Summary; Structuring our data for further analysis; A third refactor of the analytic functions; Signals using moving averages; The Relative Strength Index; Bollinger Band signals; Summary; PrimitivesCollections; The Read-Eval-Print-Loop; Macros and more in-depth data transformation; Elaborating our equation; Traversing data; Branching and conditional dispatch; An example of a regular expression; A basic lookup; Flattening structures; A more expressive lookup; A simple query language; Variable argument functions; The :pre and :post function conditions; The juxt higher order function N2 - Leverage the power and flexibility of the Clojure language for financeAbout This Book Apply the Clojure programming language in financial analytics and to build financial applications Work with high-level mathematical abstractions without having to implement low-level code for financial operations. This is a practical tutorial that takes you through real-world examples of financial analytics and applications with ClojureWho This Book Is ForIf you're a finance professional who is currently using VBA (Excel) to perform financial calculations and quantitative analysis, and would like to use Clojure instead to improve their efficiency, then this book is for you. Basic knowledge of financial concepts is essential. Basic programming knowledge would also be an added advantage. What You Will Learn Quickly and effectively represent data and calculations using Clojure Use Clojure's basic language tools such as laziness, immutability, and firstclass functions to solve real-world problems Explore mathematical derivatives to generate different wave forms Get acquainted with the advanced approaches to calculating and transforming data, and building algorithms Use Clojure's functions to access, update, and compose data structures Be introduced to the concept of sideeffecting behavior and the different ways to handle it Compose simple and exponential functions together to get a buy or sell signalIn DetailClojure is a dynamic programming language with an emphasis on functional programming. Clojure is well suited to financial modeling as it is a functional programming language. Such languages help developers work with high-level mathematical abstractions without having to implement low-level code that handles the arithmetic operations. Starting with the importance of representing data and calculations effectively, this book will take you all the way to being competent in financial analytics and building financial applications. First, we introduce the notions of computation and finance, which will help you understand Clojure's utility to solve real-world problems in many domains, especially finance. Next, we will show you how to develop the simple-moving-average function by using the more advanced partition Clojure data transformation function. This function, along with others, will be used to calculate and manipulate data. You will then learn to implement slightly more complicated equations, how to traverse data, and deal with branching and conditional dispatch. Then, the concept of side-effecting and its various approaches are introduced, along with the strategy of how to use data as the interface to other systems. Finally, you will discover how to build algorithms while manipulating and composing functions. Style and approachThis book is a practical step-by-step tutorial that provides a basic overview of the concepts but focuses on providing the skills required to analyze data UR - https://search.ebscohost.com/login.aspx?direct=true&scope=site&db=nlebk&AN=1141377 ER -