mirror of
https://github.com/darkrenaissance/darkfi.git
synced 2026-01-09 14:48:08 -05:00
31 lines
829 B
Python
31 lines
829 B
Python
from finite_fields.modp import IntegersModP
|
|
|
|
q = 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001
|
|
modq = IntegersModP(q)
|
|
|
|
a = modq(-1)
|
|
print("0x%x" % a.n)
|
|
print("\n")
|
|
two = modq(2)
|
|
inv2 = modq(2).inverse()
|
|
print("Inverse of 2 = 0x%x" % inv2.n)
|
|
print((two * inv2))
|
|
# This is from bellman
|
|
inv2_bellman = 0x39f6d3a994cebea4199cec0404d0ec02a9ded2017fff2dff7fffffff80000001
|
|
assert inv2.n == inv2_bellman
|
|
assert (2 * inv2.n) % q == 1
|
|
|
|
# Futures contract calculation
|
|
multiplier = modq(1)
|
|
quantity = modq(100)
|
|
entry_price = modq(10000)
|
|
exit_price = modq(15000)
|
|
|
|
initial_margin = multiplier * quantity
|
|
print("initial margin =", initial_margin)
|
|
price_return = exit_price * entry_price.inverse()
|
|
print("R =", price_return)
|
|
pnl = initial_margin - (initial_margin * exit_price) * entry_price.inverse()
|
|
print("PNL =", pnl)
|
|
|