나는 트레이더와 그 동작을 시뮬레이트하고 플롯 (plot) 문에서 반복되는 점을 없애려고합니다. 이 작업을 수행하는 가장 좋은 방법은 무엇입니까? 즉, ninterval >1
에 대해 나는 포인트가 반복되는 플롯을 계속 얻는다. 플롯을 생성하는플롯에서 반복되는 점 제거하기
f1 <- function(n,m,priceinitial,delta,mean, sd, ninterval){
traders <- vector(mode="character", length=n)
traderscurrent <- vector(mode="character", length=n)
price <- vector(mode="numeric")
pricecurrent <- vector(mode="numeric")
for(nint in 1:ninterval)
{
L = floor(rnorm(1,mean,sd))
print(L)
x3 <- runif(2,0,1)
v <- c(0, min(x3), max(x3))
for(i in 1:n)
{
traders[i] <- runif(1,0,1)
if(findInterval(traders[i],v) == sample(c(1,3),1))
{
traders[i] <- "B"
}
else if(findInterval(traders[i],v) == 2)
{
traders[i] <- "N"
}
else {
traders[i] <- "S"
}
}
print(table(traders))
for(step in 1:L)
{
for(i in 1:n)
{
b <- sample(traders[-i], m)
print(b)
table(b)
traderscurrent[i] <- sample(b,1)
}
print(table(traderscurrent))
pricecurrent[step] = priceinitial+length(which(traderscurrent == "B"))*delta-length(which(traderscurrent == "S"))*delta
priceinitial = pricecurrent[step]
traders <- traderscurrent
#print(nint)
#print(step)
}
price <- c(price,pricecurrent)
price <- price[-L]
}
print(price)
plot(price)
}
호출은 다음과 같습니다
f1(10,2,100,5,10,1,5)
마지막 세 개의 점은 이해가되지 않습니다.
당신은 예를 완료시겠습니까? 예제를 실행하고 반복되는 점이있는 그림을 보여주십시오. –
@ Hack-R : f1 (102100510,1,5) 그래프를 추가했습니다. – user21478
@ Hack-R : 다른 난수를 샘플링 할 때마다 f1 (102100510,1,5)의 각 실행이 달라집니다. 내 경우에는 마지막 세 점이 없어야합니다. – user21478