pub struct TriangularArb {
pub currency_a: String,
pub currency_b: String,
pub currency_c: String,
pub rate_ab: f64,
pub rate_bc: f64,
pub rate_ca: f64,
pub profit_pct: f64,
}Expand description
A detected triangular arbitrage opportunity across three currencies.
§Example
use fin_primitives::arbitrage::TriangularArb;
// USD -> EUR -> GBP -> USD cycle
let arb = TriangularArb::detect(1.10, 1.15, 0.80);
// If rate_ab * rate_bc * rate_ca > 1 there is profit
if let Some(t) = arb {
assert!(t.profit_pct() > 0.0);
}Fields§
§currency_a: StringBase currency A.
currency_b: StringIntermediate currency B.
currency_c: StringReturn currency C.
rate_ab: f64Exchange rate A -> B.
rate_bc: f64Exchange rate B -> C.
rate_ca: f64Exchange rate C -> A.
profit_pct: f64Profit percentage: (rate_ab * rate_bc * rate_ca - 1) * 100.
Implementations§
Source§impl TriangularArb
impl TriangularArb
Sourcepub fn detect(rate_ab: f64, rate_bc: f64, rate_ca: f64) -> Option<TriangularArb>
pub fn detect(rate_ab: f64, rate_bc: f64, rate_ca: f64) -> Option<TriangularArb>
Detect a triangular arbitrage given three cross rates.
Returns Some only when rate_ab * rate_bc * rate_ca > 1.0 (i.e. profit > 0).
Sourcepub fn profit_pct(&self) -> f64
pub fn profit_pct(&self) -> f64
Profit percentage of this cycle: (rate_ab * rate_bc * rate_ca - 1.0) * 100.
Trait Implementations§
Source§impl Clone for TriangularArb
impl Clone for TriangularArb
Source§impl Debug for TriangularArb
impl Debug for TriangularArb
Source§impl PartialEq for TriangularArb
impl PartialEq for TriangularArb
impl StructuralPartialEq for TriangularArb
Auto Trait Implementations§
impl Freeze for TriangularArb
impl RefUnwindSafe for TriangularArb
impl Send for TriangularArb
impl Sync for TriangularArb
impl Unpin for TriangularArb
impl UnsafeUnpin for TriangularArb
impl UnwindSafe for TriangularArb
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more