Example #1
0
int main() {
    class Strategy : public FreeQuant::BaseStrategy {
    public:
        virtual void onInit() {
            std::cout << __FUNCTION__ << std::endl;
            setRunningMode(FreeQuant::BaseStrategy::Simulation);
            setRunningLength(10);
        }

        virtual void onDestroy() {
            std::cout << __FUNCTION__ << std::endl;
        }

        virtual void onStart() {

            std::cout << __FUNCTION__ << std::endl;
        }

        virtual void onStop() {
            std::cout << __FUNCTION__ << std::endl;
        }

    protected:
        virtual void onStep() {
            std::cout << "Tick: " << runningTick() << std::endl;
            boost::this_thread::sleep_for(boost::chrono::milliseconds(100));
        }
    };

    Strategy strategy;
    strategy.init();
    strategy.start();
    while (strategy.running()) {
        boost::this_thread::sleep_for(boost::chrono::seconds(1));
    }

    strategy.start();
    while (strategy.running()) {
        boost::this_thread::sleep_for(boost::chrono::seconds(1));
    }

    strategy.destroy();
    return 0;
}