how to display pdf file in picturebox in c# : Extract text from pdf to excel application SDK tool html wpf asp.net online Financial%20Modeling%20with%20Excel%20and%20VBA7-part497

© 2011   Ben Van Vliet 
71
VI.  MODELING REAL TIME FINANCIAL DATA 
A process is a set of steps that converts inputs into outputs.  There are many 
classifications of processes:  continuous and discrete, stable and non-stable, stationary 
and dynamic, convergent and divergent, cyclical and non-cyclical, linear and non-linear, 
and deterministic and stochastic.  
A stochastic process introduces randomness, to represent uncertainty around a 
central tendency of outcomes.  This uncertainty is represented by a probability 
distribution.  Given an initial state, there are many (maybe infinite!) sequences or paths a 
stochastic process could potentially generate.  In a discrete time case, a stochastic process 
is what we call a time series.  A stochastic process is said to be stationary if its 
probability distribution does not change over time.  That is, if the probability distribution 
is normal, for example, then the mean and variance do not change over time.  Sometimes, 
we may manipulate a set of financial data in an attempt to force stationarity.   
A time series is a sequence of data where each sample or measurement occurs at a 
consistent time interval.  Now, financial data is not generated by a process; it is generated 
by the interplay of buyers and sellers, supply and demand.  But, we do attempt to model 
financial data with mathematical processes to aid in valuation and forecasting.     
There are many such models.  Some of the widely known models are:  
autoregressive (AR) models, moving average (MA) models, autoregressive moving 
average (ARMA), auto-regressive integrated moving average (ARIMA) models, and non-
linear models such as autoregressive conditional heteroskedasticity (ARCH) and the 
GARCH family of models.  
A diffusion process is a continuous-time Markov process that produces 
continuous random sequences, called sample paths.  A stochastic differential equation 
(SDE) is a differential equation that includes at least one stochastic process, so that SDEs 
incorporate random movement, sometimes called noise, around a central tendency. 
A martingale is a stochastic process where the expected value of a sample x
t
, (i.e. 
at time t, given all prior samples up to x
t-1
), is equal to x
t-1
.  A discrete-time martingale 
satisfies: 
t
t
t
x
x
x
E x
=
+
)
,...,
|
(
1
1
A random-walk process is sometimes modeled as a Markov chain, where the past, 
present, and future states of a random variable are all independent.  Thus, in a Markov 
process: 
)
|
(
)
,...,
,
|
(
1
2
2
1
1
1
n
n
n
n
n
x
x
x X
P X
x
X
x
x X
x X
P X
=
=
=
=
=
=
=
+
+
A stochastic process is a Markov process if the conditional probability distribution of 
future states depends solely upon the present state and is, therefore, independent of all 
prior states. 
A continuous-time stochastic process is a Levy process if it starts at 0, contains 
jumps (which will be described later) and has stationary and independent increments.  By 
stationary, we mean that the probability distribution of any segment of the random 
sequence, x
T
− x
t
depends only upon the length of the time interval T − t.  So, increments 
with equally long intervals must be identically distributed.  A Wiener process is a 
continuous-time stochastic process where x
T
− x
t
is normally distributed with µ = 0 and 
σ
2
= T − t.   
Extract text from pdf to excel - extract text content from PDF file in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Feel Free to Extract Text from PDF Page, Page Region or the Whole PDF File
copy pdf text to word; .net extract pdf text
Extract text from pdf to excel - VB.NET PDF Text Extract Library: extract text content from PDF file in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
How to Extract Text from PDF with VB.NET Sample Codes in .NET Application
extract text from pdf acrobat; can't copy and paste text from pdf
© 2011   Ben Van Vliet 
72
Brownian motion is another continuous-time stochastic process useful for 
modeling the prices of stocks and other financial instruments.  In Brownian motion, the 
expected value of the next price is equal to the last price.  Geometric Brownian motion is 
a continuous-time stochastic process where the logarithm of the random variable follows 
Brownian motion.  It is also called a Wiener process.   A stochastic process S
t
is to be 
geometric Brownian motion if it satisfies the following stochastic differential equation: 
t
t
t
t
SdW
Sdt
dS
σ
μ
+
=
where 
W
t
is a Wiener process and 
μ
is the drift rate and 
σ 
the volatility.  For an initial 
value S
0
the equation we can find a random value at some time t in the future: 
t
t W
t
Se
S
σ
μ σ
+
=
/2)
(
0
2
Where S
t
is a log-normally distributed with expected value: 
t
t
S e
S
μ
0
( )
=
Ε
and variance: 
1)
(
2
2 2
0
2
=
t
t
S
e
S e
t
σ
μ
σ
This conclusion can be verified using Itō's lemma, where the continuous rate of return r = 
ln(S
t
/S
0
) is normally distributed.  A Wiener process W
t
has independent, normally 
distributed changes such that:  
~ (0, , )
0
t
N
W
W
W
t
t
=
(1) 
That is, the expected value and variance of a Wiener process is: 
( ) ) 0
=
t
EW
and  
t
VW
t
( )=
(
(2) 
This variance is important because is shows that the standard deviation is the square root 
of t, and so it is that stock volatility scales with the square root of time.   
The following proof shows the connection to between μdt from geometric 
Brownian motion and the normally distributed, continuously compounding drift term ( μ - 
½ · σ
2
) · t.  Given the assumption that stock price follows geometric Brownian motion, 
with Wiener process W: 
)
(
0
t
t
t
t
dW
dt
S
dS
S S
σ
μ
+
=
=
(3) 
This says that the change in the price of the stock is equal to the price of the stock times a 
mean drift rate times the change in time plus the standard deviation times some random 
variable.   
The reason we use geometric Brownian motion to model stock price paths is because 
it encapsulates two widely observed phenomena in financial markets: 
1.
The long term trends of markets, represented by the mean term. 
VB.NET Create PDF from Excel Library to convert xlsx, xls to PDF
Editor; C#: WPF PDF Viewer; C#: Create PDF from Word; C#: Create PDF from Excel; PDF; C# Page: Insert PDF pages; C# Page: Delete PDF pages; C# Read: PDF Text Extract
erase text from pdf; copy and paste text from pdf to word
C# PDF Image Extract Library: Select, copy, paste PDF images in C#
Image: Extract Image from PDF. |. Home ›› XDoc.PDF ›› C# PDF: Extract PDF Image. How to C#: Extract Image from PDF Document.
copy and paste text from pdf to excel; extract text from pdf online
© 2011   Ben Van Vliet 
73
2.
The white noise or random price movements or volatility around the trend, 
represented by the standard deviation term, which scales with the square 
root of time. 
C# Create PDF from Excel Library to convert xlsx, xls to PDF in C#
Create PDF from Excel. |. Home ›› XDoc.PDF ›› C# PDF: Create PDF from Excel. Export PDF from Excel with cell border or no border.
copy pdf text to word with formatting; copy text from pdf in preview
VB.NET PDF Image Extract Library: Select, copy, paste PDF images
Image: Extract Image from PDF. |. Home ›› XDoc.PDF ›› VB.NET PDF: Extract PDF Image. VB.NET PDF - Extract Image from PDF Document in VB.NET.
copy paste text pdf; delete text from pdf with acrobat
© 2011   Ben Van Vliet 
74
A. 
Financial Market Data 
Exchanges provide for continuous quoting of bids and offers in shares or contracts listed on the 
exchange.  From an automated trading perspective, a full quote consists of seven things:  the 
symbol, the quantity on the highest bid price, the highest bid price, the lowest ask price, the 
quantity on the lowest ask price, the last price traded, and the quantity of the last trade (or the sum 
of the quantities of the consecutive trades on that price). 
Symbol 
Bid Qty 
Bid Price 
Ask Price 
Ask Qty 
Last Price 
Last Qty 
ES 
195 
125025 
125050 
456 
125025 
33 
Quote 1 
TICK 
The term tick has different meanings in finance.  The tick size is the minimum price 
increment—the minimum bid-ask spread—that is the difference between the highest bid 
and the lowest offer.  In the example above the inside market (i.e. the highest bid and 
lowest ask) is 1250.25 to 1250.50, where the tick size is .25.  The value of the minimum 
tick increment is not, in fact 25 cents; the contract size is much larger.  In this sense, if a 
trader makes a tick profit on a trade, he has made .25 of a point.  For the S&P 500 E-mini 
contract the value of a tick is $12.50.  The whole-point value is often referred to as the 
handle.  In the above example, 1250 is the handle.  If the contract increases to 1254, we 
say the price is up four handles.  In the case of this contract, a tick is a quarter handle. 
A tick—as in tick data or uptick or downtick—refers to trade that has occurred on 
an exchange as been broadcasted to market particpants.   In Quote 1 above, a tick would 
be reflected by a change in the Last Price and Last Qty fields.  A days worth of tick data 
would contain all the information about all the trades that occurred that day.  A tick in 
this sense contains at least four things: 
Ticker symbol 
Price 
Volume or quantity 
Time 
Now, some of these data elements may be represented by a value, by a change from the 
previous value, or by a predefined increment.  For example, given data representing a 
trade as follows: 
Ticker Symbol 
Price 
Quantity 
Time 
ES 
125025 
33 
13:43:12.100 
Trade 1 
Then, to save bandwidth, the next tick may show the trade data in an abbreviated format: 
Ticker Symbol 
Price 
Quantity 
Time 
ES 
-1 
10 
12 
Trade 2 
C# HTML5 Viewer: Load, View, Convert, Annotate and Edit Excel
freely implement conversion from Excel document to PDF, Tiff and HTML file. Users can add annotations to Excel when viewing it online and use text search and
copy text from pdf; extract text from pdf with formatting
C# PDF insert text Library: insert text into PDF content in C#.net
Text to PDF. C#.NET PDF SDK - Insert Text to PDF Document in C#.NET. Providing C# Demo Code for Adding and Inserting Text to PDF File Page with .NET PDF Library.
copy paste pdf text; copying text from pdf into word
© 2011   Ben Van Vliet 
75
The new price of the new trade is 125000, because -1 means subtract 1 increment (e.g. 
.25) from the previous price.  The time of the trade is 13:43:12.112, the time of the 
previous trade plus 12 milliseconds. 
C# PDF Page Extract Library: copy, paste, cut PDF pages in C#.net
Page: Extract, Copy and Paste PDF Pages. Easy to Use C# Code to Extract PDF Pages, Copy Pages from One PDF File and Paste into Others in C#.NET Program.
copy text pdf; c# extract text from pdf
C# PDF Convert to Text SDK: Convert PDF to txt files in C#.net
Integrate following RasterEdge C#.NET text to PDF converter SDK dlls into your C#.NET project assemblies; RasterEdge.XDoc.Excel.dll.
delete text from pdf acrobat; cut text from pdf document
© 2011   Ben Van Vliet 
76
B. 
Modeling Tick Data
The goal is to simulate the arrival of tick data.  Clearly, there are 3 stochastic processes at 
work:  the price, the quantity, and the arrival time interval.  To do this, we will use the 
exponential distribution to simulate the inter-arrival times of new ticks.  We will use a 
trinomial distribution to simulate price movements—up, down, or sideways.  And, we 
will use an empirical distribution to simulate quantities. 
VBA: 
Function deMoivre( p As Double, q As Double ) As Double 
Dim us As Double 
us = Rnd() 
Dim v As Double 
Select Case us 
Case Is < p 
v = 1 
Case p To p + q 
v = -1 
Case p + q To 1.0 
v = 0 
End Select 
deMoivre = v 
End Function 
Function Exponential( beta As Double ) As Double 
Exponential = Int(-beta * Log(1 - Rnd()) * 1000 + 1) 
End Function 
Function Empirical() As Double 
Dim us As Double 
us = Rnd() 
Dim v As Double 
Select Case us 
Case Is < 0.4 
v = 100 
Case 0.4 To 0.5 
v = 200 
© 2011   Ben Van Vliet 
77
Case 0.5 To 0.6 
v = 300 
Case 0.6 To 0.7 
v = 400 
Case 0.7 To 0.8 
v = 500 
Case 0.8 To 0.9 
v = 1000 
Case 0.9 To 0.925 
v = 1500 
Case 0.925 To 0.95 
v = 2000 
Case 0.95 To 0.975 
v = 5000 
Case 0.975 To 1 
v = 10000 
End Select 
Empirical = v 
End Function 
The initial time is 0, the initial price 50.00, and the initial quantity is 0.  The Excel 
formula to generate millisecond arrival intervals is: 
=Exponential( 0.5 ) 
The Excel formula to generate price movements is: 
=B3 + deMoivre( 0.333, 0.333 ) * 0.01 
The Excel formula to generate random quantity: 
=Empirical() 
These formulae generated the following random tick data: 
Times 
Price 
Qty 
0
50.00
0
667
50.00
300
1018
49.99
100
38
49.99
1000
84
49.98
100
651
49.98
2000
1599
49.98
100
© 2011   Ben Van Vliet 
78
47
49.98
300
100
49.97
100
861
49.96
100
287
49.97
100
68
49.98
500
95
49.97
100
503
49.96
200
The tick data produces the following chart: 
49.70
49.75
49.80
49.85
49.90
49.95
50.00
50.05
50.10
50.15
50.20
1
61 121 181 241 301 361 421 481 541 601 661 721 781 841 901 961
Random Tick Data 
Now, what we would like to do is convert the random tick data (with random inter-arrival 
times) into a time series of bars (with constant time intervals), where a bar contains four 
data elements over the time interval: 
Open Price 
High Price 
Low Price 
Closing Price 
Using the tick data, there are a random number of ticks that occur over each one minute 
interval.  (The number of ticks per interval follows a Poisson distribution.)  By summing 
the inter-arrival times until the minute is over, i.e. Σ Times > 60000, we can find the 
Excel range of the ticks that occurred in that minute.  The bar data is then: 
Open Price = first price in the range 
High Price = MAX( range ) 
Low Price = MIN( range ) 
Closing Price = last price of the range 
The tick data generated the following bars: 
Open 
High 
Low 
Close 
© 2011   Ben Van Vliet 
79
50.00
50.09
50.05
50.07
50.06
50.29
50.01
50.24
50.23
50.23
50.06
50.10
50.11
50.13
50.03
50.09
50.08
50.23
50.08
50.21
50.21
50.27
50.14
50.20
50.20
50.24
50.10
50.11
50.10
50.24
50.08
50.22
50.21
50.35
50.20
50.35
The bar data produces the following chart: 
49.80
49.90
50.00
50.10
50.20
50.30
50.40
1
2
3
4
5
6
7
8
9
Bar Data 
This data can be used to find the continuous returns for each minute interval as per: 
)
ln(
1
=
i
i
i
P P
r
Where P
i
equals the closing price for minute i. 
Close 
Returns
50.07 
50.24 
0.0034 
50.10 
-0.0028 
50.09 
-0.0002 
50.21 
0.0024 
50.20 
-0.0002 
50.11 
-0.0018 
50.22 
0.0022 
50.35 
0.0026 
© 2011   Ben Van Vliet 
80
These rates of return, r, are approximately normally distributed: 
~ ( ( , , )
2
μσ
r N
To demonstrate the approximation of returns to normality, we need to generate a lot more 
than 10 returns.  The following code will generate around 250 bars. 
Option Explicit 
Option Base 1 
Public Type Tick 
Time As Double 
Price As Double 
Quantity As Double 
End Type 
Sub Run_Simulation() 
Application.ScreenUpdating = False 
Randomize 
Dim ticks(30000) As Tick 
Dim p As Double 
p = 50 
Dim i As Integer 
Dim j As Integer 
''''''''''''''''''''''''' 
'' Create random ticks '' 
''''''''''''''''''''''''' 
For i = 1 To 30000 
ticks(i).Time = Exponential(0.5) 
ticks(i).Price = p + deMoivre(0.333, 0.333) * 0.01 
ticks(i).Quantity = Empirical() 
p = ticks(i).Price 
Next i 
'''''''''''''''''''''''''''' 
'' Create bars from ticks '' 
'''''''''''''''''''''''''''' 
Range("A1").value = "Open" 
Range("B1").value = "High" 
Range("C1").value = "Low" 
Range("D1").value = "Close" 
Dim count As Double 
Dim cursor As Double 
Dim time_sum As Double 
Documents you may be interested
Documents you may be interested