Building Automated Trading Systems : With an Introduction to Visual C++. NET 2005.

By: Van Vliet, BenjaminMaterial type: TextTextSeries: Financial Market Technology SerPublisher: London : Elsevier Science & Technology, 2007Copyright date: ©2007Description: 1 online resource (331 pages)Content type: text Media type: computer Carrier type: online resourceISBN: 9780080476254Subject(s): Electronic trading of securities | Finance -- Mathematical models | Microsoft .NET | Microsoft Visual C++Genre/Form: Electronic books.Additional physical formats: Print version:: Building Automated Trading Systems : With an Introduction to Visual C++. NET 2005DDC classification: 332.64/20285513 LOC classification: HG4515.95.V36 2007Online resources: Click to View
Contents:
Front Cover -- Building Automated Trading Systems: With an Introduction to Visual C++.NET 2005 -- Copyright Page -- Table of Contents -- Acknowledgments -- CHAPTER 1. Introduction -- 1.1. ISO C++ -- 1.2. Structure of This Book -- Section I: Introduction to Visual C++.NET 2005 -- CHAPTER 2. The .NET Framework -- 2.1. MS Visual Studio 2005 Project Structure -- 2.2. What is C++/CLI? -- 2.3. Why Visual C++.NET? -- 2.4. The VC++.NET Compiler -- 2.5. What About Speed? -- 2.6. The .NET Framework -- 2.7. Sample Code: MessageBox_Example -- 2.8. Sample Code: StringConcat_Example -- 2.9. Sample Code: Debug_Example -- 2.10. Versioning -- 2.11. Summary -- CHAPTER 3. Tracking References -- 3.1. Sample Code: TrackingReference_Example -- 3.2. Sample Code: TemplateFunction_Example -- 3.3. ^Managed Handle -- 3.4. Sample Code: Ref Type_Example -- 3.5. Summary -- CHAPTER 4. Classes and Objects -- 4.1. Abstraction -- 4.2. Encapsulation -- 4.3. Inheritance -- 4.4. Polymorphism -- 4.5. Memory Management in .NET -- 4.6. .NET Types -- 4.7. Unmanaged Types -- 4.8. Mixed Assemblies -- 4.9. Summary -- CHAPTER 5. Reference Types -- 5.1. Sample Code: Ref Type_Example -- 5.2. Delete and Dispose -- 5.3. Finalize -- 5.4. Sample Code: Finalize_Example -- 5.5. Stack Semantics for Ref Types -- 5.6. Nullptr Reference -- 5.7. This is Important -- 5.8. Summary -- CHAPTER 6. Value Types -- 6.1. Sample Code: ValueTypes_Example -- 6.2. Sample Code: PassingValueTypes_Example -- 6.3. Summary -- CHAPTER 7. Unmanaged Objects -- 7.1. Sample Code: UnmanagedObject_Example -- 7.2. Summary -- CHAPTER 8. Composition -- 8.1. Sample Code: Composition_Example -- 8.2. Sample Code: UnmanagedComposition_Example -- 8.3. Sample Code: ManagedComposition_Example -- 8.4. Summary -- CHAPTER 9. Properties -- 9.1. Sample Code: Properties_Example -- 9.2. Summary -- CHAPTER 10. Structures and Enumerations.
10.1. Sample Code: ValueStructure_Example -- 10.2. Sample Code: ReferenceStructure_Example -- 10.3. Sample Code: Enums_Example -- 10.4. Summary -- CHAPTER 11. Inheritance -- 11.1. Access Modifiers -- 11.2. Object Class -- 11.3. Abstract and Sealed Classes -- 11.4. Sample Code: Inheritance_Example -- 11.5. Interfaces -- 11.6. Sample Code: Interface_Example -- 11.7. Runtime Callable Wrapper -- 11.8. Summary -- CHAPTER 12. Converting and Casting -- 12.1. Converting -- 12.2. Sample Code: Convert_Example -- 12.3. Static Casting -- 12.4. Sample Code: StaticCast_Example -- 12.5. Dynamic Casting -- 12.6. Sample Code: DynamicCast_Example -- 12.7. Safe Casting -- 12.8. Sample Code: SafeCast_Example -- 12.9. Summary -- CHAPTER 13. Operator Overloading -- 13.1. Sample Code: OpOverload_Example -- 13.2. Summary -- CHAPTER 14. Delegates and Events -- 14.1. Delegates -- 14.2. Sample Code: Delegates_Example -- 14.3. Multicasting -- 14.4. Sample Code: Multicast_Example -- 14.5. Events -- 14.6. Sample Code: Event_Example -- 14.7. Wrappers -- 14.8. Sample Code: Wrapper_Example -- 14.9. Asynchronous Method Calls -- 14.10. Sample Code: AsynchEvent_Example -- 14.11. Summary -- CHAPTER 15. Arrays -- 15.1. Sample Code: ManagedArray_Example -- 15.2. Sample Code: PassingArrays_Example -- 15.3. Summary -- CHAPTER 16. Generating Random Numbers -- 16.1. Sample Code: Random_Example -- 16.2. Sample Code: StdNormRandom_Example -- 16.3. Summary -- CHAPTER 17. Time and Timers -- 17.1. Sample Code: Milliseconds_Example -- 17.2. Stopwatch -- 17.3. Sample Code: Stopwatch_Example -- 17.4. Timers -- 17.5. Sample Code: FormsTimer_Example -- 17.6. Sample Code: ThreadingTimer_Example -- 17.7. Sample Code: TimersTimer_Example -- 17.8. Summary -- CHAPTER 18. Input and Output Streams -- 18.1. FileStream Class -- 18.2. StreamWriter Class -- 18.3. File and Directory Classes.
18.4. Application Class -- 18.5. FileMode Enumeration -- 18.6. Sample Code: StreamWriter_Example -- 18.7. Sample Code: StreamReader_Example -- 18.8. Summary -- CHAPTER 19. Exception Handling -- 19.1. Sample Code: Exceptions_Example -- 19.2. Catching Unmanaged C++ Types -- 19.3. Summary -- CHAPTER 20. Collections -- 20.1. Sample Code: Hashtable_Example -- 20.2. Sorted List Class -- 20.3. Sample Code: SortedList_Example -- 20.4. Thread Safety -- 20.5. Generics -- 20.6. Sample Code: LinkedList_Example -- 20.7. Sample Code: Generics_Example -- 20.8. Summary -- CHAPTER 21. STL/STL.NET -- 21.1. Sample Code: STL.NET_Example -- 21.2. Sample Code: STL_Example -- 21.3. Summary -- CHAPTER 22. DataSets -- 22.1. Sample Code: DataSet_Example -- 22.2. Rows, DataRowCollections, and DataRows -- 22.3. Summary -- CHAPTER 23. Connecting to Databases -- 23.1. Database Connection -- 23.2. DataAdapter -- 23.3. Sample Code: ADO.NET_Example -- 23.4. Enumerating Through All the Data in a DataSet -- 23.5. Using Excel as a Data Source -- 23.6. Writing XML from a DataSet -- 23.7. Updating a Database with Changes in a Dataset -- 23.8. Retrieving Data with a DataReader -- 23.9. Summary -- CHAPTER 24. Structured Query Language -- 24.1. Data Manipulation Language -- 24.2. Updating a Database with Changes in a DataSet -- 24.3. Data Definition Language -- 24.4. Summary -- CHAPTER 25. XML -- 25.1. Well-Formed XML Documents -- 25.2. Valid XML Documents -- 25.3. XML Schema Documents -- 25.4. Parsers -- 25.5. Sample Code: Traders.xsd -- 25.6. Sample Code: XmlWriter_Example -- 25.7. Sample Code: XmlReader_Example -- 25.8. Summary -- CHAPTER 26. Financial Information Exchange Protocol -- 26.1. XML Protocols in Financial Markets -- 26.2. Overview of FIX -- 26.3. Summary -- CHAPTER 27. Serialization -- 27.1. Serialization_Example -- 27.2. Summary -- CHAPTER 28. Windows Services.
28.1. Sample Code: WindowsService_Example -- 28.2. Summary -- CHAPTER 29. Setup and Installation Packages -- 29.1. Sample Code: Installation_Example -- 29.2. Summary -- Section II: Concurrency -- CHAPTER 30. Threading -- 30.1. Threading Namespace -- 30.2. Sample Code: Thread_Example -- 30.3. Sample Code: ThreadAbort_Example -- 30.4. Thread Priority -- 30.5. Sample Code: ThreadPriority_Example -- 30.6. ThreadState Enumeration -- 30.7. ThreadPool Class -- 30.8. Sample Code: ThreadPool_Example -- 30.9. Updating Forms from Other Threads -- 30.10. Sample Code: FormUpdate_Example -- 30.11. Thread Safety -- 30.12. Summary -- CHAPTER 31. Synchronization Classes -- 31.1. Sample Code: Synchronize_Example -- 31.2. Mutex Class -- 31.3. Example Code: Mutex_Example -- 31.4. Semaphore Class -- 31.5. Sample Code: Semaphore_Example -- 31.6. Monitor Class -- 31.7. Sample Code: Monitor -- 31.8. Summary -- CHAPTER 32. Sockets -- 32.1. Sample Code: SynchronousServer_Example -- 32.2. Sample Code: SynchronousClient_Example -- 32.3. Summary -- Section III: Interoperability and Connectivity -- CHAPTER 33. Marshaling -- 33.1. Marshal Class -- 33.2. Sample Code: StringToCharArray_Example -- 33.3. Summary -- CHAPTER 34. Interior and Pinning Pointers -- 34.1. Sample Code: InteriorPointer_Example -- 34.2. Pinning Pointers -- 34.3. Sample Code: Pinning_Example -- 34.4. Summary -- CHAPTER 35. Connecting to Managed DLLs -- 35.1. Example Code: DLL_Example -- 35.2. Summary -- CHAPTER 36. Connecting to Component Object Model (COM) DLLs with COM Interop -- 36.1. Sample Code: MyCOMLibrary -- 36.2. Sample Code: UsingCOMDLL_Example -- 36.3. Summary -- CHAPTER 37. Connecting to C++ DLLs with Platform Invocation Services -- 37.1. Calling C-Style Functions -- 37.2 Sample Code: MyWin32Library -- 37.3. Sample Code: UsingWin32DLL_Example -- 37.4. Creating Objects.
37.5. Sample Code: MyWin32ClassLibrary -- 37.6. Sample Code: UsingWin32Class_Example -- 37.7. CallingConventionEnumeration -- 37.8. Summary -- CHAPTER 38. Connecting to Excel -- 38.1. Sample Code: ControllingExcel_Example -- 38.2. Sample Code: ExcelChart_Example -- 38.3. Summary -- CHAPTER 39. Connecting to TraderAPI -- 39.1. TraderAPI Overview -- 39.2. FillObj -- 39.3. InstrObjClass -- 39.4. InstrNotifyClass -- 39.5. OrderObj -- 39.6. OrderProfileClass -- 39.7. OrderSetClass -- 39.8. Sample Code: TraderAPIConnection_Example -- 39.9. Summary -- CHAPTER 40. Connecting to XTAPI -- 40.1. Sample Code: XTAPIConnection_Example -- 40.2. Summary -- Section IV: Automated Trading Systems -- CHAPTER 41. Building Trading Systems -- 41.1. Buy vs. Build -- 41.2. Data Mapping -- 41.3. Speed of Development -- 41.4. Ten Things that Affect the Speed of a Trading System -- 41.5. Getting It Right -- 41.6. Logic Leaks -- 41.7. Ten Things that Affect the Profitability of a Trading System -- 41.8. Summary -- CHAPTER 42. K|V Trading System Development Methodology -- 42.1. The Money Document -- 42.2. Research and Document Calculations -- 42.3. Back Test -- 42.4. Implement -- 42.5. Manage Portfolio and Risk -- 42.6. Summary -- CHAPTER 43. Automated Trading System Classes -- 43.1. Instrument Class -- 43.2. Order Class -- 43.3. Order Book -- 43.4. Bracket -- 43.5. Tick -- 43.6. Tick or Bar Collection -- 43.7. Bar -- 43.8. System Manager -- 43.9. Graphical User Interface -- 43.10. Summary -- CHAPTER 44. Single-Threaded, Technical Analysis System -- 44.1. Sample Code: TechincalSystem_Example -- 44.2. Summary -- CHAPTER 45. Producer/Consumer Design Pattern -- 45.1. Sample Code: ProducerConsumer_Example -- 45.2. Summary -- CHAPTER 46. Multithreaded, Statistical Arbitrage System -- 46.1. Sample Code: Spreader_Example -- 46.2. Summary -- 46.3. Conclusion.
Summary: Illustrates how to take quantitative finance methods and implement them in the real-world, real-time, electronic markets using Microsoft's .NET platform.
Tags from this library: No tags from this library for this title. Log in to add tags.
    Average rating: 0.0 (0 votes)
No physical items for this record

Front Cover -- Building Automated Trading Systems: With an Introduction to Visual C++.NET 2005 -- Copyright Page -- Table of Contents -- Acknowledgments -- CHAPTER 1. Introduction -- 1.1. ISO C++ -- 1.2. Structure of This Book -- Section I: Introduction to Visual C++.NET 2005 -- CHAPTER 2. The .NET Framework -- 2.1. MS Visual Studio 2005 Project Structure -- 2.2. What is C++/CLI? -- 2.3. Why Visual C++.NET? -- 2.4. The VC++.NET Compiler -- 2.5. What About Speed? -- 2.6. The .NET Framework -- 2.7. Sample Code: MessageBox_Example -- 2.8. Sample Code: StringConcat_Example -- 2.9. Sample Code: Debug_Example -- 2.10. Versioning -- 2.11. Summary -- CHAPTER 3. Tracking References -- 3.1. Sample Code: TrackingReference_Example -- 3.2. Sample Code: TemplateFunction_Example -- 3.3. ^Managed Handle -- 3.4. Sample Code: Ref Type_Example -- 3.5. Summary -- CHAPTER 4. Classes and Objects -- 4.1. Abstraction -- 4.2. Encapsulation -- 4.3. Inheritance -- 4.4. Polymorphism -- 4.5. Memory Management in .NET -- 4.6. .NET Types -- 4.7. Unmanaged Types -- 4.8. Mixed Assemblies -- 4.9. Summary -- CHAPTER 5. Reference Types -- 5.1. Sample Code: Ref Type_Example -- 5.2. Delete and Dispose -- 5.3. Finalize -- 5.4. Sample Code: Finalize_Example -- 5.5. Stack Semantics for Ref Types -- 5.6. Nullptr Reference -- 5.7. This is Important -- 5.8. Summary -- CHAPTER 6. Value Types -- 6.1. Sample Code: ValueTypes_Example -- 6.2. Sample Code: PassingValueTypes_Example -- 6.3. Summary -- CHAPTER 7. Unmanaged Objects -- 7.1. Sample Code: UnmanagedObject_Example -- 7.2. Summary -- CHAPTER 8. Composition -- 8.1. Sample Code: Composition_Example -- 8.2. Sample Code: UnmanagedComposition_Example -- 8.3. Sample Code: ManagedComposition_Example -- 8.4. Summary -- CHAPTER 9. Properties -- 9.1. Sample Code: Properties_Example -- 9.2. Summary -- CHAPTER 10. Structures and Enumerations.

10.1. Sample Code: ValueStructure_Example -- 10.2. Sample Code: ReferenceStructure_Example -- 10.3. Sample Code: Enums_Example -- 10.4. Summary -- CHAPTER 11. Inheritance -- 11.1. Access Modifiers -- 11.2. Object Class -- 11.3. Abstract and Sealed Classes -- 11.4. Sample Code: Inheritance_Example -- 11.5. Interfaces -- 11.6. Sample Code: Interface_Example -- 11.7. Runtime Callable Wrapper -- 11.8. Summary -- CHAPTER 12. Converting and Casting -- 12.1. Converting -- 12.2. Sample Code: Convert_Example -- 12.3. Static Casting -- 12.4. Sample Code: StaticCast_Example -- 12.5. Dynamic Casting -- 12.6. Sample Code: DynamicCast_Example -- 12.7. Safe Casting -- 12.8. Sample Code: SafeCast_Example -- 12.9. Summary -- CHAPTER 13. Operator Overloading -- 13.1. Sample Code: OpOverload_Example -- 13.2. Summary -- CHAPTER 14. Delegates and Events -- 14.1. Delegates -- 14.2. Sample Code: Delegates_Example -- 14.3. Multicasting -- 14.4. Sample Code: Multicast_Example -- 14.5. Events -- 14.6. Sample Code: Event_Example -- 14.7. Wrappers -- 14.8. Sample Code: Wrapper_Example -- 14.9. Asynchronous Method Calls -- 14.10. Sample Code: AsynchEvent_Example -- 14.11. Summary -- CHAPTER 15. Arrays -- 15.1. Sample Code: ManagedArray_Example -- 15.2. Sample Code: PassingArrays_Example -- 15.3. Summary -- CHAPTER 16. Generating Random Numbers -- 16.1. Sample Code: Random_Example -- 16.2. Sample Code: StdNormRandom_Example -- 16.3. Summary -- CHAPTER 17. Time and Timers -- 17.1. Sample Code: Milliseconds_Example -- 17.2. Stopwatch -- 17.3. Sample Code: Stopwatch_Example -- 17.4. Timers -- 17.5. Sample Code: FormsTimer_Example -- 17.6. Sample Code: ThreadingTimer_Example -- 17.7. Sample Code: TimersTimer_Example -- 17.8. Summary -- CHAPTER 18. Input and Output Streams -- 18.1. FileStream Class -- 18.2. StreamWriter Class -- 18.3. File and Directory Classes.

18.4. Application Class -- 18.5. FileMode Enumeration -- 18.6. Sample Code: StreamWriter_Example -- 18.7. Sample Code: StreamReader_Example -- 18.8. Summary -- CHAPTER 19. Exception Handling -- 19.1. Sample Code: Exceptions_Example -- 19.2. Catching Unmanaged C++ Types -- 19.3. Summary -- CHAPTER 20. Collections -- 20.1. Sample Code: Hashtable_Example -- 20.2. Sorted List Class -- 20.3. Sample Code: SortedList_Example -- 20.4. Thread Safety -- 20.5. Generics -- 20.6. Sample Code: LinkedList_Example -- 20.7. Sample Code: Generics_Example -- 20.8. Summary -- CHAPTER 21. STL/STL.NET -- 21.1. Sample Code: STL.NET_Example -- 21.2. Sample Code: STL_Example -- 21.3. Summary -- CHAPTER 22. DataSets -- 22.1. Sample Code: DataSet_Example -- 22.2. Rows, DataRowCollections, and DataRows -- 22.3. Summary -- CHAPTER 23. Connecting to Databases -- 23.1. Database Connection -- 23.2. DataAdapter -- 23.3. Sample Code: ADO.NET_Example -- 23.4. Enumerating Through All the Data in a DataSet -- 23.5. Using Excel as a Data Source -- 23.6. Writing XML from a DataSet -- 23.7. Updating a Database with Changes in a Dataset -- 23.8. Retrieving Data with a DataReader -- 23.9. Summary -- CHAPTER 24. Structured Query Language -- 24.1. Data Manipulation Language -- 24.2. Updating a Database with Changes in a DataSet -- 24.3. Data Definition Language -- 24.4. Summary -- CHAPTER 25. XML -- 25.1. Well-Formed XML Documents -- 25.2. Valid XML Documents -- 25.3. XML Schema Documents -- 25.4. Parsers -- 25.5. Sample Code: Traders.xsd -- 25.6. Sample Code: XmlWriter_Example -- 25.7. Sample Code: XmlReader_Example -- 25.8. Summary -- CHAPTER 26. Financial Information Exchange Protocol -- 26.1. XML Protocols in Financial Markets -- 26.2. Overview of FIX -- 26.3. Summary -- CHAPTER 27. Serialization -- 27.1. Serialization_Example -- 27.2. Summary -- CHAPTER 28. Windows Services.

28.1. Sample Code: WindowsService_Example -- 28.2. Summary -- CHAPTER 29. Setup and Installation Packages -- 29.1. Sample Code: Installation_Example -- 29.2. Summary -- Section II: Concurrency -- CHAPTER 30. Threading -- 30.1. Threading Namespace -- 30.2. Sample Code: Thread_Example -- 30.3. Sample Code: ThreadAbort_Example -- 30.4. Thread Priority -- 30.5. Sample Code: ThreadPriority_Example -- 30.6. ThreadState Enumeration -- 30.7. ThreadPool Class -- 30.8. Sample Code: ThreadPool_Example -- 30.9. Updating Forms from Other Threads -- 30.10. Sample Code: FormUpdate_Example -- 30.11. Thread Safety -- 30.12. Summary -- CHAPTER 31. Synchronization Classes -- 31.1. Sample Code: Synchronize_Example -- 31.2. Mutex Class -- 31.3. Example Code: Mutex_Example -- 31.4. Semaphore Class -- 31.5. Sample Code: Semaphore_Example -- 31.6. Monitor Class -- 31.7. Sample Code: Monitor -- 31.8. Summary -- CHAPTER 32. Sockets -- 32.1. Sample Code: SynchronousServer_Example -- 32.2. Sample Code: SynchronousClient_Example -- 32.3. Summary -- Section III: Interoperability and Connectivity -- CHAPTER 33. Marshaling -- 33.1. Marshal Class -- 33.2. Sample Code: StringToCharArray_Example -- 33.3. Summary -- CHAPTER 34. Interior and Pinning Pointers -- 34.1. Sample Code: InteriorPointer_Example -- 34.2. Pinning Pointers -- 34.3. Sample Code: Pinning_Example -- 34.4. Summary -- CHAPTER 35. Connecting to Managed DLLs -- 35.1. Example Code: DLL_Example -- 35.2. Summary -- CHAPTER 36. Connecting to Component Object Model (COM) DLLs with COM Interop -- 36.1. Sample Code: MyCOMLibrary -- 36.2. Sample Code: UsingCOMDLL_Example -- 36.3. Summary -- CHAPTER 37. Connecting to C++ DLLs with Platform Invocation Services -- 37.1. Calling C-Style Functions -- 37.2 Sample Code: MyWin32Library -- 37.3. Sample Code: UsingWin32DLL_Example -- 37.4. Creating Objects.

37.5. Sample Code: MyWin32ClassLibrary -- 37.6. Sample Code: UsingWin32Class_Example -- 37.7. CallingConventionEnumeration -- 37.8. Summary -- CHAPTER 38. Connecting to Excel -- 38.1. Sample Code: ControllingExcel_Example -- 38.2. Sample Code: ExcelChart_Example -- 38.3. Summary -- CHAPTER 39. Connecting to TraderAPI -- 39.1. TraderAPI Overview -- 39.2. FillObj -- 39.3. InstrObjClass -- 39.4. InstrNotifyClass -- 39.5. OrderObj -- 39.6. OrderProfileClass -- 39.7. OrderSetClass -- 39.8. Sample Code: TraderAPIConnection_Example -- 39.9. Summary -- CHAPTER 40. Connecting to XTAPI -- 40.1. Sample Code: XTAPIConnection_Example -- 40.2. Summary -- Section IV: Automated Trading Systems -- CHAPTER 41. Building Trading Systems -- 41.1. Buy vs. Build -- 41.2. Data Mapping -- 41.3. Speed of Development -- 41.4. Ten Things that Affect the Speed of a Trading System -- 41.5. Getting It Right -- 41.6. Logic Leaks -- 41.7. Ten Things that Affect the Profitability of a Trading System -- 41.8. Summary -- CHAPTER 42. K|V Trading System Development Methodology -- 42.1. The Money Document -- 42.2. Research and Document Calculations -- 42.3. Back Test -- 42.4. Implement -- 42.5. Manage Portfolio and Risk -- 42.6. Summary -- CHAPTER 43. Automated Trading System Classes -- 43.1. Instrument Class -- 43.2. Order Class -- 43.3. Order Book -- 43.4. Bracket -- 43.5. Tick -- 43.6. Tick or Bar Collection -- 43.7. Bar -- 43.8. System Manager -- 43.9. Graphical User Interface -- 43.10. Summary -- CHAPTER 44. Single-Threaded, Technical Analysis System -- 44.1. Sample Code: TechincalSystem_Example -- 44.2. Summary -- CHAPTER 45. Producer/Consumer Design Pattern -- 45.1. Sample Code: ProducerConsumer_Example -- 45.2. Summary -- CHAPTER 46. Multithreaded, Statistical Arbitrage System -- 46.1. Sample Code: Spreader_Example -- 46.2. Summary -- 46.3. Conclusion.

Illustrates how to take quantitative finance methods and implement them in the real-world, real-time, electronic markets using Microsoft's .NET platform.

Description based on publisher supplied metadata and other sources.

Electronic reproduction. Ann Arbor, Michigan : ProQuest Ebook Central, 2018. Available via World Wide Web. Access may be limited to ProQuest Ebook Central affiliated libraries.

There are no comments on this title.

to post a comment.

Powered by Koha