I had esniper set to bid for and win two items
(quantity=2) that were set to expire at the same time.
esniper bid on one of them, but didn't bid on the
second item. It did try to bid, but only after the
item was no longer able to be bid on. I suspect what
happened is that esniper waited for the results of the
first auction before it does anything else.
In this case though, it could have safely bid on the
second auction without waiting for the results of the
second auction since I wanted to win both items, not
just one item.
Logged In: NO
oops, I means to say it could have safely bid on the second
auction without waiting for the results of the first auction
Logged In: NO
Hello. For such cases we usually run two copies of esniper
with different auction files. It is bullet-proof setup.
I think that it is hardly possible for esniper to bid at the
same time for various auctions because of its nature (step
by step execution).
Logged In: YES
user_id=441678
Why not start two copies of esniper, one for each item?
Logged In: YES
user_id=441678
It is possible to rewrite esniper to track more than one
auction at a time. It would have to be multithreaded. I'm
not interested in doing this. If somebody else wants to
make it multithreaded, go for it, but be careful with your
programming because you are spending other people's money.
Logged In: NO
I'm the original submitter of this bug. I don't think
esniper has to be multi-threaded simply because of the
timescales that are being dealt with. Even though the
auctions end at the same time there's no reason they each
have to be bid on at the same microsecond. How long does it
take for a bid to be made? I'm guessing far less than a
second, maybe 1/10 or even 1/100th of a second?
The only logic that needs to be added would be figuring out
if you can safely bid on one auction without knowing the
results of another. Say you have quantity set to 2, and
have 2 auctions. In this case there's no problem as there's
no chance of bidding on more items than you should have.
Another case would be quanity=2, and bidding on 3 items that
all end at the same time. In this case you can safely bid
on two items, but the 3rd one you obviously can't since you
might win all 3 items.
I might be interested in trying these modifications myself.
Is there any way to test this application without bidding
on actual auctions?
Logged In: YES
user_id=441678
There are 4 distinct actions in sniping an auction --
checking bid history (possibly many times), the two-step bid
process, and checking bid history one more time to see if
you've won.
esniper sorts the auctions by end time and starts from the
top, working its way down one auction at a time.
If you want to hit multiple auctions at once, here's what
I'd suggest. Add nextAction and nextActionTimestamp fields
to the auction record.
1. At start, after auctions are sorted, for each auction
figure out what needs to be done next (nextAction) and when
it needs to be done.
2. Pick the auction record with nextActionTimestamp closest
to the current time, sleep until you hit that timestamp, do
the action and update the auction record, repeat.
You'll also need to add something like "assumedWon" for
auctions that you've successfully placed a bid on but whose
result you don't know yet.
I don't think this would be all that difficult to do. If I
have time (ha!), I'll take a look at it myself. If you want
to tackle it, you can email me for help. Look at the for
loop around the call to snipeAuction() in esniper.c, that's
where the meat of this happens.