On building an integrated QuantLib/Lua platform on the world's most popular computer.
Friday, July 19, 2013
Discount to $1.99
You get the full package.
Thursday, July 4, 2013
Introduction to downloading financial data added
Saturday, June 22, 2013
Six Reasons to get QuantLua
Here are 6 good reasons why you want to get QuantLua.
1. The graphics are impressive. What other app allows you construct your own plots to analyze various aspects of the stock market? You are not constrained by the graphs provided, you can take the examples provided and make them suit you.
2. There are many functions at your disposal, and many more to come. QuantLua is built on two well tested pillars, Lua and QuantLib. Lua is a full fledged programming language with features not found in other languages. QuantLib is a powerful computational finance library providing with lots of functionality. If you do not find the function you need, you can create it yourself or ask.
3. It is fun and educational. The stock simulator can be used to teach about how the stock market works. It can be used as game to test how good a trader you are (or were) compared to your friends.
4. It is cheap. There is no other program on any platform with as much functionality as QuantLua at such a low low price. Only custom built platforms costing tons of money can provide such functionality.
5. You are in control. We have provided examples of what you can do, but ultimately you are not hemmed in by our examples. You can try your own ideas, including things we have never imagined.
6. There is support. QuantLib has a very strong online community where you can learn more on how to use it. Lua has been around for a very long time and has gathered a huge following due to its versatility. As always, we are always here to help.
So don't hesitate: head over to the iTunes App store and grab yourself a copy
Introduction to the plot command.
This is one of the most important commands as it enables you to create a wide range of plots.
Thursday, June 20, 2013
Discount for a limited time.
Hurry while offer lasts!
Friday, June 14, 2013
QuantLua now approved for the iTunes App store.
The app is available here
QuantLua is the most comprehensive financial application available for the iPhone. It has these main features:
-A programmable historical stock simulator for select US stocks
-The most comprehensive finance calculator available, incorporating the QuantLib quantitative finance library and the programming language Lua.
-Excellent graphics library for building your own plots. It includes line graphs, bar graphs and pie charts.
The historical stock market simulator is for select US stocks. It enables you to build a portfolio and see how the strategy would have performed over time. It is also fully programmable, enabling the analysis of dynamic strategies.
Also included is a historical stock and currency data feed. This imports stock data from Yahoo Finance and currency data from OANDA directly into the Lua programming engine.
All this is powered by Lua, an intuitive and complete programming language well suited to financial analysis.
Tuesday, June 11, 2013
Small fix for an example script
Friday, June 7, 2013
Thursday, April 11, 2013
Call for testers!
Hurry! Space is limited (by Apple)
Monday, April 8, 2013
Sunday, March 24, 2013
iPhone 5 and instruction manual
Also put up a draft of the instruction manual.
Sunday, February 3, 2013
Feature list.
1. A programmable simulation engine using historical stock prices
2. A comprehensive calculator with the following
a. Programmable in Lua, a stable mature language well suited to financial calculations.
b. Full access to the QuantLib financial library
c. Extensive graphics capabilities, including line graphs, pie charts, bar graphs.
d. Access to historical stock and currency data
Thursday, January 31, 2013
Running two historical simulations
The code for the first simulation:
local s=stock("ibm")
local p=currpf()
if s:price(-1)>s:price() and p/s<10 then
_=p+10*s
end
if s:price(-1) <s:price() and p/s>0 then
_=p-10*s
end
This code is run daily and does the following: Buy 10 IBM stock if yesterday's price is higher than today, otherwise sell if yesterday's price is lower. This is essentially bucking the trend. This is the blue line.
The second simulation does the opposite (this is the red line):
local s=stock("ibm")
local P=currpf()
if s:price()>s:price(-1) and P/s<10 then
_=P+10*s
end
if s:price()<s:price(-1) and P/s>0 then
_=P-10*s
end
The results of the simulation are in the graph below:
A note on the code.
A stock object is created simply by saying 'stock(symbolstring)' e.g. 'stock("ibm")'. Adding or subtracting assets to a portfolio is done by a regular +, so the line
_=P+10*s
simply adds ten shares of s to the portfolio P.
Dividing a portfolio by a stock give a count of how many shares are in that portfolio.
P/s is the count of the number of share in P.
Sunday, January 27, 2013
2012 video showing graphics capabilities
Saturday, October 8, 2011
Sunday, January 23, 2011
Reading Yahoo/Fed data directly
Friday, January 7, 2011
Thursday, January 6, 2011
Pricing a bond using QuantLib/Lua
Sunday, December 5, 2010
A sample Lua/QuantLib program
-- Mostly ripped from Python European Example
-- makes life a little simpler
QL=QuantLib
Date=QL.Date
tD=Date(15,QuantLib.May,1998)
sD=Date(17,QuantLib.May,1998)
QL.Settings_instance():setEvaluationDate(tD)
print(QL.Settings_instance():getEvaluationDate())
riskFreeRate = QL.FlatForward(sD, 0.05, QL.Actual365Fixed())
exercise = QL.EuropeanExercise(Date(17,5,1999))
payoff = QL.PlainVanillaPayoff(QL.Option_Call, 8.0)
underlying = QL.SimpleQuote(7.0)
volatility = QL.BlackConstantVol(tD, QL.TARGET(), 0.10, QL.Actual365Fixed())
dividendYield = QL.FlatForward(sD, 0.05, QL.Actual365Fixed())
process = QL.BlackScholesMertonProcess(QL.QuoteHandle(underlying),QL.YieldTermStructureHandle(dividendYield),QL.YieldTermStructureHandle(riskFreeRate),QL.BlackVolTermStructureHandle(volatility))
option = QL.VanillaOption(payoff, exercise)
option:setPricingEngine(QL.AnalyticEuropeanEngine(process))
-- Analytic
print ("Analytic Price",option:NPV())
-- Finite Difference
-- method: finite differences
timeSteps = 801
gridPoints = 800
option:setPricingEngine(QL.FDEuropeanEngine(process,timeSteps,gridPoints))
print("finite diff.",option:NPV())