我正在使我在R中的交易自动化。我正在尝试使用nls和fit函数优化我的公式,但是仅返回我输入的初始起始参数。我没有使用反复试验的方法,而是试图找到一种使用函数返回最佳策略价值的方法。
我尝试为变量“ a”和“ b”输入各种值,但是仅返回我输入的起始值,并且没有进行任何优化。我不确定是否使用了错误的功能,或者是否应该使用更合适的功能。下面的代码显示了我尝试过的内容,变量值(由模型提供,而不是我要优化的变量值是随机生成的,因为我不知道如何将市场数据上传到此问题帖中。
# 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”的值,以便期望的高值更好地接近实现的高位。预先感谢您可能提供的任何帮助。
答案 0 :(得分:0)
很难理解要优化的功能。试试这样的东西
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