The main tank, brimful with ideas. Enjoy them, discuss them, take them. - Of course, this is also the #1 place for new submissions!
By HenrykGerlach
#4861
1. The Problem - If you want to buy an item, which is offered several times in (internet-)auctions and you want to pay a finite maximum price, then you have to bid for each offer separately until you suceed buying at your maximum price or lower. This is unpleasant.

2. The Solution - Order the auctions you are interested in in a list I (the auction, that will finish soonest, first) and mark some maximum price p_I for the list. Now an (computerized) agent might bid for the first item on the list until it wins the auction or the maximum price p_I is surpassed. In the first case, you got your item and the agent drops your list and stops bidding. In the second case, the agent drops the first item from your list and continues to bid for the rest of the list.

By that, you either win exactly one item from your list, or all items are sold above your maximum price.

I call this serial bid.

Reward: Dedicate one of your patents if you have any.
By HenrykGerlach
#4886
The Formal Algorithm - Let I = (I_1,I_2,...) be a set of items, which are sold in auctions. Let it be ordered such that the auction of item I_i will be finished before the auction of I_k iff k>i. Let p_I be the maximum payment that the client wants to pay for each item I_i in I.

Here comes the algorithm for serial bid (python style).
Code: Select all
serial_bid(p_I, I):
  while( price(I[1])+minimum_raise < p_I and time_to_run(I[1])>0):
     if (highest_bid(I[1]).owner != me):
       bid_for(I[1], min(highest_bid(I[1]).price, p_I -minimum_raise) + minimum_raise)
  if (highest_bid(I[1]).owner == me): #Yeah we got it!
    print "Got item: ", I[1]
    return I[1]
  else #mhm, didn't get it. let's try next in list.
    if len(I)>1:
      return serial_bid(p_I,I[2:])
    else #we did the best we could, all items were sold for prices over p_I
      retun None
User avatar
By Steve
#4887
Interesting idea - and useful, too! There are, however, other issues with serial bids that would need to be taken into account as well - that would make the code really cool.

Example: mobile I on your list is currently at $100, the auction for mobile II on your list ends only 5 minutes later, and the current price is $10. There's only one other bidder for mobile I (except you), so if you pass on mobile I, there's a 99% chance you will get mobile II much cheaper.

In other words, it would be perfect if you could tweak the code with some sort of consumer psychology. Relevant variables: demand (number of bidders on similar products), time interval between two auctions, time of the day, since when has the auction been running etc. Of course you would either need to tweak it manually or keep it to yourself - if everybody buys using the same algorithm, it wouldn't work. ;-)
#4888
Thanks, you're right.


Ok, so how is this solution:

you can add a max_single_bid on your serialbid, which is the number of maximum bids you place fo a single Item.
Code: Select all
serial_bid(p_I,max_single_bid, I):
  nomber_of_bids=0
  while( price(I[1])+minimum_raise < p_I and time_to_run(I[1])>0 and number:of_bid < max_single_bid):
     if (highest_bid(I[1]).owner != me):
       bid_for(I[1], min(highest_bid(I[1]).price, p_I -minimum_raise) + minimum_raise)
     max_single_bid+=1
  if (highest_bid(I[1]).owner == me): #Yeah we got it!
    print "Got item: ", I[1]
    return I[1]
  else #mhm, didn't get it. let's try next in list.
    while (time_to_run(I[1])>0):
       pass #wait for the old auction to finish
    if len(I)>1:
      return serial_bid(p_I,I[2:])
    else #we did the best we could, all items were sold for prices over p_I
      retun None
Now you could start to vary the above algorithm even more, but hey,
we are not talking about AI, are we?
By seewithlove
#6641
So I'm new and this thread is old
perhaps there no more interest...

But sniping does this - last minute bidding - no need to bid on multiple items. No need to bid on any item until the last minute. You bid. If you win, done. If not, go to the next item on the list and sleep until a few seconds before bidding ends.
By john12345
#6769
Hi
I was wondering whether anyone could point me in the right direction with regard to a single or multiple bid algorithm in php any tutorials resources or code
I would appreciate any help on this matter
OFFSHORE
Finger Wheel Fidget Toy

A three inch wheel with rubber grip on the outside[…]

Makeover of backyard

Nothing to share but I definitely want to see the […]

Sticking Games

No fantasy but real sports. Professional level foo[…]

This must be very useful information. Thank you ve[…]