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