Esempio n. 1
0
    def _start(self, app_context, **kwargs):
        self.qty = self.get_stg_config_value("qty", 1)

        self.bar = app_context.inst_data_mgr.get_series("Bar.%s.Time.86400" % self.app_context.app_config.instrument_ids[0])
        self.bar.start(app_context)

        self.ema_fast = EMA(self.bar, 'close', 10)
        self.ema_fast.start(app_context)

        self.ema_slow = EMA(self.bar, 'close', 25)
        self.ema_slow.start(app_context)

        super(EMAStrategy, self)._start(app_context, **kwargs)
Esempio n. 2
0
    def _start(self, app_context, **kwargs):
        self.qty = self.get_stg_config_value("qty", 1)

        self.bar = app_context.inst_data_mgr.get_series(
            "Bar.%s.Time.86400" %
            self.app_context.app_config.instrument_ids[0])
        self.bar.start(app_context)

        self.ema_fast = EMA(self.bar, 'close', 10)
        self.ema_fast.start(app_context)

        self.ema_slow = EMA(self.bar, 'close', 25)
        self.ema_slow.start(app_context)

        super(EMAStrategy, self)._start(app_context, **kwargs)
Esempio n. 3
0
    def _start(self, app_context: Context) -> None:

        self.instruments = app_context.config.get_app_config("instrumentIds")
        self.qty = self._get_stg_config("qty", default=1)

        self.bar = self.app_context.inst_data_mgr.get_series(
            "Bar.%s.Time.86400" % self.instruments[0])
        self.bar.start(app_context)

        self.ema_fast = EMA(self.bar, 'close', 10)
        self.ema_fast.start(app_context)

        self.ema_slow = EMA(self.bar, 'close', 25)
        self.ema_slow.start(app_context)

        super(EMAStrategy, self)._start(app_context)
    def _start(self, app_context: Context) -> None:
        self.qty = self._get_stg_config("qty", 1)
        self.threshold = self._get_stg_config("threshold", 1)

        self.xiv = app_context.ref_data_mgr.get_inst('XIV', 'SMART')
        self.vxx = app_context.ref_data_mgr.get_inst('VXX', 'SMART')
        self.vxv = app_context.ref_data_mgr.get_inst('VXV', 'SMART')
        self.vxmt = app_context.ref_data_mgr.get_inst('VXMT', 'SMART')
        instruments = [self.vxx, self.xiv, self.vxmt]
        self.vix_close = app_context.inst_data_mgr.get_series(
            "Bar.%s.Time.86400" % self.vix.get_symbol())
        self.xiv_close = app_context.inst_data_mgr.get_series(
            "Bar.%s.Time.86400" % self.xiv.get_symbol())
        self.vxv_close = app_context.inst_data_mgr.get_series(
            "Bar.%s.Time.86400" % self.vxv.get_symbol())
        self.vxmt_close = app_context.inst_data_mgr.get_series(
            "Bar.%s.Time.86400" % self.vxmt.get_symbol())
        self.ema_60 = EMA()
        self.sma_fast = SMA(self.bar, 'close', 10)

        super(VxvVxmtRatio, self)._start(app_context)
Esempio n. 5
0
class EMAStrategy(Strategy):
    def __init__(self, stg_id=None, stg_configs=None):
        super(EMAStrategy, self).__init__(stg_id=stg_id, stg_configs=stg_configs)
        self.buy_order = None

    def _start(self, app_context, **kwargs):
        self.qty = self.get_stg_config_value("qty", 1)

        self.bar = app_context.inst_data_mgr.get_series("Bar.%s.Time.86400" % self.app_context.app_config.instrument_ids[0])
        self.bar.start(app_context)

        self.ema_fast = EMA(self.bar, 'close', 10)
        self.ema_fast.start(app_context)

        self.ema_slow = EMA(self.bar, 'close', 25)
        self.ema_slow.start(app_context)

        super(EMAStrategy, self)._start(app_context, **kwargs)

    def _stop(self):
        super(EMAStrategy, self)._stop()

    def on_bar(self, bar):
        if self.buy_order is None and self.ema_fast.now('value') > self.ema_slow.now('value'):
            self.buy_order = self.market_order(inst_id=bar.inst_id, action=OrdAction.BUY, qty=self.qty)
            logger.info("%s,B,%s,%s,%.2f,%.2f,%.2f" % (
                bar.timestamp, self.buy_order.cl_id, self.buy_order.cl_ord_id, bar.close, self.ema_fast.now('value'),
                self.ema_slow.now('value')))
        elif self.buy_order is not None and self.ema_fast.now('value') < self.ema_slow.now('value'):
            sell_order = self.market_order(inst_id=bar.inst_id, action=OrdAction.SELL, qty=self.qty)
            logger.info("%s,S,%s,%s,%.2f,%.2f,%.2f" % (
                bar.timestamp, sell_order.cl_id, sell_order.cl_ord_id, bar.close, self.ema_fast.now('value'),
                self.ema_slow.now('value')))
Esempio n. 6
0
class EMAStrategy(Strategy):
    def __init__(self, stg_id: str, stg_cls: str, state: StrategyState = None):
        super(EMAStrategy, self).__init__(stg_id=stg_id,
                                          stg_cls=stg_cls,
                                          state=state)
        self.buy_order = None

    def _start(self, app_context: Context) -> None:

        self.instruments = app_context.config.get_app_config("instrumentIds")
        self.qty = self._get_stg_config("qty", default=1)

        self.bar = self.app_context.inst_data_mgr.get_series(
            "Bar.%s.Time.86400" % self.instruments[0])
        self.bar.start(app_context)

        self.ema_fast = EMA(self.bar, 'close', 10)
        self.ema_fast.start(app_context)

        self.ema_slow = EMA(self.bar, 'close', 25)
        self.ema_slow.start(app_context)

        super(EMAStrategy, self)._start(app_context)

    def _stop(self):
        super(EMAStrategy, self)._stop()

    def on_bar(self, bar):
        if self.buy_order is None and self.ema_fast.now(
                'value') > self.ema_slow.now('value'):
            self.buy_order = self.market_order(inst_id=bar.inst_id,
                                               action=Buy,
                                               qty=self.qty)
            logger.info(
                "%s,B,%s,%s,%.2f,%.2f,%.2f" %
                (bar.timestamp, self.buy_order.cl_id, self.buy_order.cl_ord_id,
                 bar.close, self.ema_fast.now('value'),
                 self.ema_slow.now('value')))
        elif self.buy_order is not None and self.ema_fast.now(
                'value') < self.ema_slow.now('value'):
            sell_order = self.market_order(inst_id=bar.inst_id,
                                           action=Sell,
                                           qty=self.qty)
            logger.info("%s,S,%s,%s,%.2f,%.2f,%.2f" %
                        (bar.timestamp, sell_order.cl_id, sell_order.cl_ord_id,
                         bar.close, self.ema_fast.now('value'),
                         self.ema_slow.now('value')))
Esempio n. 7
0
class EMAStrategy(Strategy):
    def __init__(self, stg_id=None, stg_configs=None):
        super(EMAStrategy, self).__init__(stg_id=stg_id,
                                          stg_configs=stg_configs)
        self.buy_order = None

    def _start(self, app_context, **kwargs):
        self.qty = self.get_stg_config_value("qty", 1)

        self.bar = app_context.inst_data_mgr.get_series(
            "Bar.%s.Time.86400" %
            self.app_context.app_config.instrument_ids[0])
        self.bar.start(app_context)

        self.ema_fast = EMA(self.bar, 'close', 10)
        self.ema_fast.start(app_context)

        self.ema_slow = EMA(self.bar, 'close', 25)
        self.ema_slow.start(app_context)

        super(EMAStrategy, self)._start(app_context, **kwargs)

    def _stop(self):
        super(EMAStrategy, self)._stop()

    def on_bar(self, bar):
        if self.buy_order is None and self.ema_fast.now(
                'value') > self.ema_slow.now('value'):
            self.buy_order = self.market_order(inst_id=bar.inst_id,
                                               action=OrdAction.BUY,
                                               qty=self.qty)
            logger.info(
                "%s,B,%s,%s,%.2f,%.2f,%.2f" %
                (bar.timestamp, self.buy_order.cl_id, self.buy_order.cl_ord_id,
                 bar.close, self.ema_fast.now('value'),
                 self.ema_slow.now('value')))
        elif self.buy_order is not None and self.ema_fast.now(
                'value') < self.ema_slow.now('value'):
            sell_order = self.market_order(inst_id=bar.inst_id,
                                           action=OrdAction.SELL,
                                           qty=self.qty)
            logger.info("%s,S,%s,%s,%.2f,%.2f,%.2f" %
                        (bar.timestamp, sell_order.cl_id, sell_order.cl_ord_id,
                         bar.close, self.ema_fast.now('value'),
                         self.ema_slow.now('value')))