quadprog

    2熱度

    3回答

    從捐助者到StackOverflow的大量幫助,我設法組合了一個函數來導出最大化夏普比率的2資產投資組合的權重。不允許賣空,權重總和加1.我現在想要做的是限制資產A不超過或小於用戶定義權重的10%。作爲一個例子,我想限制資產A的權重不低於54%或高於66%(即60%+/- 10%)。所以在下面的例子中,我將以(0.54,0.66)的權重代替不受約束的(0.243,0.7570)。我認爲這可以通過調

    0熱度

    1回答

    我有一個關於這個算法的問題,我需要回答,因爲我正在審計我的模型,這個不一致是有關的。 我正在做均值 - 方差優化,它們必須總和爲1,並且權重必須在我指定的範圍內。我輸入如下: Dmat = Sigma dvec = rep(0, ncol(Sigma)) Amat = rbind(rep(1, ncol(Sigma)), diag(ncol(Sigma)), -diag(ncol(Sigma)

    1熱度

    1回答

    錯誤所以基本上我有兩個矩陣包含股票(R)超額回報和預期超額回報(ER)。 R<-matrix(runif(47*78),ncol = 78) ER<-matrix(runif(47*78),ncol = 78) 然後,我將這些刪除R的第一行,並添加ER的第一行,形成一個新的矩陣R1。 我然後這樣做對於R2即去除和R的前兩行,並與第一2行ER的rbinding它。 我這樣做,直到我有n-1個新

    1熱度

    1回答

    我正在使用quadproglink來查找最優權重組合。 到目前爲止,我已成功地實現長僅約束(即權值不能小於零w >= 0 and w1 + w2 + ... wN = 1)如下: FirstDegree = zeros(NumAssets,1); SecondDegree = Covariance; Aeq = ones(1,NumAssets); beq =

    1熱度

    2回答

    我有一個表「數據」,其中大約100,000,000條記錄。 我已經添加了一個新的列「batch_id」(整數)。 在應用程序層上,我正在更新每個10,000,000條記錄的10000個記錄的batch_id(batch_id對於10k總是相同)。 我在做這樣的事情(應用層僞代碼): loop { $batch_id = $batch_id + 1; mysql.query("U

    0熱度

    1回答

    我試着去解決R中的以下問題,請使用quadprog包: min: vec %*% p + t(p) %*% mat %*% p st: p >= 0 其中 mat <- matrix(c(1162296,0,0,0,0,1,0,0,951.7089,0,1,0,-951.7089,0,0,1),4) vec <- c(6341934541.1,175800.1,-356401.7,1439

    0熱度

    1回答

    我試圖找到一個向量,使乘法矩陣的殘差平方和最小。 我知道scipy的優化包(它具有最小化函數)。但是,我的代碼有一個額外的限制。 w的所有條目的總和(見下面的函數)必須等於1,並且w的任何條目都不能小於0. 是否有一個包爲我做了這個?如果不是,我該怎麼做? 試圖儘量減少寬: def w_rss(w,x0,x1): predictions = np.dot(x0,w) error

    0熱度

    1回答

    爲了實現ADMM優化,我嘗試使用quadprog。我希望儘量減少方程爲 `min x^T*S*x + 1(x) + lambda^T*(x-z) + rho/2*||x-z||²` quadprog以下格式 `min -d^T*b + 1/2*b^T*D*b` 下最小化功能深化發展我的功能後,我確實有這樣的事情 `min x^T*C*x + lambda^T*(x-z) - rho*x*z

    -1熱度

    1回答

    另一個投資組合優化問題... 我試着去最大限度地給予限制總和(P)四個資產組合= 1,MaxW < = 0.55和MinW>的迴歸使用quadprog = 0.05。 在這期間的平均回報是 avgR <- c(0.0008990382, 0.0002285502, 0.0001120934, 0.0001540948) 而協方差矩陣 covM <- matrix(c(2.876044e-04,

    0熱度

    1回答

    我有一個查詢返回列表中的值。 例如: SELECT * FROM some_table WHERE name IN ('name1', 'name2', 'name3', 'name4', 'name5', 'name6', 'name7', 'name8', 'name9', 'name10') 我想查看可能不在列表中的內容。 如: SELECT * FROM #list WHERE