コード例 #1
0
ファイル: dataloader.py プロジェクト: t1user/ib_tools
    def create_objects(self) -> None:
        self.objects = [Contract.create(**s) for s in self.symbols]
        self.non_futures = [
            obj for obj in self.objects if not isinstance(obj, Future)]
        log.debug(f'non-futures: {self.non_futures}')
        self.futures = [obj for obj in self.objects if isinstance(obj, Future)]
        log.debug(f'futures: {self.futures}')

        # converting Futures to ContFutures
        self.contFutures = []
        for obj in self.futures:
            params = obj.nonDefaults()
            del params['secType']
            self.contFutures.append(ContFuture(**params))
        log.debug(f'contfutures: {self.contFutures}')
コード例 #2
0
ファイル: ib.py プロジェクト: ajmal017/ta_scanner
    def request_future_instrument(
        self,
        symbol: str,
        dt: datetime.datetime,
        what_to_show: str,
        contract_date: Optional[str] = None,
    ) -> pd.DataFrame:
        exchange_name = self.select_exchange_by_symbol(symbol).value

        if contract_date:
            raise NotImplementedError
        else:
            contract = ContFuture(symbol, exchange_name, currency=Currency.USD.value)

        duration = "1 D"
        bar_size_setting = "1 min"
        use_rth = False
        return self._execute_req_historical(
            contract, dt, duration, bar_size_setting, what_to_show, use_rth
        )
コード例 #3
0
    trades_per_day: int = 0
    alloc: float = 0  # fraction of capital to be allocated to instrument
    # candle volume to be calculated as average of x periods
    avg_periods: Optional[int] = None
    volume: Optional[int] = None  # candle volume given directly
    min_atr: float = 0  # minimum atr threshold used for for calculations
    lock_periods_multiple: float = 2
    tp_multiple: float = 2
    lock_filter: float = 0.005

    def __post_init__(self) -> None:
        self.lock_periods = int(self.periods / self.lock_periods_multiple)


nq = Params(
    contract=ContFuture('NQ', 'GLOBEX'),
    micro_contract=ContFuture('MNQ', 'GLOBEX'),
    trades_per_day=3.8,
    volume=13000,
    min_atr=14,
    lock_filter=0.004,
    tp_multiple=8,
)

es = Params(
    contract=ContFuture('ES', 'GLOBEX'),
    micro_contract=ContFuture('MES', 'GLOBEX'),
    trades_per_day=.5,
    ema_fast=120,
    ema_slow=320,
    atr_periods=180,
コード例 #4
0
    trades_per_day: int = 0
    alloc: float = 0  # fraction of capital to be allocated to instrument
    # candle volume to be calculated as average of x periods
    avg_periods: Optional[int] = None
    volume: Optional[int] = None  # candle volume given directly
    min_atr: float = 0
    lock_periods_multiple: float = 2
    tp_multiple: float = 2
    lock_filter: float = 0.005

    def __post_init__(self) -> None:
        self.lock_periods = int(self.periods / self.lock_periods_multiple)


nq = Params(
    contract=ContFuture('NQ', 'GLOBEX'),
    micro_contract=ContFuture('MNQ', 'GLOBEX'),
    trades_per_day=3.8,
    volume=13000,
    min_atr=14,
    lock_filter=0.004,
    tp_multiple=8,
)

es = Params(contract=ContFuture('ES', 'GLOBEX'),
            micro_contract=ContFuture('MES', 'GLOBEX'),
            trades_per_day=.5,
            atr_periods=180,
            ema_fast=120,
            ema_slow=320,
            sl_atr=3,