====== 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.** {{:plataforma:appreciator:manual_appreciator:zerocostv2:zerocost_mutableparameters.png?400|}} 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.   =====Exemplos de estruturas e configurações.===== ====Vanilla Booster==== {{:plataforma:appreciator:manual_appreciator:zerocostv2:vanillabooster_1.png?1000|}} {{:plataforma:appreciator:manual_appreciator:zerocostv2:vanillabooster_2.png?1000|}} ---- ====Barrier Booster==== {{:plataforma:appreciator:manual_appreciator:zerocostv2:barrierbooster_1.png?1000|}} {{:plataforma:appreciator:manual_appreciator:zerocostv2:barrierbooster_2.png?1000|}}