tx · 4VxCfsXHVmSdm8TuMRzeAnaLb456cRmVCUqnAWJD4NTK 3MvQVj21fwPXbyXsrVDV2Sf639TcWTsaxmC: -0.09000000 Waves 2020.01.08 13:07 [844800] smart account 3MvQVj21fwPXbyXsrVDV2Sf639TcWTsaxmC > SELF 0.00000000 Waves
{ "type": 13, "id": "4VxCfsXHVmSdm8TuMRzeAnaLb456cRmVCUqnAWJD4NTK", "fee": 9000000, "feeAssetId": null, "timestamp": 1578478074251, "version": 1, "sender": "3MvQVj21fwPXbyXsrVDV2Sf639TcWTsaxmC", "senderPublicKey": "GfU9G8BJcrUfL2H2QthDHbeLHThimafNuKPuDQm9wbzr", "proofs": [ "5e2AKoU1oHfFdND2D6aTUxWLUQrAxtJUVLU4yzwfoHjy1mTSKWVTBFjHcc6k8DnwvkumHRfGGsaTKd319ySCqvKr" ], "script": "base64:AAIDAAAAAAAAAAwIARIICgYBAQEBAQEAAAAEAAAAAAZGQUNUT1IAAAAAAAAPQkAAAAAADkZBQ1RPUkRFQ0lNQUxTAAAAAAAAAAAGAAAAAAFFAAAAAAAAKXpJAQAAABRjYWxjdWxhdGVJbm5lclZhbHVlcwAAAAIAAAABYQAAAAtpbm5lclZhbHVlcwMJAABmAAAAAgUAAAABYQAAAAAAAAAD6AkABEwAAAACBQAAAAFhBQAAAAtpbm5lclZhbHVlcwUAAAALaW5uZXJWYWx1ZXMAAAABAAAAAWkBAAAAFWNveFJvc3NSdWJpbnN0ZWluQ2FsbAAAAAYAAAABVAAAAAFTAAAAAUsAAAABcgAAAAVzaWdtYQAAAAFuBAAAAAZkZWx0YVQJAABrAAAAAwUAAAABVAUAAAAGRkFDVE9SCQAAaAAAAAIAAAAAAAAAAW0FAAAAAW4EAAAACnNxcnREZWx0YVQJAABsAAAABgUAAAAGZGVsdGFUBQAAAA5GQUNUT1JERUNJTUFMUwAAAAAAAAAABQAAAAAAAAAAAQUAAAAORkFDVE9SREVDSU1BTFMFAAAABkhBTEZVUAQAAAACdXAJAABsAAAABgUAAAABRQUAAAAORkFDVE9SREVDSU1BTFMJAABrAAAAAwUAAAAFc2lnbWEFAAAACnNxcnREZWx0YVQAAAAAAAAAAGQFAAAADkZBQ1RPUkRFQ0lNQUxTBQAAAA5GQUNUT1JERUNJTUFMUwUAAAAGSEFMRlVQBAAAAARkb3duCQAAawAAAAMAAAAAAAAAAAEJAABoAAAAAgUAAAAGRkFDVE9SBQAAAAZGQUNUT1IFAAAAAnVwBAAAAAJkZgkAAGwAAAAGBQAAAAFFBQAAAA5GQUNUT1JERUNJTUFMUwkAAGsAAAADCQEAAAABLQAAAAEFAAAAAXIFAAAABmRlbHRhVAAAAAAAAAAAZAUAAAAORkFDVE9SREVDSU1BTFMFAAAADkZBQ1RPUkRFQ0lNQUxTBQAAAAZIQUxGVVAEAAAAA3BVcAkAAGsAAAADCQAAZQAAAAIJAABsAAAABgUAAAABRQUAAAAORkFDVE9SREVDSU1BTFMJAABrAAAAAwUAAAABcgUAAAAGZGVsdGFUAAAAAAAAAABkBQAAAA5GQUNUT1JERUNJTUFMUwUAAAAORkFDVE9SREVDSU1BTFMFAAAABkhBTEZVUAUAAAAEZG93bgUAAAAGRkFDVE9SCQAAZQAAAAIFAAAAAnVwBQAAAARkb3duBAAAAAVwRG93bgkAAGUAAAACBQAAAAZGQUNUT1IFAAAAA3BVcAQAAAATZmlyc3RQcm9qZWN0ZWRQcmljZQkAAGsAAAADCQAAaAAAAAIJAABoAAAAAgUAAAABUwkAAGwAAAAGBQAAAAJ1cAUAAAAORkFDVE9SREVDSU1BTFMAAAAAAAAAAAQAAAAAAAAAAAAFAAAADkZBQ1RPUkRFQ0lNQUxTBQAAAAZIQUxGVVAJAABsAAAABgUAAAAEZG93bgUAAAAORkFDVE9SREVDSU1BTFMAAAAAAAAAAAAAAAAAAAAAAAAFAAAADkZBQ1RPUkRFQ0lNQUxTBQAAAAZIQUxGVVAAAAAAAAAAAAEFAAAABkZBQ1RPUgQAAAAUc2Vjb25kUHJvamVjdGVkUHJpY2UJAABrAAAAAwkAAGgAAAACCQAAaAAAAAIFAAAAAVMJAABsAAAABgUAAAACdXAFAAAADkZBQ1RPUkRFQ0lNQUxTAAAAAAAAAAADAAAAAAAAAAAABQAAAA5GQUNUT1JERUNJTUFMUwUAAAAGSEFMRlVQCQAAbAAAAAYFAAAABGRvd24FAAAADkZBQ1RPUkRFQ0lNQUxTAAAAAAAAAAABAAAAAAAAAAAABQAAAA5GQUNUT1JERUNJTUFMUwUAAAAGSEFMRlVQAAAAAAAAAAABBQAAAAZGQUNUT1IEAAAAE3RoaXJkUHJvamVjdGVkUHJpY2UJAABrAAAAAwkAAGgAAAACCQAAaAAAAAIFAAAAAVMJAABsAAAABgUAAAACdXAFAAAADkZBQ1RPUkRFQ0lNQUxTAAAAAAAAAAACAAAAAAAAAAAABQAAAA5GQUNUT1JERUNJTUFMUwUAAAAGSEFMRlVQCQAAbAAAAAYFAAAABGRvd24FAAAADkZBQ1RPUkRFQ0lNQUxTAAAAAAAAAAACAAAAAAAAAAAABQAAAA5GQUNUT1JERUNJTUFMUwUAAAAGSEFMRlVQAAAAAAAAAAABBQAAAAZGQUNUT1IEAAAAFGZvdXJ0aFByb2plY3RlZFByaWNlCQAAawAAAAMJAABoAAAAAgkAAGgAAAACBQAAAAFTCQAAbAAAAAYFAAAAAnVwBQAAAA5GQUNUT1JERUNJTUFMUwAAAAAAAAAAAQAAAAAAAAAAAAUAAAAORkFDVE9SREVDSU1BTFMFAAAABkhBTEZVUAkAAGwAAAAGBQAAAARkb3duBQAAAA5GQUNUT1JERUNJTUFMUwAAAAAAAAAAAwAAAAAAAAAAAAUAAAAORkFDVE9SREVDSU1BTFMFAAAABkhBTEZVUAAAAAAAAAAAAQUAAAAGRkFDVE9SBAAAABNmaWZ0aFByb2plY3RlZFByaWNlCQAAawAAAAMJAABoAAAAAgkAAGgAAAACBQAAAAFTCQAAbAAAAAYFAAAAAnVwBQAAAA5GQUNUT1JERUNJTUFMUwAAAAAAAAAAAAAAAAAAAAAAAAUAAAAORkFDVE9SREVDSU1BTFMFAAAABkhBTEZVUAkAAGwAAAAGBQAAAARkb3duBQAAAA5GQUNUT1JERUNJTUFMUwAAAAAAAAAABAAAAAAAAAAAAAUAAAAORkFDVE9SREVDSU1BTFMFAAAABkhBTEZVUAAAAAAAAAAAAQUAAAAGRkFDVE9SBAAAAA9maXJzdElubmVyUHJpY2UDCQAAZgAAAAIFAAAAE2ZpcnN0UHJvamVjdGVkUHJpY2UFAAAAAUsJAABlAAAAAgUAAAATZmlyc3RQcm9qZWN0ZWRQcmljZQkAAGgAAAACBQAAAAFLBQAAAAZGQUNUT1IAAAAAAAAAAAAEAAAAEHNlY29uZElubmVyUHJpY2UDCQAAZgAAAAIFAAAAFHNlY29uZFByb2plY3RlZFByaWNlBQAAAAFLCQAAZQAAAAIFAAAAFHNlY29uZFByb2plY3RlZFByaWNlCQAAaAAAAAIFAAAAAUsFAAAABkZBQ1RPUgAAAAAAAAAAAAQAAAAPdGhpcmRJbm5lclByaWNlAwkAAGYAAAACBQAAABN0aGlyZFByb2plY3RlZFByaWNlBQAAAAFLCQAAZQAAAAIFAAAAE3RoaXJkUHJvamVjdGVkUHJpY2UJAABoAAAAAgUAAAABSwUAAAAGRkFDVE9SAAAAAAAAAAAABAAAABBmb3VydGhJbm5lclByaWNlAwkAAGYAAAACBQAAABRmb3VydGhQcm9qZWN0ZWRQcmljZQUAAAABSwkAAGUAAAACBQAAABRmb3VydGhQcm9qZWN0ZWRQcmljZQUAAAABSwAAAAAAAAAAAAQAAAAPZmlmdGhJbm5lclByaWNlAwkAAGYAAAACBQAAABNmaWZ0aFByb2plY3RlZFByaWNlBQAAAAFLCQAAZQAAAAIFAAAAE2ZpZnRoUHJvamVjdGVkUHJpY2UFAAAAAUsAAAAAAAAAAAAJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAABmRlbHRhVAUAAAAGZGVsdGFUCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAAApzcXJ0RGVsdGFUBQAAAApzcXJ0RGVsdGFUCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAAAJ1cAUAAAACdXAJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAABGRvd24FAAAABGRvd24JAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAAAmRmBQAAAAJkZgkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAADcFVwBQAAAANwVXAJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAABXBEb3duBQAAAAVwRG93bgkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAAPZmlyc3RJbm5lclByaWNlBQAAAA9maXJzdElubmVyUHJpY2UJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAAEHNlY29uZElubmVyUHJpY2UFAAAAEHNlY29uZElubmVyUHJpY2UJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAAD3RoaXJkSW5uZXJQcmljZQUAAAAPdGhpcmRJbm5lclByaWNlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAABBmb3VydGhJbm5lclByaWNlBQAAABBmb3VydGhJbm5lclByaWNlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAAA9maWZ0aElubmVyUHJpY2UFAAAAD2ZpZnRoSW5uZXJQcmljZQUAAAADbmlsAAAAAD0AMRg=", "chainId": 84, "height": 844800, "spentComplexity": 0 } View: original | compacted Prev: aDyZ6YZFZeeBPYC7n1qrLxvSULnpJCrhYUMxCdEbkD8 Next: 2pnV1R1VEXUwXYsRxW6BCQDfyKjc1AzCdtauXrjnaN6D Diff:
Old | New | Differences | |
---|---|---|---|
26 | 26 | let thirdProjectedPrice = fraction(((S * pow(up, FACTORDECIMALS, 2, 0, FACTORDECIMALS, HALFUP)) * pow(down, FACTORDECIMALS, 2, 0, FACTORDECIMALS, HALFUP)), 1, FACTOR) | |
27 | 27 | let fourthProjectedPrice = fraction(((S * pow(up, FACTORDECIMALS, 1, 0, FACTORDECIMALS, HALFUP)) * pow(down, FACTORDECIMALS, 3, 0, FACTORDECIMALS, HALFUP)), 1, FACTOR) | |
28 | 28 | let fifthProjectedPrice = fraction(((S * pow(up, FACTORDECIMALS, 0, 0, FACTORDECIMALS, HALFUP)) * pow(down, FACTORDECIMALS, 4, 0, FACTORDECIMALS, HALFUP)), 1, FACTOR) | |
29 | - | let firstInnerPrice = if ((firstProjectedPrice > | |
30 | - | then (firstProjectedPrice - ( | |
29 | + | let firstInnerPrice = if ((firstProjectedPrice > K)) | |
30 | + | then (firstProjectedPrice - (K * FACTOR)) | |
31 | 31 | else 0 | |
32 | - | let secondInnerPrice = if ((secondProjectedPrice > | |
33 | - | then (secondProjectedPrice - ( | |
32 | + | let secondInnerPrice = if ((secondProjectedPrice > K)) | |
33 | + | then (secondProjectedPrice - (K * FACTOR)) | |
34 | 34 | else 0 | |
35 | - | let thirdInnerPrice = if ((thirdProjectedPrice > | |
36 | - | then (thirdProjectedPrice - ( | |
35 | + | let thirdInnerPrice = if ((thirdProjectedPrice > K)) | |
36 | + | then (thirdProjectedPrice - (K * FACTOR)) | |
37 | 37 | else 0 | |
38 | - | let fourthInnerPrice = if ((fourthProjectedPrice > | |
39 | - | then (fourthProjectedPrice - | |
38 | + | let fourthInnerPrice = if ((fourthProjectedPrice > K)) | |
39 | + | then (fourthProjectedPrice - K) | |
40 | 40 | else 0 | |
41 | - | let fifthInnerPrice = if ((fifthProjectedPrice > | |
42 | - | then (fifthProjectedPrice - | |
41 | + | let fifthInnerPrice = if ((fifthProjectedPrice > K)) | |
42 | + | then (fifthProjectedPrice - K) | |
43 | 43 | else 0 | |
44 | 44 | 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)]) | |
45 | 45 | } |
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 = 2718281 | |
9 | 9 | ||
10 | 10 | func calculateInnerValues (a,innerValues) = if ((a > 1000)) | |
11 | 11 | then a :: innerValues | |
12 | 12 | else innerValues | |
13 | 13 | ||
14 | 14 | ||
15 | 15 | @Callable(i) | |
16 | 16 | func coxRossRubinsteinCall (T,S,K,r,sigma,n) = { | |
17 | 17 | let deltaT = fraction(T, FACTOR, (365 * n)) | |
18 | 18 | let sqrtDeltaT = pow(deltaT, FACTORDECIMALS, 5, 1, FACTORDECIMALS, HALFUP) | |
19 | 19 | let up = pow(E, FACTORDECIMALS, fraction(sigma, sqrtDeltaT, 100), FACTORDECIMALS, FACTORDECIMALS, HALFUP) | |
20 | 20 | let down = fraction(1, (FACTOR * FACTOR), up) | |
21 | 21 | let df = pow(E, FACTORDECIMALS, fraction(-(r), deltaT, 100), FACTORDECIMALS, FACTORDECIMALS, HALFUP) | |
22 | 22 | let pUp = fraction((pow(E, FACTORDECIMALS, fraction(r, deltaT, 100), FACTORDECIMALS, FACTORDECIMALS, HALFUP) - down), FACTOR, (up - down)) | |
23 | 23 | let pDown = (FACTOR - pUp) | |
24 | 24 | let firstProjectedPrice = fraction(((S * pow(up, FACTORDECIMALS, 4, 0, FACTORDECIMALS, HALFUP)) * pow(down, FACTORDECIMALS, 0, 0, FACTORDECIMALS, HALFUP)), 1, FACTOR) | |
25 | 25 | let secondProjectedPrice = fraction(((S * pow(up, FACTORDECIMALS, 3, 0, FACTORDECIMALS, HALFUP)) * pow(down, FACTORDECIMALS, 1, 0, FACTORDECIMALS, HALFUP)), 1, FACTOR) | |
26 | 26 | let thirdProjectedPrice = fraction(((S * pow(up, FACTORDECIMALS, 2, 0, FACTORDECIMALS, HALFUP)) * pow(down, FACTORDECIMALS, 2, 0, FACTORDECIMALS, HALFUP)), 1, FACTOR) | |
27 | 27 | let fourthProjectedPrice = fraction(((S * pow(up, FACTORDECIMALS, 1, 0, FACTORDECIMALS, HALFUP)) * pow(down, FACTORDECIMALS, 3, 0, FACTORDECIMALS, HALFUP)), 1, FACTOR) | |
28 | 28 | let fifthProjectedPrice = fraction(((S * pow(up, FACTORDECIMALS, 0, 0, FACTORDECIMALS, HALFUP)) * pow(down, FACTORDECIMALS, 4, 0, FACTORDECIMALS, HALFUP)), 1, FACTOR) | |
29 | - | let firstInnerPrice = if ((firstProjectedPrice > | |
30 | - | then (firstProjectedPrice - ( | |
29 | + | let firstInnerPrice = if ((firstProjectedPrice > K)) | |
30 | + | then (firstProjectedPrice - (K * FACTOR)) | |
31 | 31 | else 0 | |
32 | - | let secondInnerPrice = if ((secondProjectedPrice > | |
33 | - | then (secondProjectedPrice - ( | |
32 | + | let secondInnerPrice = if ((secondProjectedPrice > K)) | |
33 | + | then (secondProjectedPrice - (K * FACTOR)) | |
34 | 34 | else 0 | |
35 | - | let thirdInnerPrice = if ((thirdProjectedPrice > | |
36 | - | then (thirdProjectedPrice - ( | |
35 | + | let thirdInnerPrice = if ((thirdProjectedPrice > K)) | |
36 | + | then (thirdProjectedPrice - (K * FACTOR)) | |
37 | 37 | else 0 | |
38 | - | let fourthInnerPrice = if ((fourthProjectedPrice > | |
39 | - | then (fourthProjectedPrice - | |
38 | + | let fourthInnerPrice = if ((fourthProjectedPrice > K)) | |
39 | + | then (fourthProjectedPrice - K) | |
40 | 40 | else 0 | |
41 | - | let fifthInnerPrice = if ((fifthProjectedPrice > | |
42 | - | then (fifthProjectedPrice - | |
41 | + | let fifthInnerPrice = if ((fifthProjectedPrice > K)) | |
42 | + | then (fifthProjectedPrice - K) | |
43 | 43 | else 0 | |
44 | 44 | 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)]) | |
45 | 45 | } | |
46 | 46 | ||
47 | 47 |
github/deemru/w8io/873ac7e 43.15 ms ◑![]()