7if__name__ ==
"__main__":
12os.environ[
'SSL_CERT_FILE'] = certifi.where()
13 from슬롯 사이트magic
가져오기GamsInteractive
14슬롯 사이트 = GamsInteractive()
24url=
"https://github.com/daveh19/pydataberlin2017/raw/master/notebooks/dowjones2016.csv"
25price_data=pd.read_csv(url)
28m = 슬롯 사이트exchange_container
29날짜 = m.addSet(
'날짜', 설명=
'거래일')
30기호 = m.addSet(
'기호', 설명=
'주식 기호')
31가격 = m.addParameter(
'가격', [날짜, 기호], domain_forwarding=
참, 기록=가격_데이터, 설명=
'날짜의 주식 가격')
32d = m.addAlias(
'd', 날짜)
40avgprice = m.addParameter(
'평균 가격', [기호], 설명=
'주가의 평균 가격')
41슬롯 사이트슬롯 사이트(
'avgprice(s) = 합계(d, 가격(d,s))/카드(d);')
42인쇄(avgprice.records.head())
49중량 = m.addParameter(
'무게', [기호], 설명=
'재고 중량')
50슬롯 사이트슬롯 사이트(
'무게(기호) = 평균 가격(기호)/합계(들, 평균 가격);')
51인쇄(weight.records.head())
58기여 = m.addParameter(
'공헌', [날짜, 기호])
59슬롯 사이트슬롯 사이트(
'기여금(d,s) = 무게(들)*가격(d,s);')
60인쇄(contribution.records.head())
67색인 = m.addParameter(
'색인', [날짜], 설명=
'다우존스 지수')
68슬롯 사이트슬롯 사이트(
'지수(d) = 합계(s, 기여도(d,s));')
69인쇄(index.records.head())
82trainingdays = m.addParameter(
'훈련일', 레코드 = 100)
83maxstock = m.addParameter(
'맥스스톡', 레코드 = 3, 설명=
'선택할 최대 주식 수')
84ds = m.addSet(
'ds', [날짜], 설명=
'선택한 날짜')
85ds.setRecords(date.records[
'유니'][:100])
92p = m.addVariable(
'p',
'바이너리', [기호], 설명 =
'재고가 포함되어 있나요?')
93w = m.addVariable(
'w',
'긍정적', [기호], 설명 =
'포트폴리오의 어떤 부분')
94slpos = m.addVariable(
'slpos',
'긍정적', [날짜], 설명 =
'긍정적인 여유')
95slneg = m.addVariable(
'slneg',
'긍정적', [날짜], 설명 =
'부정적 여유')
96obj = m.addVariable(
'obj',
'무료', 설명 =
'목적')
111슬롯 사이트 deffit(date) '다우존스 지수에 적합';
112deffit(ds).. sum(s, 가격(ds,s)*w(s)) =e= 지수(ds) + slpos(ds) - slneg(ds);
114슬롯 사이트 defpick(symbol) '선택한 경우에만 재고를 사용할 수 있습니다';
115defpick(s).. w(s) =l= p(s);
117슬롯 사이트 defnumstock '몇 가지 주식이 허용됨';
118defnumstock.. sum(s, p(s)) =l= maxstock;
120슬롯 사이트 defobj '색인의 절대 위반(L1 표준)';
121defobj..obj =e= sum(ds, slpos(ds) + slneg(ds));
123모델 pickStock /all/;''')
130ds.setRecords(date.records[
'유니'][:100])
131maxstock.setRecords(3)
134슬롯 사이트슬롯 사이트(
'옵션 optCR=0.01, resLim=6; mip를 사용하여 pickStock min obj를 해결합니다.')
141펀드 = m.addParameter(
'펀드', [날짜], 설명=
'인덱스 펀드 보고서 매개변수')
142슬롯 사이트슬롯 사이트(
'펀드(d) = 합계(s, 가격(d, s)*w.l(s));')
143오류 = m.addParameter(
'오류', [날짜], 설명=
'절대 오류')
144슬롯 사이트슬롯 사이트(
'오류(d) = abs(index(d)-fund(d));')
153슬롯 사이트gams_cleanup(폐쇄=
참)