Пример #1
0
def get_matrix_containing_position(position: Position) -> Matrix:
    query = {
        "x_start": {
            "$lte": position.x
        },
        "x_end": {
            "$gte": position.x
        },
        "y_start": {
            "$lte": position.y
        },
        "y_end": {
            "$gte": position.y
        }
    }

    matrix = matrices.find_one(query)

    if matrix is None:
        return None

    return Matrix(matrix["id"], matrix["x_start"], matrix["x_end"],
                  matrix["y_start"], matrix["y_end"], [
                      EntryPosition(Position(entry["x"], entry["y"]),
                                    entry["command_index"])
                      for entry in matrix["entry_positions"]
                  ])
def create_position(stv, vote, row):

    for key, value in row.items():
        if check_if_position_vote(key):
            position_part = key.split('[')
            position_name = position_part[0].strip()

            if position_name not in vote.positions:
                role = match_role(stv, position_name)
                if role is None:
                    raise Exception("Role not found, although is was of a \
                                    valid format.")
                position = Position(role)
                vote.positions[position_name] = position

            else:
                position = vote.positions[position_name]

            position_candidate = position_part[1].split(']')[0].strip()
            candidate_vote = CandidateVote(position_candidate)

            rank = get_valid_vote_value(value)

            if rank is not None:
                candidate_vote.value = rank
                position.candidate_votes.append(candidate_vote)
Пример #3
0
 def currentOpen(self, accountId):
     """
 (self: Positions) -> [Position]
 """
     condition = {'$and': [{'account_id': accountId}, {'status': 'open'}]}
     positions = self.collection.find(condition).sort('timestamp', -1)
     positions = [Position.fromDict(p) for p in positions]
     #return Positions.filterOpen(positions)
     return positions
Пример #4
0
def get_new_position(command: str, position: Position) -> Position:
    new_position = Position(position.x, position.y)
    if command == "N":
        new_position.y += 1
    if command == "S":
        new_position.y -= 1
    if command == "E":
        new_position.x += 1
    if command == "O":
        new_position.x -= 1
    return new_position
Пример #5
0
 def one(self, accountId, timestamp=None):
     """
 (self: Positions, accountId: float?) -> Position
 """
     conditions = [{'account_id': accountId}]
     if timestamp is not None:
         conditions.append({'timestamp': timestamp})
     conditions = {'$and': conditions}
     position = self.collection.find_one(conditions)
     if position is not None:
         position = Position.fromDict(position)
     return position
Пример #6
0
def postBtctaiPositions(accountId, timestamp):
    identity = flask_jwt.get_jwt_identity()
    if accountId != identity:
        flask.abort(403)
    obj = flask.request.get_json()
    position = modelPositions.one(accountId, timestamp=float(timestamp))
    position = position.toDict()
    obj = {**position, **obj}
    position = Position.fromDict(obj)
    position = modelPositions.save(position, accountId=accountId)
    obj = position.toDict()
    return flask.jsonify(obj)
Пример #7
0
 def all(self, accountId, before=None, count=None):
     """
 (self: Positions, accountId: str, before: float?, count: int?) -> [Position]
 """
     conditions = [{'account_id': accountId}]
     if before is not None:
         conditions.append({'timestamp': {'$lt': before}})
     conditions = {'$and': conditions}
     positions = self.collection.find(conditions).sort('timestamp', -1)
     if count is not None:
         positions = positions.limit(count)
     positions = [Position.fromDict(p) for p in positions]
     return positions
Пример #8
0
def addpoi():
    data = json.load(open('projects/' + project + '/pois.json'))
    graph = Graph(project, auto_connect=False)

    level = int(request.form.get('level'))
    x = int(request.form.get('x'))
    y = int(request.form.get('y'))
    name = request.form.get('name')
    room = graph.get_room(Position(level, x, y))
    if room is None:
        return json.dumps({'success': False})

    data[name] = {'level': level, 'x': x, 'y': y}
    json.dump(data,
              open('projects/' + project + '/pois.json', 'w'),
              indent=4,
              sort_keys=True)

    return 'ok'
Пример #9
0
def init() -> None:
    global total_pokemons_hunted
    total_pokemons_hunted = 0

    db_service.init()

    global cache_matrices
    cache_matrices = []

    global matrix_count
    matrix_count = 0

    global current_position
    current_position = None

    global current_matrix
    current_matrix = None

    global input_index
    input_index = 0

    set_position(Position(0, 0))
    set_initial_matrix()
Пример #10
0
 def openPosition(self, lot, traderFun):
   """
   (self: TradeExecutor, lot: float) -> Trade, Position
   """
   models = self.models
   try:
     position = traderFun(lot)
     self.logger.debug('Result of opening position is, position={position}.'
                       .format(position=position))
     if position is None:
       return None, None
   except Exception as e:
     self.logger.error(('Unexpected error occured in opening position, e={e}'
                        .format(e=e)))
     return None, None
   now = datetime.datetime.now()
   trade_ = Trade(now, position)
   self.logger.debug('Saving new trade, {t}.'.format(t=trade_))
   trade = models.Trades.save(trade_, accountId=self.accountId)
   position_ = Position(now, Position.StatusOpen, [position])
   self.logger.debug('Saving new position, {p}.'.format(p=position_))
   position = models.Positions.save(position_, accountId=self.accountId)
   return trade, position
Пример #11
0
    start_date = utils.date_to_str(hist.index[0].date())
    today = utils.date_to_str(datetime.date.today())

    close = list(hist['Close'])
    days_list = [i for i in range(len(close))]
    df = pd.DataFrame({"Price": close, "Days": days_list})

    plot = sb.lineplot(x="Days", y="Price", data=df)
    plot.set(xlabel=("{start} to {today} ~ {days} days"
                     ).format(start=utils.date_concat(start_date),
                              today=utils.date_concat(today),
                              days=days))
    plot.set(ylabel=str(ticker_obj.info['symbol'] + " Price"))
    plt.show()
    return


# WORKSPACE

amd_pos = Position(amd)
aapl_pos = Position(yf.Ticker("AAPL"))
aapl_pos.add_position(100, 450)
aapl_pos.add_position(200, 420)

sample_date_future = datetime.date(2020, 10, 16)
sample_date_future_2 = datetime.date(2020, 9, 11)

bought = Option(fb, sample_date_future, 290, True)

print(bought)
	window_vol = master_volatility.iloc[vol_index].dropna()
	window_vol = window_vol[(window_vol != 0)]
	window_vol = window_vol.drop("Date")
	window_vol.sort(ascending=True)
	##
	# Get Deciles
	##
	top_decile = window_vol[0:int(math.ceil(len(window_vol) / 10.0))]
	bottom_decile = window_vol[len(window_vol) - int(math.ceil(len(window_vol) / 10.0)):]
	##
	# Portfolio Manipulations
	##
	portfolio.reducePositionLives()
	portfolio.calculateReturn(date, master_returns.iloc[t])
	portfolio.liquidate()
	portfolio.addPosition(Position(top_decile.index, bottom_decile.index, 1))

	portfolioD1.reducePositionLives()
	portfolioD1.calculateReturn(date, master_returns.iloc[t])
	portfolioD1.liquidate()
	portfolioD1.addPosition(Position(top_decile.index, [], 1))

	portfolioD10.reducePositionLives()
	portfolioD10.calculateReturn(date, master_returns.iloc[t])
	portfolioD10.liquidate()
	portfolioD10.addPosition(Position(bottom_decile.index, [], 1))
	
	

##
# SUMMARIZE RESULTS
Пример #13
0
def refresh_positions():
    global ALL_POSITIONS
    ALL_POSITIONS = []
    for str in dbfunc.get_positions():
        ALL_POSITIONS.append(
            Position(str[0], str[2], str[1], str[3], str[4], str[6], str[5]))
Пример #14
0
	##
	JQ4_top_decile = ranked_list[0:int(math.ceil(len(ranked_list) / 10.0))]
	JQ4_bottom_decile = ranked_list[len(ranked_list) - int(math.ceil(len(ranked_list) / 10.0)):]
	JQ4_bottom_decile = JQ4_bottom_decile[JQ4_bottom_decile < 0]
	##
	# MEASURE PERFORMANCE FOR MONTH T (UPDATES DONE AT END OF YEAR)
	# LIQUIDATE DEAD POSITIONS
	# ADD POSITIONS
	##
	print "Calculating Portfolio Returns and Liquidating Old Positions..."
	for portfolio in portfolios:
		portfolio.reducePositionLives()
		portfolio.calculateReturn(date, master_returns.iloc[t])
		portfolio.liquidate()
		if portfolio.getName() == "J: 12-1M, K: 3":
			portfolio.addPosition(Position(JQ4_top_decile.index, JQ4_bottom_decile.index, 3))
		elif portfolio.getName() == "J: 12-1M, K: 6":
			portfolio.addPosition(Position(JQ4_top_decile.index, JQ4_bottom_decile.index, 6))
		elif portfolio.getName() == "J: 12-1M, K: 9":
			portfolio.addPosition(Position(JQ4_top_decile.index, JQ4_bottom_decile.index, 9))
		elif portfolio.getName() == "J: 12-1M, K: 12":
			portfolio.addPosition(Position(JQ4_top_decile.index, JQ4_bottom_decile.index, 12))


##
# SUMMARIZE RESULTS
##
results = DataFrame(portfolios[0].getPortfolioReturns().items(), columns=['Date', portfolios[0].getName()])
for i in range(1, len(portfolios)):
	inp = DataFrame(portfolios[i].getPortfolioReturns().items(), columns=['Date', portfolios[i].getName()])
	results = merge(results, inp, how="left", on="Date")
Пример #15
0
 JQ2_bottom_decile = JQ2_bottom_decile[JQ2_bottom_decile < 0]
 JQ3_bottom_decile = JQ3_bottom_decile[JQ3_bottom_decile < 0]
 JQ4_bottom_decile = JQ4_bottom_decile[JQ4_bottom_decile < 0]
 ##
 # MEASURE PERFORMANCE FOR MONTH T (UPDATES DONE AT END OF YEAR)
 # LIQUIDATE DEAD POSITIONS
 # ADD POSITIONS
 ##
 print "Calculating Portfolio Returns and Liquidating Old Positions..."
 for portfolio in portfolios:
     portfolio.reducePositionLives()
     portfolio.calculateReturn(date, master_returns.iloc[t])
     portfolio.liquidate()
     if portfolio.getName() == "J: 3, K: 3":
         portfolio.addPosition(
             Position(JQ1_top_decile.index, JQ1_bottom_decile.index, 3))
     elif portfolio.getName() == "J: 3, K: 6":
         portfolio.addPosition(
             Position(JQ1_top_decile.index, JQ1_bottom_decile.index, 6))
     elif portfolio.getName() == "J: 3, K: 9":
         portfolio.addPosition(
             Position(JQ1_top_decile.index, JQ1_bottom_decile.index, 9))
     elif portfolio.getName() == "J: 3, K: 12":
         portfolio.addPosition(
             Position(JQ1_top_decile.index, JQ1_bottom_decile.index, 12))
     elif portfolio.getName() == "J: 6, K: 3":
         portfolio.addPosition(
             Position(JQ2_top_decile.index, JQ2_bottom_decile.index, 3))
     elif portfolio.getName() == "J: 6, K: 6":
         portfolio.addPosition(
             Position(JQ2_top_decile.index, JQ2_bottom_decile.index, 6))