コード例 #1
0
ファイル: service.c プロジェクト: CyberGrandChallenge/samples
void tradeStocks(Record record, Dataset dataset, Portfolio* portfolio)
{
	float priceRelative;

	priceRelative = (float)record.x / record.y;

	if(priceRelative > dataset.mean + dataset.stdDev) {
		sellStock(X_STR, record.x, portfolio);
		buyStock(Y_STR, record.y, portfolio);
	}

	if(priceRelative < dataset.mean - dataset.stdDev) {
		sellStock(Y_STR, record.y, portfolio);
		buyStock(X_STR, record.x, portfolio);
	}



}
コード例 #2
0
void buyMenu(int order)
{
	char ch;
	int amount;

	system("cls");
	titleLine("주식 사기");

	printf(" 현재 %s 회사의 주가는 %d원입니다.\n 몇 개를 구입하시겠습니까?", CompanyName[order], StockPrice[order]);

	scanf("%d", &amount);
	if (amount > 0)
	{
		buyStock(order, amount);
		printf("\n\n 구입하였습니다.");
		Sleep(2000);
	}
	system("cls");
	return;
}
コード例 #3
0
ファイル: randomagent.cpp プロジェクト: marimarek/siaAgent
void RandomAgent::play()
{
    qDebug() << "[Agent] Agent is playing.";
    if(!m_store.isUpToDate() || !m_myOrders.isUpToDate() || m_stocksInfo.size() != STOKS_NUMBER - 1)
    {
        qDebug() << "[Agent] Agent infos aren't up to date.";
        return;
    }
    m_idleTimer->start();

    qint32 money = m_store.getMoney();

    for(int i = 2; i <=  STOKS_NUMBER; ++i)
    {
        if(m_store.contains(i))
        {
            if(static_cast<double>(qrand())/RAND_MAX < m_sellStockChange)
            {
                qint32 price = m_stocksInfo[i].getBestBuyPrice() + 3 - qrand() % 10;
                if(!m_stocksInfo[i].getBestBuyPrice())
                {
                    price =  m_stocksInfo[i].lastPrice() *(0.99 + (0.02 * qrand())/RAND_MAX);
                }
                if(price)
                {
                    qint32 maxAmount = m_store.getStockAmount(i);
                    if(maxAmount)
                    {
                        qint32 amount = pow(1 + static_cast<double>(0.15*qrand())/RAND_MAX, 10 + static_cast<double>(14*qrand())/RAND_MAX) *
                                (1 + static_cast<double>(2*qrand())/RAND_MAX) * (static_cast<double>(money)/1000000) + 2 + qrand() % 5;
                        amount %= maxAmount;
                        if(amount)
                            sellStock(i, amount, price);
                    }
                }
            }
        }
        if(static_cast<double>(qrand())/RAND_MAX < m_buyStockChange)
        {
            qint32 price = m_stocksInfo[i].getBestSellPrice() - 3 + qrand() % 10;
            if(!m_stocksInfo[i].getBestSellPrice())
            {
                price =  m_stocksInfo[i].lastPrice() *(0.99 + (0.02 * qrand())/RAND_MAX);
            }
            if(price)
            {
                qint32 maxAmount = money/price;
                if(maxAmount)
                {
                    qint32 amount = pow(1 + static_cast<double>(0.15*qrand())/RAND_MAX, 10 + static_cast<double>(14*qrand())/RAND_MAX) *
                            (1 + static_cast<double>(2*qrand())/RAND_MAX) * (static_cast<double>(money)/1000000) + 2 + qrand() % 5;
                    amount %= maxAmount;
                    if(amount)
                        buyStock(i, amount, price);
                }
            }
        }
    }

    QMapIterator<int, Order> it(m_myOrders);
    while (it.hasNext())
    {
        it.next();
        if(static_cast<double>(qrand())/RAND_MAX < m_cancelChange)
            cancelReq(it.key());
    }

}