#source("Poissonsimulation.R")

lambda<-1

fixednojumps<-FALSE
fixedtmax<-!fixednojumps

if(fixednojumps==T)
{
m<-50
x<-rexp(m,lambda)
tau<-cumsum(x)
Po<-0:m
}

if(fixedtmax==T)
{
tmax<-10
tau<-rexp(1,lambda)
while(max(tau)<tmax)tau<-c(tau,max(tau)+rexp(1,lambda))
m<-length(tau)
tau[m]<-tmax
Po<-c(0:(m-1),(m-1))
}

par(mfrow=c(1,1))

MGafter<-(Po[2:(m+1)]-lambda*tau)/sqrt(lambda)
MGbefore<-(Po[1:m]-lambda*tau)/sqrt(lambda)

par(pch=21)



plot(c(0,tau[1]),c(0,-lambda*tau[1]/sqrt(lambda)),xlim=c(0,tau[m]),ylim=c(min(MGbefore),max(max(MGafter),0)),xlab="time",ylab="(X(t) - lambda*t)/sqrt(lambda)",main="The Poisson martingale",type="o")

points(0,0,pch=19)

for(j in 2:(m+1)){


points(c(tau[j-1],tau[j]),c((Po[j]-lambda*tau[j-1])/sqrt(lambda),(Po[j]-lambda*tau[j])/sqrt(lambda)),type='o')
if(j!=(m+1) | fixednojumps==T ) points(c(tau[j-1]),c((Po[j]-lambda*tau[j-1])/sqrt(lambda)),pch=19)

}



