R fit函数仅返回起始编号

R fit function returning only starting number

我在 R 中自动化我的交易。我正在尝试使用 nls 和 fit 函数来优化我的公式,但是只返回我输入的初始起始参数。我没有尝试和错误,而是试图找到一种方法来使用函数返回我的策略的最佳值。

我已经尝试为变量 "a" 和 "b" 输入各种值,但是只返回我输入的起始值并且没有进行优化。我不确定我是否使用了错误的功能,或者是否应该使用更合适的功能。下面的代码显示了我的尝试,变量值(由模型给出,而不是我试图优化的变量值是随机生成的,因为我不知道如何将市场数据上传到这个问题 post .

# VARIABLES         
x <- 1:1000 # number instead of date 
y <- round((runif(1000, min=0, max=50)), digits=2) # highest price of the day minus the opening price of the day
z <- round((runif(1000, min=0.001, max=0.040)), digits=6) # implied volatility for the day 
w <- sample(2000:2800, 1000, replace=TRUE) # opening price for the day 

# FORMULA
# OPEN PRICE OF THE DAY - MULTIPLIED - BY IMPLIED VOLATILITY FOR THE DAY = (APPROXIMATLY) HIGHEST PRICE OF THE DAY - MINUS - OPEN PRICE FOR THE DAY 
( w * (1 + z)) - w = y 

# OPTMISED FORMULA FORMAT 
(( w * ((1 + z) * a)) * b) - w = y # ATTEMPTING TO OPTMISE MY FORMULA TO IMPROVE THE ACCURACY OF RESULT FOR EXPECTED HIGH (y)
# TRYING WITH STARTING VALUES 
a <- 0.000001
b <- 0.000001

# USING nls function and fit 
m<-nls( y~ (( w * ((1 + z) * a)) - w)) + b 
# OR
m<-nls( y~(( w * ((1 + z) * a)) * b)) - w

我正在尝试获取最适合我的公式版本的变量 "a" 和 "b" 的值,以便预期的高值更接近实际的高值。提前感谢你们可能提供的任何帮助。

很难理解你要优化的功能。尝试这样的事情

m<-nls( y~ w * (1 + z) * a  - b* w,start=list(a=a,b=b))
m

> m
Nonlinear regression model
  model: y ~ w * (1 + z) * a - b * w
   data: parent.frame()
         a          b 
 0.0089771 -0.0008416 
 residual sum-of-squares: 221244

Number of iterations to convergence: 1 
Achieved convergence tolerance: 1.944e-07

>  coef(m)
            a             b 
 0.0089771178 -0.0008416359