Search the database
Search forum topics
Search members
Search for trades
diablo2.io is supported by ads
diablo2.io is supported by ads
9 replies   1924 views
2

Description

How does it work?

It works by figuring out the relationship between the stat rolls, and prices in historical sales.

Currently, I trained 3 models for
Griffon's Eye
,
Arachnid Mesh
, and Infinity based on softcore non-ladder data from Traderie. Here's a small sample of the data for Griffon's:
The prices are normalized to
Ist
runes using this conversion table:
Rune Ratios Table
Rune Worth
Ist
Runes
Zod
1.91
Cham
2.93
Jah
7.96
Ber
5.7
Sur
2.95
Lo
2.69
Ohm
2
Vex
1.55
Gul
0.69
Ist
1
It was created by taking a few week of completed trades on Traderie and checking the average ratios when trading runes.
Then I use the data to train a MLP Regressor that can then predict the price given an unseen combination of parameters.

Soo, like, does it work?

The problem is, I don't really know. I'm a total noob at D2 trading and I don't know the real value of stuff. Here are some of the example price checks for the Infinity runeword:

Average resist roll, slightly above average ED, non-ethereal - a mid-range roll

Code: Select all

price = analyzer.predict(
    minus_enemy_resist=50,
    enhanced_damage=291,
    ethereal=False,
    base="Scythe",
    unit="Ist Rune",
)
>>> 17.71  # Or roughly 2 Jah + 1 Gul + 1 Ist

Best possible resist roll, good ED, ethereal- really nice

Code: Select all

price = analyzer.predict(
    minus_enemy_resist=55,
    enhanced_damage=300,
    ethereal=True,
    base="Scythe",
    unit="Ist Rune",
)
>>> 95.33  # Or 11 Jah + 1 Ber + 2 Ist

Bad res and ED, non-ethereal - almost the worst possible roll

Code: Select all

price = analyzer.predict(
    minus_enemy_resist=41,
    enhanced_damage=260,
    ethereal=False,
    base="Scythe",
    unit="Ist Rune",
)
>>> 15.32  # Or 1 Jah + 1 Ber + 1 Ist

It's interesting that a mid-range roll has a very similar cost to a low roll, but the bot predicts a high roll to sell for a lot more.


Do you guys think this looks promising? What are your thoughts?
Description by ipeterov
5

Can be used to make Runewords:

7

How does it work?

It works by figuring out the relationship between the stat rolls, and prices in historical sales.

Currently, I trained 3 models for
Griffon's Eye
,
Arachnid Mesh
, and Infinity based on softcore non-ladder data from Traderie. Here's a small sample of the data for Griffon's:
The prices are normalized to
Ist
runes using this conversion table:
Rune Ratios Table
Rune Worth
Ist
Runes
Zod
1.91
Cham
2.93
Jah
7.96
Ber
5.7
Sur
2.95
Lo
2.69
Ohm
2
Vex
1.55
Gul
0.69
Ist
1
It was created by taking a few week of completed trades on Traderie and checking the average ratios when trading runes.
Then I use the data to train a MLP Regressor that can then predict the price given an unseen combination of parameters.

Soo, like, does it work?

The problem is, I don't really know. I'm a total noob at D2 trading and I don't know the real value of stuff. Here are some of the example price checks for the Infinity runeword:

Average resist roll, slightly above average ED, non-ethereal - a mid-range roll

Code: Select all

price = analyzer.predict(
    minus_enemy_resist=50,
    enhanced_damage=291,
    ethereal=False,
    base="Scythe",
    unit="Ist Rune",
)
>>> 17.71  # Or roughly 2 Jah + 1 Gul + 1 Ist

Best possible resist roll, good ED, ethereal- really nice

Code: Select all

price = analyzer.predict(
    minus_enemy_resist=55,
    enhanced_damage=300,
    ethereal=True,
    base="Scythe",
    unit="Ist Rune",
)
>>> 95.33  # Or 11 Jah + 1 Ber + 2 Ist

Bad res and ED, non-ethereal - almost the worst possible roll

Code: Select all

price = analyzer.predict(
    minus_enemy_resist=41,
    enhanced_damage=260,
    ethereal=False,
    base="Scythe",
    unit="Ist Rune",
)
>>> 15.32  # Or 1 Jah + 1 Ber + 1 Ist

It's interesting that a mid-range roll has a very similar cost to a low roll, but the bot predicts a high roll to sell for a lot more.


Do you guys think this looks promising? What are your thoughts?
7
User avatar

Necrarch 1620Moderator

Necromancer Europe PC
The principles are interesting.
Some conclusions seem fair: perfect items prices are wayyy above average ones with which the difference with low roll is not that huge.

Your runes price
Conversion
seems really weird though.

Latest prices I have seen are approximately (PC/NL/SC, most stable market)
Jah
10
Ist

Ber
7
Ist

Zod
/
Sur
5
Ist

Lo
4
Ist

Ohm
/
Cham
3
Ist

Vex
2
Ist

Gul
=
Ist
=
Mal

Um
=0.5
Ist

Pul
=0.33
Ist

Lem
=0.2
Ist

Image

Main: Necromancer / Second: Assassin / Third: Amazon / Check my stash and my crafts including my caster belts :), and my many cheap
Annihilus
/ Accepting payment in L or NL currency though I only play NL
7
OP
That didn't seem right to me as well, but it looks like that's the average of completed trades on traderie for the past few weeks. Maybe I have some bug in the calculation though, I'll double check.

I'll try to just use your ratios for the calculations as well, and see how the model performs with those.
7
You may want to consider some logic boundaries on what's plausible. For instance, your prediction of a really bad Infinity trades for
Jah
+
Ber
+
Ist
. There is no way a bad runeword will trade for more value than the cost of rolling the same runeword. If people have the currency to roll their own, they won't pay the same amount of currency for a bad roll.

You can apply this constraint using the most valuable set of runes in the runeword. For instance, no one will spend
Lo
for a bad Grief. No one will spend 2x
Ber
for a bad Infinity.
Ohm
+
Ist
for a bad Call To Arms. etc.

Final thought: Traderie prices are volatile and tend to be inflated. That might be one reason why your model appears to run high.

gl though, interesting idea for sure.

All prices negotiable. BIN always wins. Americas (Pacific), but int'l trade times can be arranged.
7
There is 2 types of Infinity:
Normal Base Item for self-use, people mainly care about To Enemy Lightning Resistance. A perfect -55% is much more expensive than -54%
Elite Base Item for merc, people mainly care about %ED. Base can have ED so any Infinity with ED between 326%-339% would be much more expensive. Price for 340ED must be crazy :D
And finally, don't trust all trades on traderie!

Relax and have fun!
7
OP
Yeah, I wonder how does that get to completed trades. If someone got ripped off, then I guess I still want the bot to learn about it. But if it's somebody making a fake trade to influence the market somehow, then I'd want to filter that out :D
7
User avatar

Necrarch 1620Moderator

Necromancer Europe PC
You can check the trades here too, I guess, they tend to be :
- with lower prices
- with better accuracy

Image

Main: Necromancer / Second: Assassin / Third: Amazon / Check my stash and my crafts including my caster belts :), and my many cheap
Annihilus
/ Accepting payment in L or NL currency though I only play NL
7
User avatar

ShadowHeart 1789Moderator

Europe PC
The prices here are much harder to scrape with a bot because you don't have forms to list the individual stats on items like Traderie does (I mean, assuming you want to calculate price based on stat rolls, having the exact stats is important), all stats are specified as text and there are a lot of variations with how people lay it out.

I'm in CET (Central European Time), so that's UTC+1 normally and UTC+2 during DST.
My profile says Ladder, but I play both Ladder and Non-Ladder.
7
OP
Yup, pretty much what ShadowHeart said.

It might be possible to use a tool like ChatGPT to parse the trades and extract parameters into a uniform table, but that'd be quite expensive and hard to do.

Or maybe, since people commonly attach screenshots, I could just parse those instead. The data would be much more accurate, since it's coming directly from the game, without any typing.

Although, Traderies data isn't perfect either. For example, some people are listing stats that are impossible to roll, such as +25% to lightning skill damage on
Griffon's Eye
. I just filter out the ones that are not in possible bounds, but I'm pretty sure there are still typos and mistakes that I cannot detect because they are in bounds.
7
User avatar

ShadowHeart 1789Moderator

Europe PC
ipeterov wrote: 6 months ago
Although, Traderies data isn't perfect either. For example, some people are listing stats that are impossible to roll, such as +25% to lightning skill damage on
Griffon's Eye
. I just filter out the ones that are not in possible bounds, but I'm pretty sure there are still typos and mistakes that I cannot detect because they are in bounds.
Yes, and there are also some odd standards for some types of listings due to Traderie's limitations. For example, when listing a Faith in a
Matriarchal Bow
, it's impossible to specify that it has +2 Skills and +3 Bow and
Crossbow
Skills at the same time (you can't specify the auto-mod), so it seems that the "standard" is to specify that it has +5 Skills. It's a workaround, basically.

Those Griffon's Eyes with 25% could technically be 20% with a 5/-x facet in it - Traderie sort of allows specifying what's socketed, what type of item is in the socket, but not the stats, so I think people just put the total sum in the stats when it's socketed with a facet.

I'm in CET (Central European Time), so that's UTC+1 normally and UTC+2 during DST.
My profile says Ladder, but I play both Ladder and Non-Ladder.
9

Advertisment

Hide ads
999

Greetings stranger!

You don't appear to be logged in...

No matches
diablo2.io is supported by ads
 

 

 

 

Value:
Hide ads forever by supporting the site with a donation.

Greetings adblocker...

Warriv asks that you consider disabling your adblocker when using diablo2.io

Ad revenue helps keep the servers going and supports me, the site's creator :)

A one-time donation hides all ads, forever:
Make a donation