
Faeryade
|
Posted - 2007.08.20 18:05:00 -
[1]
...and get the best transactions if possible!
Here are some maths I coded:
Bo : buy order, the one I'll sell things to So : sell order, the one I'll buy things from Bo.price : the price for one unit I'll sell So.price : the price for one unit I'll buy Bo.units : the number of units the buyer wants to buy So.units : the number of units the seller wants to sell Unit.volume : the volume taken by one unit of merchandise Unit.benefit : the benefit per unit I'll get from the transaction, where Unit.benefit = Bo.price - So.price Me.cargo : the space I have in my ship Me.cash : the cash I have in my wallet MaxUnitsTrans : the max number of units for the transaction, where MaxUnitsTrans = Min(Bo.units,So.units) MaxUnitsCargo : the max number of units I can carry, where MaxUnitsCargo = Me.cargo / UnitType.volume MaxUnitsCash : the max number of units I can buy from the seller, where MaxUnitsCash = Me.cash / So.price MaxUnits : the max number of units I'll buy and sell, where MaxUnits = Min(MaxUnitsTrans,MaxUnitsCargo,MaxUnitsCash) Total.benefit : the real cash I can get from the transaction, where Total.benefit = MaxUnits * Unit.benefit
I could have stopped here, but... what if I compare all Bo-So pairs and find these transactions: - Benefit 2M  - Benefit 1,8M  Well, let's go for the 2M! Yes? ... Let's see what could be hidden: - Benefit 2M, 20 jumps between Bo and So  - Benefit 1,8M, 3 jumps between Bo and So  Now let's go for the 1,8M, sure! So let's do the maths a little more.
Dist(Bo,So) : the distance (in jumps+1) between Buyer and Seller Total.benefitOverTime : the real cash for a jump, where Total.benefitOverTime = Total.benefit / Dist(Bo,So)
So, what if I get the following transactions ? - Benefit 150k / jump  - Benefit 120k / jump  Let's go for the 150k! Wait... ok, what's hidden there again? - Benefit 150k / jump, distance between me and So (lost time) 20 jumps  - Benefit 120k / jump, distance between me and So (lost time) 3 jumps  So let's add some maths again.
Total.theFinalBenefitOverTimeThing : ok, that's what I'll use to compair pairs of So and Bo Total.theFinalBenefitOverTimeThing = Total.benefit / (Dist(Me,So)+Dist(Bo,So))
This, computed for every pair the market offers, then sorted, gives me where I should go next. I could add a second step that gives me the best transaction between Me and So, not to travel with an empty cargo.
So what do you think about these maths? And what would you think about a program that makes such analyze? Or is EVE Market more complex?
|