摆脱情节中的重复点

时间:2016-06-27 20:11:52

标签: r

我正在模拟交易者和他们的行为,并试图摆脱情节陈述中的重复点。做这个的最好方式是什么?换句话说,对于 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)

enter image description here

最后三个点没有意义。

1 个答案:

答案 0 :(得分:0)

我认为这就是你想要的,没有代码评论或更多背景,这很难说。

当您执行c(price, pricecurrent)时,您确实添加了一个重复点,例如我的实验price在步骤1设置为90,然后pricecurrent为{{1}在第2步,结果为90 80

看起来您正试图在下一行中修复此问题,但我不确定在我的实验中使用90 90 80 -L是否有意义,因此无效在重复点上。我你想在那里使用9,但我又没有上下文所以我不能确定特定于用例的逻辑。

step

no repeated points