예제 #1
0
Stock StockManager::addTempCsvStock(
        const string& code,
        const string& day_filename,
        const string& min_filename,
        price_t tick,
        price_t tickValue,
        int precision,
        size_t minTradeNumber,
        size_t maxTradeNumber) {
    string new_code(code);
    boost::to_upper(new_code);
    Stock result("TMP", new_code, day_filename, STOCKTYPE_TMP, true,
            Datetime(199901010000), Null<Datetime>(),
            tick, tickValue, precision, minTradeNumber, maxTradeNumber);

    KDataTempCsvDriver *p = new KDataTempCsvDriver(day_filename, min_filename);
    result.setKDataDriver(KDataDriverPtr(p));
    result.loadKDataToBuffer(KQuery::DAY);
    result.loadKDataToBuffer(KQuery::MIN);

    if (!addStock(result)){
        //加入失败,返回Null<Stock>
        return Null<Stock>();
    }

    return result;
}
예제 #2
0
void updateStock()
{
	int i;

	do
	{
		printf("----------------------------------------------------\n");
		printf("Push 1 to add to stock.\n");
		printf("Push 2 to delete from stock.\n");
		printf("Push 3 to update price of stock.\n");
		printf("Push 4 to update quantity.\n");
		printf("Push 5 or higher to go back to main.\n");
		printf("?: ");
		scanf("%d", &i);

		switch(i)
		{
		case 1:
			printf("\n----------------------------------------------------\n");
			addStock(sFile1);
			printf("----------------------------------------------------\n\n");
			break;

		case 2:
			printf("\n----------------------------------------------------\n");
			delStock(sFile1);
			printf("----------------------------------------------------\n\n");
			break;

		case 3:
			printf("\n----------------------------------------------------\n");
			updatePrice(sFile1);
			printf("----------------------------------------------------\n\n");
			break;

		case 4:
			printf("\n----------------------------------------------------\n");
			updateQuantity();
			printf("----------------------------------------------------\n\n");
			break;
		}
	}
	while(i<5);
}