Monday, April 22, 2013

A self-sufficient Bot


Recently I received an email from a new customer of mine saying that he got a new job and that he has no time to keep up with the bot. This user started with ML Bot one month ago, and opened 5 bots.
While I was very happy for his new job, I was at the same time very sad. I was so sad not because of the "lost customer", but because his email showed me that I "failed" in one of my primary goals:

Make ML Bot as self-sufficient as possible, with no or few maintenance required. 15 minutes every 2 days should be sufficient to keep the business going. Probably your bot won't profit at its maximum possibilities, but it will still go and profit.

The purpose of this post is twofold:
1- rebate the concept that I designed ML Bot to be as much self-sufficient as possible.
2- trigger your opinion (& possibly ideas) on how to make it event MORE self-sufficient: where you find holes, where you would like some adjustment and so on. It's an open post, and I strongly encourage everyone to comment

Regarding point 1:
most of the development here at mtgolibrary.com goes towards 'automation'. Back in 2007 we introduced the Online Control Panel to monitor the bots from remote. In 2009 we added the emails at the end of the trades and the possibility to edit the credits. One month ago we launched the Unlimited Pricelist to have all the bots with updated prices. Generally speaking, a great part of the development process was meant to simplify ML Bot and to make it as much self sufficient as possibile. Finally, the bot itself is stable, has no bugs, can recover from MTGO crashes, can run for days and days without any human input.

Regarding point 2:
Just feel free to comment and tell me your ideas! We are coding ML Bot for MTGO v4, so this is the right time to give suggestions! If possible, try to keep the suggestions focused on "how to make the bot more self-sufficient"


Albert
staff@mtgolibrary.com



17 comments:

  1. In terms of self sufficiency I think the two main points would be price management and inventory management.

    I would be very curious to know more about how ML calculates the prices. I realize that much of that information is probably proprietary however. I recently started experimenting with personal percentages and found that after setting the price where I wanted it based on wikiprices and the majority of sellers in the classifieds, it quickly began to deviate and the percentages had to be updated. Granted I was testing running a fairly narrow margin on a higher end card and maybe a better strategy is to widen the margin and not have competitive prices and just focus on competitive inventory in terms of making the bot self sufficient. (idealy though one would like to be able to have both competitive prices and inventory). Perhaps the pricing algorithems can be further optimized?

    A suggestion that is a crossover between inventory management and price management is to be able to have personal percentages based on inventory quantity. (I belive this has been suggested before but I figure it can't hurt to repeat it)

    In terms of inventory management I feel that if the client will allow it it should be possible, as this allows for maximum optimization across different buisiness models. That is extremely vague however so I will make a few concrete suggestions.

    1. Being able to set two different collection quantities. One for a ''buy till'' quantity for what the bot should buy and a ''fill till'' quantity for autotransfers.

    2.Being able to create ''binders'' for newly purchased cards and have the bot be told to switch between trade binders before starting autotransfers. This way bulk bots could swith to the ''newly purchased'' binder before starting transfers to refill or do a ''get cards worth more than'' with the main bot. Currently this card sorting needs to be done semi manually.

    3. It would be great if lite bots could use the CardsMTGO3 and/or a presonalprices when using the ''get cards worth more/less'' autotransfer feature. That way if you run multiple lite bots they can sort the cards between themselves. I often ''fill backwards'' in value for example and do do so I have to restart the bot in Pro mode to do the card sorting.

    4. Having the bots be able to share CSV,s (if possible somehow either locally or through the ML server) also opens up many possibilities. For example lets say I want to buy 4 copies of a card across multiple buy bots. If they all buy 4 copies I am likely to buy too many unless I monitor closely, and if I set each one to just buy 1 copy I am likely to miss out on some purchases. (either because people have more than one to sell but only sell one, or have more than 1 to sell but don't sell at all because they want to be able to sell all of them to the same bot). CSV sharing could also allow for quicker autotransfers by allowing the bots to determine in the background what cards they need and create a wishlist prior to initiating the autotransfer. But really I think the main advantage would be for controlling purchases across multiple bots.

    ReplyDelete
    Replies
    1. Hi David,
      I really like the idea about having a shared csv file among the bots so they don't over/under buy and item, also requiring minimal manual inventory maintenance.

      Other great idea as well about the lite bots being able to utilize the CardsMTGO3.txt instead of having to switch modes every few days to transfer items out. I think that with this, it should be able to use the PersonalPrices.txt file. I have a lot of customization in there that I would rather the bot rate a transfer on.

      Cheers,
      Jimmi

      Delete
  2. On a side note, but not really related to self sufficiency, when doing an autotransfer for a complete collection it might make sense for the bot to just use a wishlist with every card in it since it is fast and the idea is to transfer ALL the cards. I have never bought/sold a complete collection so I don't know how people usually go about it, but since it is forbidden in the TOS to sell accounts or give out your password, it might be nice to have a slimmed down ML bot that only functions as a whole collection transfer (in give card mode) and if possible does not require any form of registration. That way players selling a collection to an ML boter just has to enter their MTGO info, and the bot name to transfer the collection to. Fast and Simple. (sorry for the tangent, hope it is at least partially usefull)

    ReplyDelete
  3. Hi Albert,
    I think it would be great to have the ability to input numbers for "Auto Transfer until XX". Or possibly lower increments to choose from...

    Due to small ticket stock (100-150), I have to frequently log in and 'adjust' my tickets between bots to even things out.

    Currently, I have my main bot to refill each bulk buyer until they have 25. Frequently though, I log into the bots and give some back if the premium bot makes a larger purchase and has gone below 80 or so. The problem if I say give tickets to, but leave here XX then the second bulk bot won't get a refill won't get any :(

    Cheers,
    Jimmi

    ReplyDelete
    Replies
    1. Hey Jimmi,
      I'm pretty sure you already can do this. You can edit the text in the drop down menue and the bot accepts the number. I think it usually resets when you restart the bot though, but that can probably be avoided by using the Transfercollection.txt
      -David

      Delete
    2. Hi David,
      I think I already tried this and it didn't work. It actually sent different commands across. I ended up changing it back because it didn't work that way and was faulting. Maybe it was just input incorrectly on my end, but I was pretty careful doing it.

      Albert....Can you chime in on this one, please?


      Cheers,
      Jimmi

      Delete
    3. I haven't done it specifically with the tix transfers, but I frequently type in custom numbers for the refill till command with with cards. When you tried it did you leave the X in there? For example changing it from 25X to 20X and not just to 20?
      -David

      Delete
    4. to be honest, David...I don't remember.

      I'll set it up to transfer up to 27x (instead of typical 25x) tonight and let you know what happens tomorrow :)

      Cheers,
      Jimmi

      Delete
    5. Hi David...it's all coming back to me now. The same thing happened as did last time. It dumped ALL of my tickets from my primary bot to the one being refilled. I made sure to leave the x on the number as well.

      I'm not sure how MTGOLibrary handles those commands, whether it calls a function directly relating to the name or if there is a parser built directly into the program that handles all calls. Depending on how it handles those calls would depend on how easy this would be to implement. If it calls a function based on the users command directly then it might be a bit more difficult. This is because a method would need to be programmed for each increment the user wanted to call. If there is something built in MTGOLibrary that interprets the commands and then calls the method with necessary arguments, then this should be rather simple (and I would think, should work already).

      Cheers,
      Jimmi

      Delete
    6. Hey Jimmi,
      I just tested doing tix autotransfers with customized amounts and the bot accepted the numbers I entered so it should work. Except for one instance where the giving bot went in to selling mode, but just reversing which bot initiates the trade solved that problem. All I did was change the amount in the drop down menue, leaving the X. I hope you can get it working for you.
      -David

      Delete
  4. I really missing better refilling between bots.Like 1-2 trades every hour,instead of refilling full hour.

    ReplyDelete
  5. better refill here aswell. the automated one is quite "useless". i transfer 1000-10000 cards everyday manually (using a auto clicker software that does 500 double clicks a second helps but would be nice for the bot do this faster and better)

    My perfect refill solution would be one where bot automatically marks all tradable before opening trade(ideal for litebots that dont have the mark all tradable ticked) and the ability to take 400 cards per trade (and maybe to stop on its own when there isnt any more cards to give/take?) sometimes 1 hour gap is too big, occasionally, too small.

    Ability to give extra % to clan members or buddies (or % discount when selling)

    Bot Pricing correction based on stock (give x% extra if owned = 0, sell x% cheapest if owned >=8 etc) (This on its own would stop the need of having different bots in a chain, as long as their not too busy)

    Will come up with more soon




    ReplyDelete
    Replies
    1. I think I've given my "Yes" vote on another thread for the ability to provide clan members or buddies and additional percentage.

      Right now, I do that once a week by hand...

      Delete
  6. should be option to only refill for 15 minutes, and do it every day

    ReplyDelete
  7. Thanks to all. We will see many of the feature requested in the bot for Mtgo v4... so you just have to wait a couple of months! :-)

    ReplyDelete
  8. I feel the bots are 98% self sufficient. I have left them for a week with out touching them at all, maybe just a restart. If you don't reboot your whole system you will not be updated into WikiPrices, thats the 2%. Albert I could help this guy you spoke of in this blog get his bots 100% self-sufficient.

    ReplyDelete
  9. Use less bandwidth! In my country it's really expensive.

    Would be nice if there is no trade rental fee when cards are purchased, and rather its added to sales... This way truly it only costs us when making money.

    ReplyDelete