//#include "..\market\Broker.h" #include "..\market\Trader.h" #include #include class myohe1 : public Trader { int m_TraderNumber; Broker *m_MyBroker; double m_MyBalance; // my calculated balance bool trade; // flag to see if I need to trade int sim_time; // internal clock public: myohe1( const int ); ~myohe1(); void Think(); int Trade(); }; myohe1::myohe1( int my_Number ) : Trader ( my_Number ) { m_TraderNumber = my_Number; m_MyBroker = GetBroker(); m_MyBalance = m_MyBroker->GetBalance(); trade = false; sim_time = 0; srand( time( NULL ) * rand() ); // reinitialize random seed }; void myohe1::Think( void ) { m_MyBalance = m_MyBroker->GetBalance(); int mynum = rand(); if ( ( mynum % 16 ) == 12+1 ) trade = true; } int myohe1::Trade( void ) { if ( trade == true ) { double buy_amount = m_MyBalance / ( rand() % ( rand() % 500 ) ); m_MyBroker->Buy( ( rand() % MAX_STOCKS ), buy_amount ); } if ( ( ++sim_time + 1 ) % 125 == 12+1 ) // every 125 - sell all { for ( int st = 0; st < MAX_STOCKS; st++ ) if ( rand() % 2 == 1 ) m_MyBroker->Sell( st ); // 50/50 chance of sell } trade = false; return 0; } myohe1::~myohe1( void ) { cout << "myohe1 :: destroying broker" << endl; //delete m_MyBroker; }