def martingale(self, run_parent): log.info('Martingale: loss for {0}'.format(run_parent.binary_ref)) # a child is born run_child_key = ndb.Key('Run', str(dt.datetime.utcnow())) run_child = Run( key=run_child_key, currency=run_parent.currency, time_frame=run_parent.time_frame, trade_base=run_parent.trade_base, trade_aim=run_parent.trade_aim, parent_run=run_parent.key, profit_parent=run_parent.profit_net, stake_parent=run_parent.stake, step=run_parent.step + 1, payout=run_parent.payout * 2, ended_at=dt.datetime.utcnow() + dt.timedelta(minutes=int(run_parent.time_frame)), ) # a child is registered if self.binary.createNew(run_child): run_child.put() log.info('New martingale run: {0}'.format(run_child)) log.info('Martingale: created new run') return run_child
def new(self): '''Create new iteration''' log.info('Main new started') currency, time_frame, trade_base, trade_aim = self.rl.selectNew(self.q) run_key = ndb.Key('Run', str(dt.datetime.utcnow())) run = Run( key=run_key, currency=currency, time_frame=time_frame, trade_base=trade_base, trade_aim=trade_aim, step=1, payout=1., ended_at=dt.datetime.utcnow() + dt.timedelta(minutes=int(time_frame)), ) if self.binary.createNew(run): run.put() log.info('New run: {0}'.format(run)) log.info('Main new ended')