tx · FtYf9Ty9HHTD7KVaQYhuMPj3xVGU8yNYvLSjkGR3KdwC 3MvQVj21fwPXbyXsrVDV2Sf639TcWTsaxmC: -0.09000000 Waves 2020.01.08 14:32 [844882] smart account 3MvQVj21fwPXbyXsrVDV2Sf639TcWTsaxmC > SELF 0.00000000 Waves
{ "type": 13, "id": "FtYf9Ty9HHTD7KVaQYhuMPj3xVGU8yNYvLSjkGR3KdwC", "fee": 9000000, "feeAssetId": null, "timestamp": 1578483156529, "version": 1, "sender": "3MvQVj21fwPXbyXsrVDV2Sf639TcWTsaxmC", "senderPublicKey": "GfU9G8BJcrUfL2H2QthDHbeLHThimafNuKPuDQm9wbzr", "proofs": [ "5nEWxf617LweR9h7ogVgsTXWGcSgedHh7v116X6KyeX3gP6puQs5pPtPm5mo7DiJFyJwhc4GXrtSGApeXYfz67pw" ], "script": "base64:AAIDAAAAAAAAAAwIARIICgYBAQEBAQEAAAAEAAAAAAZGQUNUT1IAAAAAAAAPQkAAAAAADkZBQ1RPUkRFQ0lNQUxTAAAAAAAAAAAGAAAAAAFFAAAAAAAAKXpKAQAAABVjb3hSb3NzUnViaW5zdGVpbkNhbGwAAAAGAAAAAVQAAAABUwAAAAFLAAAAAXIAAAAFc2lnbWEAAAABbgQAAAAGZGVsdGFUCQAAawAAAAMFAAAAAVQFAAAABkZBQ1RPUgkAAGgAAAACAAAAAAAAAAFtBQAAAAFuBAAAAApzcXJ0RGVsdGFUCQAAbAAAAAYFAAAABmRlbHRhVAUAAAAORkFDVE9SREVDSU1BTFMAAAAAAAAAAAUAAAAAAAAAAAEFAAAADkZBQ1RPUkRFQ0lNQUxTBQAAAAZIQUxGVVAEAAAAAnVwCQAAbAAAAAYFAAAAAUUFAAAADkZBQ1RPUkRFQ0lNQUxTCQAAawAAAAMFAAAABXNpZ21hBQAAAApzcXJ0RGVsdGFUAAAAAAAAAABkBQAAAA5GQUNUT1JERUNJTUFMUwUAAAAORkFDVE9SREVDSU1BTFMFAAAABkhBTEZVUAQAAAAEZG93bgkAAGsAAAADAAAAAAAAAAABCQAAaAAAAAIFAAAABkZBQ1RPUgUAAAAGRkFDVE9SBQAAAAJ1cAQAAAACZGYJAABsAAAABgUAAAABRQUAAAAORkFDVE9SREVDSU1BTFMJAABrAAAAAwkBAAAAAS0AAAABBQAAAAFyBQAAAAZkZWx0YVQAAAAAAAAAAGQFAAAADkZBQ1RPUkRFQ0lNQUxTBQAAAA5GQUNUT1JERUNJTUFMUwUAAAAGSEFMRlVQBAAAAANwVXAJAABrAAAAAwkAAGUAAAACCQAAbAAAAAYFAAAAAUUFAAAADkZBQ1RPUkRFQ0lNQUxTCQAAawAAAAMFAAAAAXIFAAAABmRlbHRhVAAAAAAAAAAAZAUAAAAORkFDVE9SREVDSU1BTFMFAAAADkZBQ1RPUkRFQ0lNQUxTBQAAAAZIQUxGVVAFAAAABGRvd24FAAAABkZBQ1RPUgkAAGUAAAACBQAAAAJ1cAUAAAAEZG93bgQAAAAFcERvd24JAABlAAAAAgUAAAAGRkFDVE9SBQAAAANwVXAEAAAAE2ZpcnN0UHJvamVjdGVkUHJpY2UJAABrAAAAAwkAAGgAAAACCQAAaAAAAAIFAAAAAVMJAABsAAAABgUAAAACdXAFAAAADkZBQ1RPUkRFQ0lNQUxTAAAAAAAAAAAEAAAAAAAAAAAABQAAAA5GQUNUT1JERUNJTUFMUwUAAAAGSEFMRlVQCQAAbAAAAAYFAAAABGRvd24FAAAADkZBQ1RPUkRFQ0lNQUxTAAAAAAAAAAAAAAAAAAAAAAAABQAAAA5GQUNUT1JERUNJTUFMUwUAAAAGSEFMRlVQAAAAAAAAAAABBQAAAAZGQUNUT1IEAAAAFHNlY29uZFByb2plY3RlZFByaWNlCQAAawAAAAMJAABoAAAAAgkAAGgAAAACBQAAAAFTCQAAbAAAAAYFAAAAAnVwBQAAAA5GQUNUT1JERUNJTUFMUwAAAAAAAAAAAwAAAAAAAAAAAAUAAAAORkFDVE9SREVDSU1BTFMFAAAABkhBTEZVUAkAAGwAAAAGBQAAAARkb3duBQAAAA5GQUNUT1JERUNJTUFMUwAAAAAAAAAAAQAAAAAAAAAAAAUAAAAORkFDVE9SREVDSU1BTFMFAAAABkhBTEZVUAAAAAAAAAAAAQUAAAAGRkFDVE9SBAAAABN0aGlyZFByb2plY3RlZFByaWNlCQAAawAAAAMJAABoAAAAAgkAAGgAAAACBQAAAAFTCQAAbAAAAAYFAAAAAnVwBQAAAA5GQUNUT1JERUNJTUFMUwAAAAAAAAAAAgAAAAAAAAAAAAUAAAAORkFDVE9SREVDSU1BTFMFAAAABkhBTEZVUAkAAGwAAAAGBQAAAARkb3duBQAAAA5GQUNUT1JERUNJTUFMUwAAAAAAAAAAAgAAAAAAAAAAAAUAAAAORkFDVE9SREVDSU1BTFMFAAAABkhBTEZVUAAAAAAAAAAAAQUAAAAGRkFDVE9SBAAAABRmb3VydGhQcm9qZWN0ZWRQcmljZQkAAGsAAAADCQAAaAAAAAIJAABoAAAAAgUAAAABUwkAAGwAAAAGBQAAAAJ1cAUAAAAORkFDVE9SREVDSU1BTFMAAAAAAAAAAAEAAAAAAAAAAAAFAAAADkZBQ1RPUkRFQ0lNQUxTBQAAAAZIQUxGVVAJAABsAAAABgUAAAAEZG93bgUAAAAORkFDVE9SREVDSU1BTFMAAAAAAAAAAAMAAAAAAAAAAAAFAAAADkZBQ1RPUkRFQ0lNQUxTBQAAAAZIQUxGVVAAAAAAAAAAAAEFAAAABkZBQ1RPUgQAAAATZmlmdGhQcm9qZWN0ZWRQcmljZQkAAGsAAAADCQAAaAAAAAIJAABoAAAAAgUAAAABUwkAAGwAAAAGBQAAAAJ1cAUAAAAORkFDVE9SREVDSU1BTFMAAAAAAAAAAAAAAAAAAAAAAAAFAAAADkZBQ1RPUkRFQ0lNQUxTBQAAAAZIQUxGVVAJAABsAAAABgUAAAAEZG93bgUAAAAORkFDVE9SREVDSU1BTFMAAAAAAAAAAAQAAAAAAAAAAAAFAAAADkZBQ1RPUkRFQ0lNQUxTBQAAAAZIQUxGVVAAAAAAAAAAAAEFAAAABkZBQ1RPUgQAAAAPZmlyc3RJbm5lclByaWNlAwkAAGYAAAACBQAAABNmaXJzdFByb2plY3RlZFByaWNlCQAAaAAAAAIFAAAAAUsFAAAABkZBQ1RPUgkAAGUAAAACBQAAABNmaXJzdFByb2plY3RlZFByaWNlCQAAaAAAAAIFAAAAAUsFAAAABkZBQ1RPUgAAAAAAAAAAAAQAAAAQc2Vjb25kSW5uZXJQcmljZQMJAABmAAAAAgUAAAAUc2Vjb25kUHJvamVjdGVkUHJpY2UJAABoAAAAAgUAAAABSwUAAAAGRkFDVE9SCQAAZQAAAAIFAAAAFHNlY29uZFByb2plY3RlZFByaWNlCQAAaAAAAAIFAAAAAUsFAAAABkZBQ1RPUgAAAAAAAAAAAAQAAAAPdGhpcmRJbm5lclByaWNlAwkAAGYAAAACBQAAABN0aGlyZFByb2plY3RlZFByaWNlCQAAaAAAAAIFAAAAAUsFAAAABkZBQ1RPUgkAAGUAAAACBQAAABN0aGlyZFByb2plY3RlZFByaWNlCQAAaAAAAAIFAAAAAUsFAAAABkZBQ1RPUgAAAAAAAAAAAAQAAAAQZm91cnRoSW5uZXJQcmljZQMJAABmAAAAAgUAAAAUZm91cnRoUHJvamVjdGVkUHJpY2UJAABoAAAAAgUAAAABSwUAAAAGRkFDVE9SCQAAZQAAAAIFAAAAFGZvdXJ0aFByb2plY3RlZFByaWNlBQAAAAFLAAAAAAAAAAAABAAAAA9maWZ0aElubmVyUHJpY2UDCQAAZgAAAAIFAAAAE2ZpZnRoUHJvamVjdGVkUHJpY2UJAABoAAAAAgUAAAABSwUAAAAGRkFDVE9SCQAAZQAAAAIFAAAAE2ZpZnRoUHJvamVjdGVkUHJpY2UFAAAAAUsAAAAAAAAAAAAEAAAAFGZpcnN0TGV2ZWxGaXJzdFZhbHVlCQAAawAAAAMJAABkAAAAAgkAAGsAAAADBQAAAA9maXJzdElubmVyUHJpY2UFAAAAA3BVcAUAAAAGRkFDVE9SCQAAawAAAAMFAAAAEHNlY29uZElubmVyUHJpY2UFAAAABXBEb3duBQAAAAZGQUNUT1IFAAAAAmRmBQAAAAZGQUNUT1IEAAAAFWZpcnN0TGV2ZWxTZWNvbmRWYWx1ZQkAAGsAAAADCQAAZAAAAAIJAABrAAAAAwUAAAAQc2Vjb25kSW5uZXJQcmljZQUAAAADcFVwBQAAAAZGQUNUT1IJAABrAAAAAwUAAAAPdGhpcmRJbm5lclByaWNlBQAAAAVwRG93bgUAAAAGRkFDVE9SBQAAAAJkZgUAAAAGRkFDVE9SBAAAABRmaXJzdExldmVsVGhpcmRWYWx1ZQkAAGsAAAADCQAAZAAAAAIJAABrAAAAAwUAAAAPdGhpcmRJbm5lclByaWNlBQAAAANwVXAFAAAABkZBQ1RPUgkAAGsAAAADBQAAABBmb3VydGhJbm5lclByaWNlBQAAAAVwRG93bgUAAAAGRkFDVE9SBQAAAAJkZgUAAAAGRkFDVE9SBAAAABVmaXJzdExldmVsRm91cnRoVmFsdWUJAABrAAAAAwkAAGQAAAACCQAAawAAAAMFAAAAEGZvdXJ0aElubmVyUHJpY2UFAAAAA3BVcAUAAAAGRkFDVE9SCQAAawAAAAMFAAAAD2ZpZnRoSW5uZXJQcmljZQUAAAAFcERvd24FAAAABkZBQ1RPUgUAAAACZGYFAAAABkZBQ1RPUgQAAAAVc2Vjb25kTGV2ZWxGaXJzdFZhbHVlCQAAawAAAAMJAABkAAAAAgkAAGsAAAADBQAAABRmaXJzdExldmVsRmlyc3RWYWx1ZQUAAAADcFVwBQAAAAZGQUNUT1IJAABrAAAAAwUAAAAVZmlyc3RMZXZlbFNlY29uZFZhbHVlBQAAAAVwRG93bgUAAAAGRkFDVE9SBQAAAAJkZgUAAAAGRkFDVE9SBAAAABZzZWNvbmRMZXZlbFNlY29uZFZhbHVlCQAAawAAAAMJAABkAAAAAgkAAGsAAAADBQAAABVmaXJzdExldmVsU2Vjb25kVmFsdWUFAAAAA3BVcAUAAAAGRkFDVE9SCQAAawAAAAMFAAAAFGZpcnN0TGV2ZWxUaGlyZFZhbHVlBQAAAAVwRG93bgUAAAAGRkFDVE9SBQAAAAJkZgUAAAAGRkFDVE9SBAAAABVzZWNvbmRMZXZlbFRoaXJkVmFsdWUJAABrAAAAAwkAAGQAAAACCQAAawAAAAMFAAAAFGZpcnN0TGV2ZWxUaGlyZFZhbHVlBQAAAANwVXAFAAAABkZBQ1RPUgkAAGsAAAADBQAAABVmaXJzdExldmVsRm91cnRoVmFsdWUFAAAABXBEb3duBQAAAAZGQUNUT1IFAAAAAmRmBQAAAAZGQUNUT1IEAAAAFHRoaXJkTGV2ZWxGaXJzdFZhbHVlCQAAawAAAAMJAABkAAAAAgkAAGsAAAADBQAAABVzZWNvbmRMZXZlbEZpcnN0VmFsdWUFAAAAA3BVcAUAAAAGRkFDVE9SCQAAawAAAAMFAAAAFnNlY29uZExldmVsU2Vjb25kVmFsdWUFAAAABXBEb3duBQAAAAZGQUNUT1IFAAAAAmRmBQAAAAZGQUNUT1IEAAAAFXRoaXJkTGV2ZWxTZWNvbmRWYWx1ZQkAAGsAAAADCQAAZAAAAAIJAABrAAAAAwUAAAAWc2Vjb25kTGV2ZWxTZWNvbmRWYWx1ZQUAAAADcFVwBQAAAAZGQUNUT1IJAABrAAAAAwUAAAAVc2Vjb25kTGV2ZWxUaGlyZFZhbHVlBQAAAAVwRG93bgUAAAAGRkFDVE9SBQAAAAJkZgUAAAAGRkFDVE9SBAAAAAtmb3VydGhMZXZlbAkAAGsAAAADCQAAZAAAAAIJAABrAAAAAwUAAAAUdGhpcmRMZXZlbEZpcnN0VmFsdWUFAAAAA3BVcAUAAAAGRkFDVE9SCQAAawAAAAMFAAAAFXRoaXJkTGV2ZWxTZWNvbmRWYWx1ZQUAAAAFcERvd24FAAAABkZBQ1RPUgUAAAACZGYFAAAABkZBQ1RPUgUAAAALZm91cnRoTGV2ZWwAAAABAAAAAWkBAAAAEWNhbGN1bGF0Q2FsbFByaWNlAAAABgAAAAFUAAAAAVMAAAABSwAAAAFyAAAABXNpZ21hAAAAAW4EAAAACmZpbmFsVmFsdWUJAQAAABVjb3hSb3NzUnViaW5zdGVpbkNhbGwAAAAGBQAAAAFUBQAAAAFTBQAAAAFLBQAAAAFyBQAAAAVzaWdtYQUAAAABbgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAAGZGVsdGFUAAAAAAAAAAAACQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAAApzcXJ0RGVsdGFUAAAAAAAAAAAACQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAAAJ1cAAAAAAAAAAAAAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAAEZG93bgAAAAAAAAAAAAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAACZGYAAAAAAAAAAAAJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAAA3BVcAAAAAAAAAAAAAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAAFcERvd24AAAAAAAAAAAAJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAAD2ZpcnN0SW5uZXJQcmljZQAAAAAAAAAAAAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAAQc2Vjb25kSW5uZXJQcmljZQAAAAAAAAAAAAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAAPdGhpcmRJbm5lclByaWNlAAAAAAAAAAAACQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAABBmb3VydGhJbm5lclByaWNlAAAAAAAAAAAACQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAAA9maWZ0aElubmVyUHJpY2UAAAAAAAAAAAAJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAAFGZpcnN0TGV2ZWxGaXJzdFZhbHVlAAAAAAAAAAAACQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAAApmaW5hbFZhbHVlBQAAAApmaW5hbFZhbHVlBQAAAANuaWwAAAAAv6pUhw==", "chainId": 84, "height": 844882, "spentComplexity": 0 } View: original | compacted Prev: kjoLnBMSUCg7zaFd97oiHKG2BB2PLaFAAzwwVu9pLkh Next: GbGXhbErYH3w1rE5fusFHMgdDQPPVGQ17sticyZjuFW9 Diff:
Old | New | Differences | |
---|---|---|---|
7 | 7 | ||
8 | 8 | let E = 2718282 | |
9 | 9 | ||
10 | - | @Callable(i) | |
11 | 10 | func coxRossRubinsteinCall (T,S,K,r,sigma,n) = { | |
12 | 11 | let deltaT = fraction(T, FACTOR, (365 * n)) | |
13 | 12 | let sqrtDeltaT = pow(deltaT, FACTORDECIMALS, 5, 1, FACTORDECIMALS, HALFUP) | |
46 | 45 | let thirdLevelFirstValue = fraction((fraction(secondLevelFirstValue, pUp, FACTOR) + fraction(secondLevelSecondValue, pDown, FACTOR)), df, FACTOR) | |
47 | 46 | let thirdLevelSecondValue = fraction((fraction(secondLevelSecondValue, pUp, FACTOR) + fraction(secondLevelThirdValue, pDown, FACTOR)), df, FACTOR) | |
48 | 47 | let fourthLevel = fraction((fraction(thirdLevelFirstValue, pUp, FACTOR) + fraction(thirdLevelSecondValue, pDown, FACTOR)), df, FACTOR) | |
49 | - | WriteSet([DataEntry("deltaT", deltaT), DataEntry("sqrtDeltaT", sqrtDeltaT), DataEntry("up", up), DataEntry("down", down), DataEntry("df", df), DataEntry("pUp", pUp), DataEntry("pDown", pDown), DataEntry("firstInnerPrice", firstInnerPrice), DataEntry("secondInnerPrice", secondInnerPrice), DataEntry("thirdInnerPrice", thirdInnerPrice), DataEntry("fourthInnerPrice", fourthInnerPrice), DataEntry("fifthInnerPrice", fifthInnerPrice), DataEntry("firstLevelFirstValue", firstLevelFirstValue), DataEntry("finalValue", fourthLevel)]) | |
48 | + | fourthLevel | |
49 | + | } | |
50 | + | ||
51 | + | ||
52 | + | @Callable(i) | |
53 | + | func calculatCallPrice (T,S,K,r,sigma,n) = { | |
54 | + | let finalValue = coxRossRubinsteinCall(T, S, K, r, sigma, n) | |
55 | + | WriteSet([DataEntry("deltaT", 0), DataEntry("sqrtDeltaT", 0), DataEntry("up", 0), DataEntry("down", 0), DataEntry("df", 0), DataEntry("pUp", 0), DataEntry("pDown", 0), DataEntry("firstInnerPrice", 0), DataEntry("secondInnerPrice", 0), DataEntry("thirdInnerPrice", 0), DataEntry("fourthInnerPrice", 0), DataEntry("fifthInnerPrice", 0), DataEntry("firstLevelFirstValue", 0), DataEntry("finalValue", finalValue)]) | |
50 | 56 | } | |
51 | 57 | ||
52 | 58 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 3 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let FACTOR = 1000000 | |
5 | 5 | ||
6 | 6 | let FACTORDECIMALS = 6 | |
7 | 7 | ||
8 | 8 | let E = 2718282 | |
9 | 9 | ||
10 | - | @Callable(i) | |
11 | 10 | func coxRossRubinsteinCall (T,S,K,r,sigma,n) = { | |
12 | 11 | let deltaT = fraction(T, FACTOR, (365 * n)) | |
13 | 12 | let sqrtDeltaT = pow(deltaT, FACTORDECIMALS, 5, 1, FACTORDECIMALS, HALFUP) | |
14 | 13 | let up = pow(E, FACTORDECIMALS, fraction(sigma, sqrtDeltaT, 100), FACTORDECIMALS, FACTORDECIMALS, HALFUP) | |
15 | 14 | let down = fraction(1, (FACTOR * FACTOR), up) | |
16 | 15 | let df = pow(E, FACTORDECIMALS, fraction(-(r), deltaT, 100), FACTORDECIMALS, FACTORDECIMALS, HALFUP) | |
17 | 16 | let pUp = fraction((pow(E, FACTORDECIMALS, fraction(r, deltaT, 100), FACTORDECIMALS, FACTORDECIMALS, HALFUP) - down), FACTOR, (up - down)) | |
18 | 17 | let pDown = (FACTOR - pUp) | |
19 | 18 | let firstProjectedPrice = fraction(((S * pow(up, FACTORDECIMALS, 4, 0, FACTORDECIMALS, HALFUP)) * pow(down, FACTORDECIMALS, 0, 0, FACTORDECIMALS, HALFUP)), 1, FACTOR) | |
20 | 19 | let secondProjectedPrice = fraction(((S * pow(up, FACTORDECIMALS, 3, 0, FACTORDECIMALS, HALFUP)) * pow(down, FACTORDECIMALS, 1, 0, FACTORDECIMALS, HALFUP)), 1, FACTOR) | |
21 | 20 | let thirdProjectedPrice = fraction(((S * pow(up, FACTORDECIMALS, 2, 0, FACTORDECIMALS, HALFUP)) * pow(down, FACTORDECIMALS, 2, 0, FACTORDECIMALS, HALFUP)), 1, FACTOR) | |
22 | 21 | let fourthProjectedPrice = fraction(((S * pow(up, FACTORDECIMALS, 1, 0, FACTORDECIMALS, HALFUP)) * pow(down, FACTORDECIMALS, 3, 0, FACTORDECIMALS, HALFUP)), 1, FACTOR) | |
23 | 22 | let fifthProjectedPrice = fraction(((S * pow(up, FACTORDECIMALS, 0, 0, FACTORDECIMALS, HALFUP)) * pow(down, FACTORDECIMALS, 4, 0, FACTORDECIMALS, HALFUP)), 1, FACTOR) | |
24 | 23 | let firstInnerPrice = if ((firstProjectedPrice > (K * FACTOR))) | |
25 | 24 | then (firstProjectedPrice - (K * FACTOR)) | |
26 | 25 | else 0 | |
27 | 26 | let secondInnerPrice = if ((secondProjectedPrice > (K * FACTOR))) | |
28 | 27 | then (secondProjectedPrice - (K * FACTOR)) | |
29 | 28 | else 0 | |
30 | 29 | let thirdInnerPrice = if ((thirdProjectedPrice > (K * FACTOR))) | |
31 | 30 | then (thirdProjectedPrice - (K * FACTOR)) | |
32 | 31 | else 0 | |
33 | 32 | let fourthInnerPrice = if ((fourthProjectedPrice > (K * FACTOR))) | |
34 | 33 | then (fourthProjectedPrice - K) | |
35 | 34 | else 0 | |
36 | 35 | let fifthInnerPrice = if ((fifthProjectedPrice > (K * FACTOR))) | |
37 | 36 | then (fifthProjectedPrice - K) | |
38 | 37 | else 0 | |
39 | 38 | let firstLevelFirstValue = fraction((fraction(firstInnerPrice, pUp, FACTOR) + fraction(secondInnerPrice, pDown, FACTOR)), df, FACTOR) | |
40 | 39 | let firstLevelSecondValue = fraction((fraction(secondInnerPrice, pUp, FACTOR) + fraction(thirdInnerPrice, pDown, FACTOR)), df, FACTOR) | |
41 | 40 | let firstLevelThirdValue = fraction((fraction(thirdInnerPrice, pUp, FACTOR) + fraction(fourthInnerPrice, pDown, FACTOR)), df, FACTOR) | |
42 | 41 | let firstLevelFourthValue = fraction((fraction(fourthInnerPrice, pUp, FACTOR) + fraction(fifthInnerPrice, pDown, FACTOR)), df, FACTOR) | |
43 | 42 | let secondLevelFirstValue = fraction((fraction(firstLevelFirstValue, pUp, FACTOR) + fraction(firstLevelSecondValue, pDown, FACTOR)), df, FACTOR) | |
44 | 43 | let secondLevelSecondValue = fraction((fraction(firstLevelSecondValue, pUp, FACTOR) + fraction(firstLevelThirdValue, pDown, FACTOR)), df, FACTOR) | |
45 | 44 | let secondLevelThirdValue = fraction((fraction(firstLevelThirdValue, pUp, FACTOR) + fraction(firstLevelFourthValue, pDown, FACTOR)), df, FACTOR) | |
46 | 45 | let thirdLevelFirstValue = fraction((fraction(secondLevelFirstValue, pUp, FACTOR) + fraction(secondLevelSecondValue, pDown, FACTOR)), df, FACTOR) | |
47 | 46 | let thirdLevelSecondValue = fraction((fraction(secondLevelSecondValue, pUp, FACTOR) + fraction(secondLevelThirdValue, pDown, FACTOR)), df, FACTOR) | |
48 | 47 | let fourthLevel = fraction((fraction(thirdLevelFirstValue, pUp, FACTOR) + fraction(thirdLevelSecondValue, pDown, FACTOR)), df, FACTOR) | |
49 | - | WriteSet([DataEntry("deltaT", deltaT), DataEntry("sqrtDeltaT", sqrtDeltaT), DataEntry("up", up), DataEntry("down", down), DataEntry("df", df), DataEntry("pUp", pUp), DataEntry("pDown", pDown), DataEntry("firstInnerPrice", firstInnerPrice), DataEntry("secondInnerPrice", secondInnerPrice), DataEntry("thirdInnerPrice", thirdInnerPrice), DataEntry("fourthInnerPrice", fourthInnerPrice), DataEntry("fifthInnerPrice", fifthInnerPrice), DataEntry("firstLevelFirstValue", firstLevelFirstValue), DataEntry("finalValue", fourthLevel)]) | |
48 | + | fourthLevel | |
49 | + | } | |
50 | + | ||
51 | + | ||
52 | + | @Callable(i) | |
53 | + | func calculatCallPrice (T,S,K,r,sigma,n) = { | |
54 | + | let finalValue = coxRossRubinsteinCall(T, S, K, r, sigma, n) | |
55 | + | WriteSet([DataEntry("deltaT", 0), DataEntry("sqrtDeltaT", 0), DataEntry("up", 0), DataEntry("down", 0), DataEntry("df", 0), DataEntry("pUp", 0), DataEntry("pDown", 0), DataEntry("firstInnerPrice", 0), DataEntry("secondInnerPrice", 0), DataEntry("thirdInnerPrice", 0), DataEntry("fourthInnerPrice", 0), DataEntry("fifthInnerPrice", 0), DataEntry("firstLevelFirstValue", 0), DataEntry("finalValue", finalValue)]) | |
50 | 56 | } | |
51 | 57 | ||
52 | 58 |
github/deemru/w8io/873ac7e 112.87 ms ◑![]()