#include "RandomBuyStrategy.h" #include #include "Stock.h" RandomBuyStrategy::RandomBuyStrategy( double probability, double fluctuation, double maxBuy ) : probability_( probability ), fluctuation_( fluctuation ), maxBuy_( maxBuy ) { } RandomBuyStrategy::~RandomBuyStrategy() { } long RandomBuyStrategy::buy( Stock* stock, double capital, double buyPrice, long amount ) { if ( drand48() > probability_ ) return 0; double fluct = ( 1.0 + fluctuation_* (drand48() - 0.5) ); price_ = stock->price() * fluct; long maxAmount = (long) ( capital / price_ ); amount =(long)( drand48() * maxAmount * maxBuy_ ); return amount; }