Essa é uma revisão anterior do documento!
ZeroCost Full
Adição, Remoção e Modificações de Operações ZeroCost
Passo 1: Baixar o Arquivo JSON
1.Abra o aplicativo Appreciator.
2.Navegue até o menu Derivativos → Zero Cost Full.
3.Na tela aberta, clique em Exp/Imp ZeroCostJson Download Parent.
4.Selecione onde deseja salvar o arquivo e abra-o com um editor JSON de sua preferência.
5.Formate o JSON e faça as modificações necessárias, garantindo que ele permaneça um JSON válido.
Observação: Caso seja uma adição, copie o código de uma operação existente que seja semelhante, e realize a modificação a partir dele.
Passo 2: Carregar o Arquivo Modificado
1.Após realizar as modificações, salve o arquivo.
2.Dentro do aplicativo Appreciator, navegue até o menu Derivativos → Zero Cost Full.
3.Na tela aberta, clique em Exp/Imp ZeroCostJson Upload Parent.
4.Selecione o novo arquivo JSON e pressione abrir.
Observação: Uma vez feita a operação, não é possível reverter. Portanto, é altamente recomendado possuir uma cópia do arquivo original, caso algo inesperado ocorra.
Ferramentas Adicionais
1.ZeroCost Json Download Default: Baixa o arquivo padrão utilizado pela Fderivs. Este arquivo é confiável para ser usado como base.
2.ZeroCost Json Reset: Utilizado em casos de emergência para sobrescrever o arquivo do grupo pelo arquivo padrão mantido pela Fderivs.
Observação: Esta operação é irreversível. Recomendamos salvar uma cópia do arquivo do grupo antes de um reset. —
Descrição dos Campos do Arquivo JSON
•Name: Nome da operação.
•Type: Tipo da operação. Valores válidos: “Van” (Vanilla), “Bar” (Barreira), “VanBar” (mista entre Vanilla e Barreira).
OptionVanilla
Descrição das pontas de Vanilla, array de até 3 itens.
•CallPut: Tipo da operação (Call ou Put). Valores: “C” ou “P”.
•Leg: Ponta da leg (Buy ou Sell).
•Strike: Strike, valor decimal. “1” = 100%, “1.4” = 140%.
•LoteSize: Tamanho do lote, valor decimal. “1” = 100%, “1.4” = 140%.
•Bd: Dias úteis, valor inteiro (exemplo: “252”).
OptionBarrier
Descrição das pontas de Barreira, array de até 3 itens.
•CallPut: Tipo da operação (Call ou Put). Valores: “C” ou “P”.
•Opc: Descrição da barreira.
“CDI”, “CUI”, “CDO”, “CUO”, “EDI”, “EUI”, “EDO”, “EUO”, “DDI”, “DUI”, “DDO”, “DUO”
A primeira letra é referente à Continua, Discreta ou Expiração.
A segunda letra é a direção da barreira Up ou Down.
A terceira letra descreve o trigger In ou Out.
•Leg: Ponta da leg (Buy ou Sell).
•Strike: Strike, valor decimal. “1” = 100%, “1.4” = 140%.
•Bar: Strike da barreira, valor decimal. “1” = 100%, “1.4” = 140%.
•Reb: Rebate da barreira, valor decimal. “1” = 100%, “1.4” = 140%.
•LoteSize: Tamanho do lote, valor decimal. “1” = 100%, “1.4” = 140%.
•Bd: Dias úteis, valor inteiro.
MutableParameters
Campos que o sistema pode alterar.
•Selector: Seletor JSON do campo. Exemplo “OptionBarrier[0].Bar” ⇒ O sistema tentará encontrar o valor target modificando somente o Strike da Barreira da operação barreira de index 0. “OptionBarrier[0].Strike” ⇒ O sistema tentará encontrar o valor target modificando somente o Strike da operação barreira de index “OptionVanilla[1].Strike”, O sistema tentará encontrar o valor target modificando somente o Strike da operação Vanilla de index 1.
•NelderMeadParameter: Index do valor NelderMead.
•Adjustment: Parâmetro especial focado em estruturas Equidistant, indicando a direção que será aplicado o valor Guess do NelderMead.
Exemplo.
Nesse exemplo a mecânica de Guess do Neldermead será a seguinte
OptionVanilla[1].Strike = |1- + 0.25| = 0.75
OptionVanilla[2].Strike = |1 + 0.25| = 1.25
Considerando que o step informado é de 0.01, o próximo Guess será de
OptionVanilla[1].Strike = |1- + 0.24| = 0.76
OptionVanilla[2].Strike = |1 + 0.24| = 1.26
Ou
OptionVanilla[1].Strike = |1- + 0.26| = 0.74
OptionVanilla[2].Strike = |1 + 0.26| = 1.24
Portanto o Start será utilizado como a distância equalizada contra o adjustment informado.
Target
Informação sobre qual campo o sistema deve encontrar e qual valor busca atingir.
•Field: Campo target (ex.: “Notional” ou “BumpNotional”).
•Value: Valor esperado, número decimal, exemplo “0.03” É esperando que o campo informado no Field atinja o valor de 3%.
•ErrorMarginPercent: Margem de erro aceitável em porcentagem, portanto, “0.01” = 1% de erro máximo sobre o valor informado no Value.
FallbackParameters
Campo opcional, ele adiciona a possibilidade de modificação do valor do campo informado no selector, caso o target não seja atingido, reiniciando o processo com uma step de diferença no campo informado.
•Selector: Seletor JSON do campo. Exemplo “OptionBarrier[0].Bar”: O sistema tentará encontrar o valor target modificando somente o Strike da Barreira da operação barreira de index 0.
“OptionBarrier[0].Strike”: O sistema tentará encontrar o valor target modificando somente o Strike da operação barreira de index “OptionVanilla[1].Strike” O sistema tentará encontrar o valor target modificando somente o Strike da operação Vanilla de index 1.
•Step: Valor decimal entre -1.0 e 1.0, valor este que será deduzido ou somado ou valor do campo informado a cada tentativa falha de encontrar o target.
•MaximumSteps: Quantidade máximas de tentativas 10.
NelderMead
Parâmetros do NelderMead.
•Start: Array de chutes iniciais para o Neldermead, quando esse campo é informado o “BestFit” se torna obrigatório.
Exemplo* para duas tentativas de execução, com chutes iniciais de 140% e 110% ⇒ [ “1.1”, “1.4” ]
•Step: Incremento ou decremento por iteração. Valor decimal.
•Epsilon: Incremento ou decremento próximo do resultado. Valor decimal.
Obs.: É recomendado que o valor Step seja maior que o Epsilon, pois pode afetar a performance caso ambos sejam muito baixos, pois, aumentará a quantidade de iterações necessárias para chegar no resultado.
•Normalization: Tipo de normalização (“Penalty”, “Sigmoid”, “Log”).
“Penalty” = O Penalty utiliza a normalização de LOG com uma penalidade adicional de 10x, útil para operações complexas.
“Sigmoid” = Normalização com algoritmo de Sigmoid, default na maioria das operações deve cobrir a maioria dos casos.
“Log” = Transformação logarítmica.
•BestFit: Esse campo deve ser informado ao utilizar mais de um valor no Start, este é responsável por indicar ao sistema qual das tentativas está mais próxima do desejado.




