Pandas Dataframe как параметры в модели оптимизации Pyomo - PullRequest
0 голосов
/ 28 января 2020

Я новичок в Pyomo и пытаюсь использовать данные в моем pandas фрейме данных в качестве параметров в модели оптимизации, фрейм данных выглядит следующим образом:

          Ticker    Margin  Avg. Volume   M_ratio   V_ratio
Index
0            ES1   6600.00      1250970  0.126036  0.212996
1            TY1   1150.00      1232311  0.021961  0.209819
2            FV1    700.00       488906  0.013367  0.083244
3            TU1    570.00       293885  0.010885  0.050038
4            ED3    500.00       137802  0.009548  0.023463
5            NQ1   7500.00       427061  0.143223  0.072713
6          FDAX1  24074.12        98838  0.459728  0.016829
7          FESX1   2641.28       832836  0.050439  0.141803
8          FGBL1   2502.75       546878  0.047793  0.093114
9          FGBM1   1042.10       330517  0.019900  0.056275
10         FGBS1    262.97       232801  0.005022  0.039638
11         F2MX1   4822.81          398  0.092098  0.000068

Модель, которую я создаю, нацелена на найдите максимальные контракты, которые можно заключить во всех активах, исходя из баланса и ряда ограничений

Мне нужно пройтись по строкам, чтобы добавить все соответствующие данные в model.utilisation

model.Vw = Param() #<- V_ratio from df
model.M = Param() #<- Margin from df
model.L = Var(domain=NonNegativeReals)

model.utilisation = Objective(expr = model.M * model.L, sense=maximize)

Эффективно нужно взять маржу для каждого тикера и определить, сколько из этого Вы можете получить отношение к балансу - например,

* (Маржа ES1 * модель.L) + (Маржа TY1 * модель.L) * et c et c во всем фрейме данных.

Я протестировал логи c, подключив фиктивные данные, и, кажется, работает, но неэффективно записывать каждый фрагмент данных, а затем добавлять его в модель использования, поскольку в моем фрейме данных есть сотни строк.

Извините, если есть какие-то ослепительные ошибки, очень новые для Pyomo

...