Git Product home page Git Product logo

Comments (13)

maximumstock avatar maximumstock commented on September 23, 2024 1

@Haroldyolo Good point, how about an optional CLI argument to specify your starting currency amount?

from poe-currency-flip-planner.

HiPoEGH avatar HiPoEGH commented on September 23, 2024 1

Whatever seems easier. I think per currency might be better. It really depends on what your trying to buy, and also if you care about buying in bulk or not. Setting a low minimum stock will allow for smaller trades and more results, at the expense of it being tedious. For example, most people only have a few minimum stock of say Orb of Anulment or Exalted Orbs, yet have higher stocks for Fusings, Jewellers, etc.

Although I can see the benefit of minimum paired stock. Ex, if we're buying alterations, only look at trades with Chaos->Alts where Alts are at 1:8, or if we use multiple chaos per trade, 5:40. I think that's what your asking? The Official website has a setting "Can Fulfil Trade". I don't think for the purposes of finding potential trades we would ever want this to be false, but that's just my opinion.

Might run into trouble with paired stock sizes, if a user then can't find trades because of misconfigured settings.

I don't know where the stock size is going to be stored or configured but I just though of an optional area under my previously proposed json structure.
My original structure was proposed so that it looks like: ItemWeHave{ ItemsWereBuying}

Here is a partially revised structure idea:
{ "Chaos Orb": { "MinimumStock": "40", "Cartographer's Chisel": "", "Chromatic Orb", "Divine Orb", "Orb of Alchemy", "Orb of Regret", "Exalted Orb" }, "Exalted Orb": { "MinimumStock": "1", "Cartographer's Chisel", "Chaos Orb", "Orb of Alchemy", "Orb of Alteration", "Orb of Anulment": "10" } "Orb of Anulment": { "MinimumStock": "1", "Exalted Orb": "5" } }
Let me try to clarify some things. You will notice some things that need to be checked for, like leaving a minimum stock empty or not existent. Also a slot for minimum stock per converted currency. Also other things like with Ex-> Anuls.

If I have Exalts, and want to convert into Anuls, I want to search for Annulments where their minimum stock is 10 Annulments. However, if I have Annulments and want to search for Exalts, I want to search for Exalts where their minimum stock is 10 Exalts, which should now overrides the previously setting of 1.

Also lets say I have Chaos and are now searching for Exalts to buy. Since I have no minimum stock listed for Chaos->Ex, it should default to the minimum stock of 1, which was specified under the Exalt section. On the Flip side, if I'm trading Exalts to Chaos, it will point to the minimum stock of 40 chaos.

Also for fun, lets say I want to trade Alts->Chaos. It should only look for Chaos where the minimum stock is 40 chaos.

There are checks that need to be made but in general if no valid minimum stock is specified then use zero or null in the sent request lookup. If someone sets the "MinimumStock": "0" or "MinimumStock": "" it should just search for all trades normally.

It might be confusing to some people but I think once they get the idea or hang of it then it's fairly straight forward. I'm just proposing it this way to have less file overhead and configuration steps for a given user.

from poe-currency-flip-planner.

HiPoEGH avatar HiPoEGH commented on September 23, 2024

Was going to suggest something similar. Except a user would specify their total stock, so that it wouldn't consider trading things in the thousands at a time, for things you don't have.

Also, it would be helpful to have a way to separate trades per transaction per maximum currency size.
Stack Size of 20 -> 1200 max per trade. 10-> 600, etc. There is a physical limit of the trade window.

Would also like to specify minimum stock size of the sellers, so that we don't care about people selling only 100 or less of a specific item, that are at the best rates. Chances are they are either: price fixers, already sold out, or swamped with trades.
So if I'm searching for Alterations to trade, I don't care about any sellers that have a stock less than 100 or 500. Like weeding out the little fish.

from poe-currency-flip-planner.

Haroldyolo avatar Haroldyolo commented on September 23, 2024

@Haroldyolo Good point, how about an optional CLI argument to specify your starting currency amount?

Sounds good to me. Is there currently one?

from poe-currency-flip-planner.

maximumstock avatar maximumstock commented on September 23, 2024

@Haroldyolo Good point, how about an optional CLI argument to specify your starting currency amount?

Sounds good to me. Is there currently one?

Not right now, but I'll add it some day this week.

from poe-currency-flip-planner.

maximumstock avatar maximumstock commented on September 23, 2024

Was going to suggest something similar. Except a user would specify their total stock, so that it wouldn't consider trading things in the thousands at a time, for things you don't have.

The optional argument could either be our total stock of a given currency but also less, so I think it is a suitable solution.

Also, it would be helpful to have a way to separate trades per transaction per maximum currency size.
Stack Size of 20 -> 1200 max per trade. 10-> 600, etc. There is a physical limit of the trade window.

I could introduce a hard maximum limit on how much you can exchange in a single trade, let's say 600, as it is the smallest stack size limit. This would avoid cases in which you have to trade more than your inventory can hold. However, it would also mean that the tool doesn't show trades like selling >=1201 Alterations or >=1801 Transmutes, etc.

Do you think this is a viable trade-off or do you think its better to have correct stack size limits per currency?

Would also like to specify minimum stock size of the sellers, so that we don't care about people selling only 100 or less of a specific item, that are at the best rates. Chances are they are either: price fixers, already sold out, or swamped with trades.
So if I'm searching for Alterations to trade, I don't care about any sellers that have a stock less than 100 or 500. Like weeding out the little fish.

Filtering price-fixers via stock quantities is definitely an interesting idea, which I have on my list as well. Initially I wanted to do some data analysis first so I get a better understanding of stock distributions for a given currency pair. For now I could simply add a config file where you can specify a minimum stock per currency that you require an offer to have. The defaults would be 1 for each currency and you could alter that on demand. What do you think?

from poe-currency-flip-planner.

HiPoEGH avatar HiPoEGH commented on September 23, 2024

Maximum of 600 per trade is iffy, but it would work if you wanted to get something up and running. That is until we can specify the maximum amount per trade per currency.
This can be done perhaps by configuration in the "poeofficial.json" or "poetrade.json" (Why are there two of these?)
Each currency would then have a specification of "MaxStackSize". (This later means things like Maps can be traded, or Fossils and Resonators, which would be an interesting market to flip.)

You could then compare each individual trade to the inventory maximum (12*5*MaxStackSize). If it goes over then the user would have to perform multiple trades (somehow evenly split?) or just ignore/not trade for that offer/message.

Sometimes people do sell Exalts and Alterations, and depending on the value of alterations (somewhere between 1:7 or 1:6), it would require multiple trades. Because an Exalt would be worth more than 1200 Alterations.

Minimum Stock size was just another way I wanted to filter out smaller traders, and interesting it does sometimes then filter out price fixers on its own. Although it might limit a users trade-ability when using poe.trade because people do list their ratios without necessarily listing their inventory/stock size.
Being able to alter this as needed per currency would be beneficial.

Edit: Forgot to suggest the thing I came back to comment on.
I know this might be silly as to why someone wouldn't want to see this type of transaction, but sometimes one might only profit 1-5 of a given currency. Depending on the number of transactions a user specifies, this can sometimes not be worthwhile. I don't know if this is filtered out already for lower currencies. For higher currencies like Divines, Exalted, Ancient orbs, etc, it might be worthwhile but for smaller currencies not so much.
With my previously misconfigured pair_filter I was getting transactions for Vaal Orbs that would only profit 1-2 per trade, in bulk exchanges.
I don't know if that's something to look into in the future. Would be difficult to limit that for smaller currencies but also consider it for higher ones.
I thought of something like, if the number of interactions (hops) is greater than the amount you profit by, then the trade is really not worth doing.

from poe-currency-flip-planner.

zombodotcom avatar zombodotcom commented on September 23, 2024

Poeninja.json and poetrade.json.
There are two because poe.ninja returns a response that is different from poe trade

If you were to get responses back from poe.ninja and then try and parse it like the responses from poetrade it wouldn't work.

from poe-currency-flip-planner.

HiPoEGH avatar HiPoEGH commented on September 23, 2024

I only asked about the json files because if there was a way to configure or define all currencies as needed. Even the odd ones not a lot of people trade in, and defining the MaximumStackSize for each, it would be easier to configure. Rather than updating two separate files. Might come in handy for shards like exalted or mirror shards, where a user might NOT want to auto-convert it accidentally.

Also think there might be a better way to structure the json file for pair_filters:
{ "Chaos Orb": { "Cartographer's Chisel", "Chromatic Orb", "Divine Orb", "Orb of Alchemy", "Orb of Regret" }, "Exalted Orb": { "Cartographer's Chisel", "Chaos Orb", "Orb of Alchemy", "Orb of Alteration" } }
This might come in handy so text is not always duplicated, and might be easier to perform customization within the json file. (Find the Currency -> Find what we can convert into).
Also this could have potential to add some sort of priority level, where it would try to convert to the first item on the list and work its way down. Like trying to convert Chaos to Exalted First, then something else, etc.

from poe-currency-flip-planner.

maximumstock avatar maximumstock commented on September 23, 2024

This can be done perhaps by configuration in the "poeofficial.json" or "poetrade.json" (Why are there two of these?)

Metadata Files

There are two of them because each website encodes currencies differently. For example, on poe.trade an Exalted Orb is encoded by id 6 and on pathofexile.com/trade it is exa.

Until very recently there was no support for the latter, as the rate-limiting kind of defeated the purpose of this tool. However, there seems to be no rate-limit anymore or at least a very different form of it, so the official trading site is better. That being said, I didn't have enough time yet to port all the respective elements of this tool to support pathofexile.com/trade and its differing item ids.

That being said, all files in assets/*.json are merely meant as lookup tables for me to find the correct id for a given cleartext currency or item name. They are also auto-generated by src/asset_mgr.py. Configuration as you describe above would happen in another file.

pair_filter.json

As you noted above, this file basically determines which trades to look for unless you disable it via the --nofilter option. Its currently limited by the fact that I don't have all metadata for pathofexile.com/trade. Initially, the contents of this file were meant to be generated based on experiments in data_analysis. Basically a top tier list of profitable trade paths.

Also think there might be a better way to structure the json file for pair_filters:...

I like this idea and will incorporate it in my config file design spec. This will be a bit more work that I had anticipated before, so please forgive me if it takes me a while to implement.

Maximum of 600 per trade is iffy, but it would work if you wanted to get something up and running. That is until we can specify the maximum amount per trade per currency.
This can be done perhaps by configuration in the "poeofficial.json" or "poetrade.json" (Why are there two of these?)
Each currency would then have a specification of "MaxStackSize". (This later means things like Maps can be traded, or Fossils and Resonators, which would be an interesting market to flip.)

You could then compare each individual trade to the inventory maximum (125MaxStackSize). If it goes over then the user would have to perform multiple trades (somehow evenly split?) or just ignore/not trade for that offer/message.

Sometimes people do sell Exalts and Alterations, and depending on the value of alterations (somewhere between 1:7 or 1:6), it would require multiple trades. Because an Exalt would be worth more than 1200 Alterations.

Yep, that makes a lot of sense as well. After collecting all necessary metadata for currencies and items this can be done easily.

Minimum Stock size was just another way I wanted to filter out smaller traders, and interesting it does sometimes then filter out price fixers on its own. Although it might limit a users trade-ability when using poe.trade because people do list their ratios without necessarily listing their inventory/stock size.
Being able to alter this as needed per currency would be beneficial.

Yep, will do.

Edit: Forgot to suggest the thing I came back to comment on.
I know this might be silly as to why someone wouldn't want to see this type of transaction, but sometimes one might only profit 1-5 of a given currency. Depending on the number of transactions a user specifies, this can sometimes not be worthwhile. I don't know if this is filtered out already for lower currencies. For higher currencies like Divines, Exalted, Ancient orbs, etc, it might be worthwhile but for smaller currencies not so much.
With my previously misconfigured pair_filter I was getting transactions for Vaal Orbs that would only profit 1-2 per trade, in bulk exchanges.
I don't know if that's something to look into in the future. Would be difficult to limit that for smaller currencies but also consider it for higher ones.
I thought of something like, if the number of interactions (hops) is greater than the amount you profit by, then the trade is really not worth doing.

Nah this makes a lot of sense as well. Also, I think it should show the found trading paths ordered by profit per trade and not in total.


Note: I'll probably move all of your very good suggestions to single issues to keep track of everything, so don't worry if I close this down the line.

from poe-currency-flip-planner.

maximumstock avatar maximumstock commented on September 23, 2024

@HiPoEGH Do you think you need to configure a minimum stock size per currency or per item pair (eg. Orb of Fusing -> Chaos Orb and Chromatic Orb -> Chaos Orb would have different minimum stock sizes)?

from poe-currency-flip-planner.

maximumstock avatar maximumstock commented on September 23, 2024

Here is a partially revised structure idea:
{ "Chaos Orb": { "MinimumStock": "40", "Cartographer's Chisel": "", "Chromatic Orb", "Divine Orb", "Orb of Alchemy", "Orb of Regret", "Exalted Orb" }, "Exalted Orb": { "MinimumStock": "1", "Cartographer's Chisel", "Chaos Orb", "Orb of Alchemy", "Orb of Alteration", "Orb of Anulment": "10" } "Orb of Anulment": { "MinimumStock": "1", "Exalted Orb": "5" } }
Let me try to clarify some things. You will notice some things that need to be checked for, like leaving a minimum stock empty or not existent. Also a slot for minimum stock per converted currency. Also other things like with Ex-> Anuls.

If I have Exalts, and want to convert into Anuls, I want to search for Annulments where their minimum stock is 10 Annulments. However, if I have Annulments and want to search for Exalts, I want to search for Exalts where their minimum stock is 10 Exalts, which should now overrides the previously setting of 1.

Also lets say I have Chaos and are now searching for Exalts to buy. Since I have no minimum stock listed for Chaos->Ex, it should default to the minimum stock of 1, which was specified under the Exalt section. On the Flip side, if I'm trading Exalts to Chaos, it will point to the minimum stock of 40 chaos.

Also for fun, lets say I want to trade Alts->Chaos. It should only look for Chaos where the minimum stock is 40 chaos.

Sounds very good to me! I slightly restructured your proposal to make it valid JSON. The related issue is here.

from poe-currency-flip-planner.

maximumstock avatar maximumstock commented on September 23, 2024

Done per https://github.com/maximumstock/poe-currency-flip-planner/releases/tag/0.2.0

from poe-currency-flip-planner.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.