Basic Forex Classes
Project description
python_forex_types
Class models for Eight major Forex Currency Pairs.
Summary of Classes provided
class | init example | description |
---|---|---|
Calc | -- | Has class methods for doing calculations with other types. |
Cash | Cash("102.231", Currency.JPY) | Cash represented by decimal number and currency. |
Currency | Currency("EUR") | EUR, GBP, AUD, NZD, USD, CAD, CHF or JPY |
FracPips | FracPips(112345) | Integer subclass for fractional pips. |
LotSize | LotSize(20000) | Integer subclass for number of units in trade. |
Pair | Pair("AUD_USD") | one of 28 forex pairs from the 8 currencies |
Price | Price("1.2342") | Decimal based representation of forex price. |
Quick Example
from forex_types import Pair, Currency, Price, LotSize, Calc, Direction
# Details of trade:
pair = Pair.EUR_USD
lot_size = LotSize(20000)
direction = Direction.LONG
entry_price = Price("1.2223")
exit_price = Price("1.2244")
# Figuring out the profit (or loss)
profit = Calc.get_trade_cash(lot_size, pair.quote, direction, entry_price, exit_price)
print(f"Trade Result: {profit.nearest_cent()}")
Quick note about Price class
Although the Price
class represents price, it does not know its quote
currency. When constructed it determines if the price is in a Japanese Yen
kind of range, and if so a subclass called NinjaPrice
is returned, otherwise
if it is in a reasonable range for other currencies a Price
object is returned.
If the price is out of what is considered a reasonable range, an exception is raised.
Note that an important difference between Japanese Yen based currencies is that
there are 100 pips to a Yen, but for our other currencies there are 10,000
pips per unit.
Disclaimers:
- Only the eight major currencies are supported with the resulting 28 currency pairs. This might be expanded to include other currencies that are reasonably stable and whose central banks establish a record of responsibly managing them (the CHF is supported with a reluctant eye to that business with the Euro peg in 2015--but with the trust they have learned their lesson).
- There is no plan to ever support any crypto currency. Nor is there any chain saw juggling support for similar reasons.
- no API to any data or broker in this package. However, there is a separate oanda-candles API that is built on this package.
- The
Calc
class needs some more functionality. In particular, a function that converts one currency into another given the relevant forex price. - There are parts that are not covered by unit tests and are a bit rough and likely to be changed in future updates.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
forex-types-0.0.7.tar.gz
(9.8 kB
view hashes)
Built Distribution
Close
Hashes for forex_types-0.0.7-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2ef3dcfd434eecb4c97a0abfb71d0c6ee90a77b99ed98839975c21aad98130c4 |
|
MD5 | 3453960501d8f64467451a3f90775148 |
|
BLAKE2b-256 | e275e4751a31b9bf09377a34631e3d33112a0ffc9d84560c438e629fc0e2e340 |