#include "..\traders\bwaller.h" //trader1 bwaller1::bwaller1(int TraderNum) : Trader(TraderNum) { HourCount = 0; m_Broker = GetBroker(); for (int i=0; iGetWorth((AssetData*(*)[]) &m_myAssets,&m_balance); m_Broker->GetStockMarketInfo(info); //set when to buy,sell, or neither if(( m_balance < 50000) && (HourCount%2)){ m_buy = 0; m_sell = 0;} else if (( m_balance < 50000) && (!(HourCount%2))) m_sell = 1; else if (!(HourCount%2)) { m_buy = 1; m_sell = 0; } else{ m_buy = 0; m_sell = 0; } // decide which ones to sell if (m_sell){ for( int i=0;iNumShares > 0)){ if (m_myAssets[i]->CurrentPrice > m_myAssets[i]->PurchasePrice) Tickers[i]=2;} } } //decide which ones to buy if(m_buy){ for( int j=0;jGetStockInfo(j,sd); if((sd.EarningsPerShare > 0) && (sd.CurrentPrice < 30)) Tickers[j]=1; } } }; int bwaller1::Trade(){ if (m_sell){ for(int i=0; iSell(i,m_myAssets[i]->NumShares); Tickers[i] = 0;} } } if (m_buy){ for(int j=0; jBuy(j,m_balance/2); Tickers[j] = 0;} if((Tickers[j]==1) && (m_myAssets[j]->NumShares == 0)){ m_balance = m_Broker->Buy(j,m_balance/2); Tickers[j] = 0;} } } m_Broker->ClearAssetData( (AssetData *(*)[]) &m_myAssets ); return 0; }; //trader 2 bwaller2::bwaller2(int TraderNum) : Trader(TraderNum) { HourCount = 0; m_Broker = GetBroker(); for (int i=0; iGetWorth((AssetData*(*)[]) &m_myAssets,&m_balance); m_Broker->GetStockMarketInfo(info); double cheapest; int cheap_num; //set when to buy,sell, or neither if(HourCount == 1 ) { m_buy = 1; m_sell = 0; } if (HourCount == 2){ m_sell = 1; m_buy = 1; } if(HourCount >2){ m_buy = 0; m_sell = 1; } // decide which ones to sell if(m_sell && (HourCount > 2)){ for( int i=0;iNumShares > 0)){ if (m_myAssets[i]->CurrentPrice > 2*(m_myAssets[i]->PurchasePrice)) Tickers[i]=2;} } } if(m_sell && HourCount==2){ cheapest = m_myAssets[0]->PurchasePrice; cheap_num = 0; for( int i=1;iNumShares > 0)) if (cheapest > m_myAssets[i]->PurchasePrice){ m_Broker->GetStockInfo(i,sd); if(sd.EarningsPerShare > 1){ cheapest = m_myAssets[i]->PurchasePrice; cheap_num = i;} } } for( int k=0;kNumShares > 0)) Tickers[k] = 2; } } // decide which ones to buy if(m_buy && (HourCount == 1)){ for( int j=0;jNumShares > 0)){ m_balance = m_Broker->Sell(i,m_myAssets[i]->NumShares); Tickers[i] = 0;} } } if (m_buy && (HourCount == 1) ){ for(int j=0; jBuy(j,1); Tickers[j] = 0;} } } if (m_buy && (HourCount >1)){ for(int j=0; jBuy(j,m_balance); Tickers[j] = 0;} } } m_Broker->ClearAssetData( (AssetData *(*)[]) &m_myAssets ); return 0; }; //trader3 bwaller3::bwaller3(int TraderNum) : Trader(TraderNum) { HourCount = 0; m_Broker = GetBroker(); for (int i=0; iGetWorth((AssetData*(*)[]) &m_myAssets,&m_balance); m_Broker->GetStockMarketInfo(info); CPP[HourCount%8] = info.CPPIndex; //set when to buy,sell, or neither if(HourCount < 8){ m_buy=0; m_sell=0;} if(HourCount > 8){ m_buy = 1; m_sell = 1;} // decide which ones to sell if (m_sell){ for( int i=0;iNumShares > 0)){ if (m_myAssets[i]->CurrentPrice > (1.5 * m_myAssets[i]->PurchasePrice)) Tickers[i]=2;} } } // decide which ones to buy if(m_buy){ for( int j=0;jGetStockInfo(j,sd); if(HourCount%8 > 0){ if((sd.EarningsPerShare > 0) && (CPP[HourCount%8] > CPP[(HourCount%8)-1])) Tickers[j]=1; } if(HourCount%8 == 0) { if((sd.EarningsPerShare > 0) && (CPP[HourCount%8] > CPP[7])) Tickers[j]=1; } } } }; int bwaller3::Trade(){ if (m_buy){ for(int j=0; jBuy(j,10); Tickers[j] = 0;} if((Tickers[j] ==1) && (m_myAssets[j]->NumShares == 0)){ m_balance = m_Broker->Buy(j,10); Tickers[j]=0;} } } if (m_sell){ for(int i=0; iNumShares > 0)){ m_balance = m_Broker->Sell(i,m_myAssets[i]->NumShares); Tickers[i] = 0;} } } m_Broker->ClearAssetData( (AssetData *(*)[]) &m_myAssets ); return 0; };