Index:
*QTNOOVERWRITE won't overwrite the contents of the database, it will only
save the data if all specified fields after "date" are currently empty ("-")
in
the database; specified fields means the fields which were specified as a
"-" or a number, but not those marked as "*"
*QTIF will first check if there was already a data record in the ticker/exchange/date specified, if it is the case and the condition is not met, nothing will be imported; if there was no previous data record or if the condition is met, the values are imported
the command should be placed all in one line, it is shown in separate lines just for clarity!
if the company is new (i.e. this company-ID + country is not known to the data base) you have to specify all
fields, and in this case the company will be included in the data base
if the class is new (i.e. this company-ID+country+class is not known to the data base) you have to specify all
fields, and in this case the class will be included in the data base
the command should be placed all in one line, it is shown in separate lines just for clarity!
if the serie is new (i.e. this ticker+exchange is not known to the data base) you have to specify all
fields, and in this case the serie will be included in the data base
JSON Format
[
{
"type": "imovel",
"action": "",
<idimovel>
"descricao": "",
"endereco": "",
"idcidade": 999,
"docs": [""]
}
]
*CA Corporate Actions
*CA "ticker" exchange date type currency shares/percent/factor value
*CA "ticker" exchange date type DELETE
only used if the price is relevant for this CA type, but must be present in the import file even
if it is not used, list it as 0 (zero) in this case
*QT Stock Prices
*QTIF Stock Prices conditional import
*QTNOOVERWRITE Stock Prices No Overwrite
for stocks
*QT "ticker" exchange date open low high avg close trades shares volume
for funds BRA
*QT "ticker" exchange date captacao resgate resgate-ir source price cotistas resgate-total PL
for funds ARG
*QT "ticker" exchange date - - - mktshare price - qtd-cuotas PL
for funds CHL
*QT "ticker" exchange date cuotas-captacion cuotas-resgate - - price cuotistas cuotistas-institucionales PL
for funds COL
*QT "ticker" exchange date partic-dtf partic-tasa-fija patic-ipc partic-UVR price cotistas partic-ibr PL partic-disponible prom-dias-inc-disp partic-1-180-dias partic-180-365-dias
for funds 2 COL
*QT "ticker" exchange date partic-1-3-anos partic-3-5-anos rent-1-mes rent-6-meses rent-1-ano rent-ano-corrido rent-2-anos volatil-1-mes volatil-6-meses volatil-1-ano volatil-ano-corrido volatil-2-anos
for funds MEX
*QT "ticker" exchange date - - - - price cotistas - PL rotation duracion-modificada dias-por-vencer
for funds, other countries
*QT "ticker" exchange date - - - - price cotistas - PL
for security lends BRA (open positions)
*QT "ticker" exchange date titulos cotacao-media valor - - - - - - - - -
for security lends BRA (open positions contracts in day)
*QT "ticker" exchange date - - - titulos-balcao contratos-balcao valor-balcao tx-minima-balcao tx-maxima-balcao tx-media-balcao - - - titulos-eletd0 contratos-eletd0 valor-eletd0 tx-minima-eletd0 tx-maxima-eletd0 tx-media-eletd0 titulos-eletd1 contratos-eletd1 valor-eletd1 tx-minima-eletd1 tx-maxima-eletd1 tx-media-eletd1
for bonds MEX
*QT "ticker" exchange date interese rendimiento-(YTM) tasa-de-descuento precio-limpio precio-sucio dias-por-vencer dias-de-cupon-vigente tasa-de-mercado sobretasa-de-mercado duracion-modificada duracion-macaulay convexidad
for bonds USA
*QT "ticker" exchange date interese rendimiento-(YTM) - precio-limpio precio-sucio YTM-EXP YTM-RLL - - duracion-modificada duracion-macaulay
for bonds PER
*QT "ticker" exchange date precio-sucio precio-limpio IC rendimiento-(YTM) duracion precio-limpio-porc tir-porc-s-opc spreads margen-libor origen dias-por-vencer dias-de-cupon-vigente
for bonds ARG
*QT "ticker" exchange date interese rendimiento-(YTM) tasa-cupon precio-limpio precio-sucio valor-tecnico paridad valor-residual tipo-de-cambio duracion-modificada duracion-macaulay convexidad
for bonds CHL
*QT ticker exchange date dias-por-vencer dias-de-cupon-vigente spread PU-Par precio-sucio numero-de-operaciones cantidad-de-titulos volumen-$ rendimiento-(YTM) origen duracion-macaulay convexidad
for bonds BRA
*QT "ticker" exchange date Taxa-Compra Taxa-Venda Intervalo-Indicativo-Minino Intervalo-Indicativo-Maximo PU PU-Par Duration Desvio-Padrao Taxa-Indicativa-(Taxa-YTM)
for bonds COL
*QT "ticker" exchange date sourcecol precio-sucio-minimo precio-sucio-maximo precio-sucio-medio precio-sucio-cierre numero-de-operaciones tasa-cierre volumen-$ tasa-minima tasa-maxima tasa-media
for government bonds CHL
*QT ticker exchange date dias-por-vencer dias-de-cupon-vigente - PU-Par precio-sucio numero-de-operaciones cantidad-de-titulos volumen-$ rendimiento-(YTM) origen duracion-macaulay convexidad
for government bonds BRA
*QT "ticker" exchange date - - - - close - - - YTM - duration
for Anbima indexes BRA
*QT "ticker" exchange date percentage portfolio-market-value buying-interest-rate selling-interest-rate close renegotiation-average-period duration -
for CRI/CRA BRA - complete layout
*QT "ticker" exchange date open low high avg close trades shares volume refprice low-extragroup high-extragroup avg-extragroup close-extragroup trades-extragroup shares-extragroup volume-extragroup refprice-extragroup low-intragroup high-intragroup avg-intragroup close-intragroup trades-intragroup shares-intragroup volume-intragroup refprice-intragroup
for CRI/CRA BRA - ___FixedIncome___TradeInformationFile___ layout
*QTNOOVERWRITE "ticker" exchange date open low high avg close trades shares * * low-extragroup high-extragroup avg-extragroup close-extragroup trades-extragroup shares-extragroup * * low-intragroup high-intragroup avg-intragroup close-intragroup trades-intragroup shares-intragroup * *
for CRI/CRA BRA - OTCTradeInformationConsolidatedFile___ layout
*QTNOOVERWRITE "ticker" exchange date open * * * * * * volume refprice * * * * * * volume-extragroup refprice-extragroup * * * * * * volume-intragroup refprice-intragroup
conditional import
*QTIF "ticker" exchange date condition <same price parameters as *QT>
no overwrite
*QTNOOVERWRITE <same parameters as *QT>
any of the value fields after "date" can be replaced by an asterisk "*" which means not to
change the content of this field in the database and keep whatever was in
place before importing this line
*DELQT Delete Stock Prices
*DELQT "ticker" exchange from-date to-date
*FS Financial Statement
*FSIFNEWER Financial Statement If Newer
*FSUPDATE Financial Statement Update
*FS "company-ID" country date consolidated [source] [typedoc]
*FS companyid:"company-ID-value" country:country-value date consolidated [source] [typedoc]
*FS cnpj:"cnpj-value" country:country-value date consolidated [source] [typedoc]
*FS ticker:"ticker-value" exchange:exchange-value date consolidated [source] [typedoc]
*FS isin:"isin-value" exchange:exchange-value date consolidated [source] [typedoc]
currencydt currencydt
format format [do-not-override-format]
months months
moncorr moncorr [do-not-override-moncorr]
publishdt publishdt
currency currency
[fy|3m]
@conta [fy|3m] [cpfcnpj] value
@conta [fy|3m] [cpfcnpj] value
@conta [fy|3m] [cpfcnpj] value
...
[fy|3m]
@conta [fy|3m] [cpfcnpj] value
@conta [fy|3m] [cpfcnpj] value
@conta [fy|3m] [cpfcnpj] value
...
end
on fy|3m
We strongly encourage you to avoid using fy|3m on a line by itself.
Our recommendation is to
always assume fy as default, never change the default with a fy|3m line, ommit the "fy" term on all @account
lines that refer to the fiscal year,
and specify "3m" on each @account line that refers to a 3-month result sheet.
*FSIFNEWER identical to the *FS command except that you should use the term *FSIFNEWER instead of *FS.
*FSIFNEWER checks if the publish date is equal or greater than the publish date recorded, if not, nothing will be imported.
*FSUPDATE identical to the *FS command except that you should use the term *FSUPDATE instead of *FS,
and it is used as an update, i.e. any value that is ommited in the command
is copied from what was previously in the data base;
if this financial statement was not previously in the database but you include enough
information in the *FSUPDATE to make it a valid financial statement, it is accepted and included;
*NW News
*NW "company-ID" country date seq
*NW companyid:"company-ID-value" country:country-value RefDate PublishDate inPercentage typedoc
*NW cnpj:"cnpj-value" country:country-value RefDate PublishDate inPercentage typedoc
*NW ticker:"ticker-value" exchange:exchange-value RefDate PublishDate inPercentage typedoc
*NW isin:"isin-value" exchange:exchange-value RefDate PublishDate inPercentage typedoc
text
text
...
END
*OBJEMP Company Definition
*OBJEMP "company-id" country "company-name" not-used fs-currency fsfS0[-fsfS1[-...]] naics ...
... "complete-name" "previous-name" "web-site" "cnpj"
any ommited term (specified as a dash "-") will simply not overwrite whatever value it currently has in the data base for this field
fsfS0 = financial statement format used for source=0,
fafS1 = financial statement format used for source=1, etc;
you can specify just fsfS0, or fsfS0-fsfS1, or as many as you wish, sources not specified receive format=0
the whole block may be ommited using a dash "-"
*OBJCLASS Class Definition
*OBJCLASS "company-id" country class asset-type vote
any ommited term (specified as a dash "-") will simply not overwrite whatever value it currently has in the data base for this field
*OBJSERIE Serie Definition
*OBJSERIE "ticker" exchange "company-id" country class inactive status "sedol" ...
... quotes-currency index-partic "ISIN" include-fin-statements hidden calendar disableCopy ...
... registration-template type-of-contract colonia-map quotes-template [hidden-marketlist]
any ommited term (specified as a dash "-") will simply not overwrite whatever value it currently has in the data base for this field
*NAICS sector code
*NAICSIF sector code
*NAICS "company-id" country naics
*NAICS companyid:"company-ID-value" country:country-value naics
*NAICS cnpj:"cnpj-value" country:country-value naics
*NAICS ticker:"ticker-value" exchange:exchange-value naics
*NAICS isin:"isin-value" exchange:exchange-value naics
*NAICSIF "company-id" country naics
*NAICSIF companyid:"company-ID-value" country:country-value naics
*NAICSIF cnpj:"cnpj-value" country:country-value naics
*NAICSIF ticker:"ticker-value" exchange:exchange-value naics
*NAICSIF isin:"isin-value" exchange:exchange-value naics
*NAICSIF checks if NAICS code recorded for the company is child of this new one. In this case nothing will be imported.
To force update use *NAICS or *OBJEMP.
*SERIESTATUS Serie Status
*SERIESTATUS "ticker" exchange new-status
*ISIN ISIN code
*ISIN "ticker" exchange new-ISIN-code
|
FS account | *SHARES class | total/treasury/outstanding |
39 | #1574 "total" | Total |
1168 | #1574 "total" | Treasury |
526 | #1574 "total" | Outstanding |
37 | #1585 "ordinarias" | Total |
831 | #1585 "ordinarias" | Treasury |
555 | #1585 "ordinarias" | Outstanding |
38 | #1584 "preferenciais" | Total |
1323 | #1584 "preferenciais" | Treasury |
1324 | #1584 "preferenciais" | Outstanding |
FS account | *SHARES class | total/treasury/outstanding |
39 | #1582 "total" | Total |
1168 | #1582 "total" | Treasury |
526 | #1582 "total" | Outstanding |
1269 | #1634 "Com type" | Outstanding |
38 | #1235 "Pref" | Total |
1323 | #1235 "Pref" | Treasury |
1324 | #1235 "Pref" | Outstanding |
FS account | *SHARES class | total/treasury/outstanding |
39 | #1575 "total" | Total |
1168 | #1575 "total" | Treasury |
526 | #1575 "total" | Outstanding |
37 | #860 "Ord" | Total |
831 | #860 "Ord" | Treasury |
555 | #860 "Ord" | Outstanding |
38 | #545 "Pref" | Total |
1323 | #545 "Pref" | Treasury |
1324 | #545 "Pref" | Outstanding |
1089 | #243 "C" | Total |
2980 | #205 "1" | Total |
FS account | *SHARES class | total/treasury/outstanding |
39 | #554 "total" | Total |
1168 | #554 "total" | Treasury |
526 | #554 "total" | Outstanding |
37 | #1588 "Ord" | Total |
831 | #1588 "Ord" | Treasury |
555 | #1588 "Ord" | Outstanding |
38 | #1604 "P" | Total |
1323 | #1604 "P" | Treasury |
1324 | #1604 "P" | Outstanding |
1087 | #1626 "A tipo" | Total |
1088 | #1628 "B tipo" | Total |
1089 | #1629 "C tipo" | Total |
1170 | #48 "D" | Total |
1090 | #192 "L" | Total |
1169 | #1625 "otros tipos" | Total |
2980 | #1299 "1" | Total |
2981 | #1 "2" | Total |
FS account | *SHARES class | total/treasury/outstanding |
39 | #1576 "total" | Total |
1168 | #1576 "total" | Treasury |
526 | #1576 "total" | Outstanding |
37 | #1406 "Ord" | Total |
831 | #1406 "Ord" | Treasury |
555 | #1406 "Ord" | Outstanding |
38 | #207 "P" | Total |
1323 | #207 "P" | Treasury |
1324 | #207 "P" | Outstanding |
1087 | #244 "A" | Total |
1088 | #359 "B" | Total |
1089 | #50 "C" | Total |
1170 | #468 "D" | Total |
1169 | #1624 "otros tipos" | Total |
2980 | #8 "1" | Total |
FS account | *SHARES class | total/treasury/outstanding |
39 | #1583 "total" | Total |
1168 | #1583 "total" | Treasury |
526 | #1583 "total" | Outstanding |
37 | #1601 "Ord" | Total |
831 | #1601 "Ord" | Treasury |
555 | #1601 "Ord" | Outstanding |
38 | #1600 "Pref" | Total |
1323 | #1600 "Pref" | Treasury |
1324 | #1600 "Pref" | Outstanding |
1087 | #360 "A" | Total |
1088 | #47 "B" | Total |
1089 | #1633 "C" | Total |
1170 | #162 "D" | Total |
1169 | #1632 "otros tipos" | Total |
2980 | #1378 "1" | Total |
2981 | #94 "2" | Total |
FS account | *SHARES class | total/treasury/outstanding |
39 | #1577 "total" | Total |
1168 | #1577 "total" | Treasury |
526 | #1577 "total" | Outstanding |
37 | #843 "Ord" | Total |
831 | #843 "Ord" | Treasury |
555 | #843 "Ord" | Outstanding |
38 | #608 "Pref" | Total |
1323 | #608 "Pref" | Treasury |
1324 | #608 "Pref" | Outstanding |
FS account | *SHARES class | total/treasury/outstanding |
39 | #1580 "total" | Total |
1168 | #1580 "total" | Treasury |
526 | #1580 "total" | Outstanding |
676 | #1630 "comunes" | Total |
831 | #1630 "comunes" | Treasury |
555 | #1630 "comunes" | Outstanding |
675 | #1631 "inversion" | Total |
1323 | #1631 "inversion" | Treasury |
1324 | #1631 "inversion" | Outstanding |
1089 | #1587 "C" | Total |
FS account | *SHARES class | total/treasury/outstanding |
1087 | #1641 "A" | Total |
Example of how to convert an old *FS command with number of shares accounts to a new *SHARES command | Ejemplo de como convertir un antiguo comando *FS com cuentas con numero de acciones para un nuevo comando *SHARES. |
*FS "empresa" 11 2006-12-31 N 0 ... @39 35000 @1168 5000 @526 30000 @676 22000 @831 2000 @555 20000 @675 13000 @1323 3000 @1324 10000 ... END
Should become / Deve tornarse
*FS "empresa" 11 2006-12-31 N 0 ... (without the @ lines with num of shares accounts) (sin las lineas @ con cuentas de cantidades de acciones) ... END *SHARES "empresa" 11 2006-12-31 0 #1580 total 35000 #1580 5000 30000 #1630 total 22000 #1630 2000 20000 #1631 total 13000 #1631 3000 10000
same as *SHARES except that previous information is not lost,
whatever information is included in the *SHARESUPDATE command will overwrite previous
number of shares info but classes not included won't be deleted
Regarding the document id, please note that it will store whatever you specify but
when matching a document id such as in the commands *SHAREHOLDERDOC or *SHAREHOLDERS
or in *SHAREHOLDER itself (to decide whether this is a new or an existing shareholder),
it will disregard any punctuation, spaces and lower/upper case, so if you store
a document "12.345.678-ARG"
it will be matched when you search for "12345678ARG" or "1.2.3.4.5.6.7.8.a.r.g"
The difference between *SHAREHOLDER and *SHAREHOLDERIFDOCISNEW is that both will register
a new shareholder (i.e. one with a document that was not previously in the database)
but only the first one will update an existing shareholder.
Please note that the list of PFITEM is shared with the list of SHAREHOLDER, the doc must be
unique in this combined list.
If a company is both an item in a portfolio, and a shareholder, it will be listed only once
in the list.
Please note that the addition of a new name to an existing shareholder (see above) is
considered a modification in this context and counts toward the /SHLIMITMOD=zzz limit
These command line parameters do not apply when doing a "remote import"!!!
In this case it will disregard limits and accept whatever is sent on the import file.
The line "FREE-FLOAT FREE-FLOAT" is optional
Regarding the document id, please note that it will store whatever you specify but
when matching a document id such as in the commands *PFITEMDOC or *PORTFOLIO
or in *PFITEM itself (to decide whether this is a new or an existing item),
it will disregard any punctuation, spaces and lower/upper case, so if you store
a document "12.345.678-ARG"
it will be matched when you search for "12345678ARG" or "1.2.3.4.5.6.7.8.a.r.g"
The difference between *PFITEM and *PFITEMIFDOCISNEW is that both will register
a new item (i.e. one with a document that was not previously in the database)
but only the first one will update an existing item.
The list of *PFITEM is shared with the list of *SHAREHOLDER, the doc must be
unique in this combined list.
If a company is both an item in a portfolio, and a shareholder, it will be listed only once
in the list.
The addition of a new name to an existing pf item (see above) is
considered a modification in this context and counts toward the /SHLIMITMOD=zzz limit
These command line parameters do not apply when doing a "remote import"!!!
In this case it will disregard limits and accept whatever is sent on the import file.
The command *EAAREG raises WARNING in case ticker+exchange not exists
The command *EAAREGIFEXISTS raises EXCEPTION in case ticker+exchange not exists
The command *EAAREGADDITEMIFNEW raises WARNING in case ticker+exchange not exists
*SHARESUPDATE update on information on number of shares
*SHAREHOLDER / *SHAREHOLDERIFDOCISNEW register or update a shareholder
*SHAREHOLDER "name" country "document" [is-main-name, doc-cleaning]
*SHAREHOLDERIFDOCISNEW "name" country "document" [is-main-name, doc-cleaning]
This command also uses three command line parameters that may optionally be specified when
starting EcoInput:
/SHLIMITTOTAL=xxx
/SHLIMITADD=yyy
/SHLIMITMOD=zzz
the use is to generate an error at the end of the check phase of the import file
if there are more then yyy adds of new stockholders,
or more than zzz modifications to existing stockholders,
or if the total of additions and modifications is more than xxx.
If you need to review what happened, all the information will be detailed in
the file ecoinput.log.
*SHAREHOLDERDOC updates the document of a shareholder
*SHAREHOLDERDOC "old-doc" country "new-doc" ["name"]
*SHAREHOLDERS ownership breakdown of a company
*SHAREHOLDERS "company-ID" country RefDate PublishDate
*SHAREHOLDERS companyid:"company-ID-value" country:country-value RefDate PublishDate inPercentage typedoc
*SHAREHOLDERS cnpj:"cnpj-value" country:country-value RefDate PublishDate inPercentage typedoc
*SHAREHOLDERS ticker:"ticker-value" exchange:exchange-value RefDate PublishDate inPercentage typedoc
*SHAREHOLDERS isin:"isin-value" exchange:exchange-value RefDate PublishDate inPercentage typedoc
doc country voting non-voting total
nottocleandoc:doc country voting non-voting total
idshareholdernopais:idshnp country voting non-voting total
idshareholder:idsh voting non-voting total
...
(repeat any or all of these lines above as many times as necessary)
...
FREE-FLOAT FREE-FLOAT voting non-voting total
TOTAL TOTAL voting non-voting total
end
*PFITEM / *PFITEMIFDOCISNEW register or update a portfolio item
*PFITEM "name" country "document" [is-main-name, doc-cleaning]
*PFITEMIFDOCISNEW "name" country "document" [is-main-name, doc-cleaning]
This command also uses three command line parameters that may optionally be specified when
starting EcoInput:
/SHLIMITTOTAL=xxx
/SHLIMITADD=yyy
/SHLIMITMOD=zzz
the use is to generate an error at the end of the check phase of the import file
if there are more then yyy adds of new shareholders/portfolio items,
or more than zzz modifications to existing shareholders/pfitems,
or if the total of additions and modifications is more than xxx.
If you need to review what happened, all the information will be detailed in
the file ecoinput.log.
*PFITEMDOC updates the document of a portfolio item
*PFITEMDOC "old-doc" country "new-doc" ["name"]
*PORTFOLIO held by a fund
*PORTFOLIO "company-ID" country RefDate PublishDate inPercentage typedoc DateBySource:"DateBySource-value"
doc country investmenttype [value] [participation%]
nottocleandoc:doc country investmenttype [value] [participation%]
idpfitmnopais:idpfinp country investmenttype [value] [participation%]
idpfitem:idpfi investmenttype [value] [participation%]
...
(repeat any or all of these lines above as many times as necessary)
...
BASE BASE base-value
TOTAL TOTAL total-value
end
*COMREG Company registration item
*CLASSREG Class registration item
*SERIEREG Serie registration item
*EAAREG EAA registration item
*EAAREGADDITEMIFNEW EAA registration items
*EAAREGIFEXISTS EAA registration items
*COMREG "company-ID" country reg-item value [effective-date]
*COMREG companyid:"company-ID-value" country:country-value reg-item value [effective-date]
*COMREG cnpj:"cnpj-value" country:country-value reg-item value [effective-date]
*COMREG ticker:"ticker-value" exchange:exchange-value reg-item value [effective-date]
*COMREG isin:"isin-value" exchange:exchange-value reg-item value [effective-date]
*CLASSREG "company-ID" country "class" reg-item value [effective-date]
*CLASSREG companyid:"company-ID-value" country:country-value "class" reg-item value [effective-date]
*CLASSREG cnpj:"cnpj-value" country:country-value "class" reg-item value [effective-date]
*CLASSREG ticker:"ticker-value" exchange:exchange-value - reg-item value [effective-date]
*CLASSREG isin:"isin-value" exchange:exchange-value - reg-item value [effective-date]
*SERIEREG "ticker" exchange reg-item value [effective-date]
*EAAREG "ticker" exchange reg-item value [effective-date]
*EAAREGADDITEMIFNEW "ticker" exchange reg-item value [effective-date]
*EAAREGIFEXISTS "ticker" exchange reg-item value [effective-date]
*COMREGREPEATDATE Repeat Company registration item on effective date
*CLASSREGREPEATDATE Repeat Class registration item on effective date
*SERIEREGREPEATDATE Repeat Serie registration item on effective date
*COMREGREPEATDATE "company-ID" country reg-item effectivated-date-to-repeat effective-date
*CLASSREGREPEATDATE "company-ID" country "class" reg-item effectivated-date-to-repeat effective-date
*SERIEREGREPEATDATE "ticker" exchange reg-item effectivated-date-to-repeat effective-date