def MarketMake(modeladmin,request,queryset): for p in queryset: market = Market(product = p, open_time = p.open_time, close_time = p.close_time,name = p.name, market_number = 1) market.save() pricehistory = PriceHistory(product = p, number = 1) pricehistory.save() securityprice = SecurityPrice(market = market) securityprice.save() for i in range(0,p.security_number): attributes = [""] * p.attribute_set.count() loop = True while loop: for att in p.attribute_set.all(): rand = random.randint(0,(att.level_set.count()-1)) level = att.level_set.get(number = rand) attributes[p.order[att.number]] = level.name try: test = Security.objects.get(market=market,attributes=attributes) attributes = [""] * p.attribute_set.count() except Security.DoesNotExist: name = "" for att_name in attributes: name = name + " " + att_name security = Security(market=market,number=i) security.attributes = attributes security.attribute_name = name security.save() loop = False
def MarketMake(modeladmin, request, queryset): for p in queryset: market = Market(product=p, open_time=p.open_time, close_time=p.close_time, name=p.name, market_number=1) market.save() pricehistory = PriceHistory(product=p, number=1) pricehistory.save() securityprice = SecurityPrice(market=market) securityprice.save() for i in range(0, p.security_number): attributes = [""] * p.attribute_set.count() loop = True while loop: for att in p.attribute_set.all(): rand = random.randint(0, (att.level_set.count() - 1)) level = att.level_set.get(number=rand) attributes[p.order[att.number]] = level.name try: test = Security.objects.get(market=market, attributes=attributes) attributes = [""] * p.attribute_set.count() except Security.DoesNotExist: name = "" for att_name in attributes: name = name + " " + att_name security = Security(market=market, number=i) security.attributes = attributes security.attribute_name = name security.save() loop = False
def MaltipleMarketMake(modeladmin, request, queryset): for m in queryset: product = m.product MSP = SecurityPrice.objects.get(market=m) MPH = PriceHistory.objects.get(product=m.product, is_open=True) for i in range(2, (product.market_number + 1)): market = Market(product=product, open_time=product.open_time, close_time=product.close_time, name=product.name, market_number=i, name_setting=True) market.save() securityprice = SecurityPrice(market=market, price=MSP.price, amount=MSP.amount) securityprice.save() pricehistory = PriceHistory(product=market.product, data=MPH.data, number=i) pricehistory.save() for security in m.security_set.all(): new_security = Security(market=market, product_name=security.product_name, attributes=security.attributes, attribute_name=security.attribute_name, selling_price=security.selling_price, number=security.number) new_security.save() product.maltiple_market = True product.save() m.name_setting = True m.save()
def MaltipleMarketMake(modeladmin,request,queryset): for m in queryset: product = m.product MSP = SecurityPrice.objects.get(market = m) MPH = PriceHistory.objects.get(product = m.product, is_open = True) for i in range(2,(product.market_number+1)): market = Market(product = product, open_time = product.open_time, close_time = product.close_time,name = product.name, market_number = i,name_setting = True) market.save() securityprice = SecurityPrice(market = market,price = MSP.price, amount = MSP.amount) securityprice.save() pricehistory = PriceHistory(product = market.product,data = MPH.data, number = i) pricehistory.save() for security in m.security_set.all(): new_security = Security(market=market,product_name=security.product_name,attributes = security.attributes,attribute_name = security.attribute_name,selling_price = security.selling_price,number=security.number) new_security.save() product.maltiple_market = True product.save() m.name_setting = True m.save()
def DeterminCostPrice(modeladmin,request,queryset): for p in queryset: stock = 100000.0 / (500 * (p.security_number + 1)) first_market = Market.objects.filter(product = p).get(market_number = 1) try: lmsr = LMSR.objects.get(product = p) player_number = Participation.objects.filter(market__product = p).count() if Market.objects.filter(product = p).count() == 1: if player_number >= 20: '''market make''' new_market = Market(product = p, open_time = p.open_time, close_time = p.close_time,name = p.name, market_number = 2,name_setting = True) new_market.save() new_securityprice = SecurityPrice(market = new_market,price = [], amount = []) new_securityprice.save() new_pricehistory = PriceHistory(product = p,data = [], number = 2) new_pricehistory.save() p.market_number = 2 for security in first_market.security_set.all(): new_security = Security(market=new_market,product_name=security.product_name,attributes = security.attributes,attribute_name = security.attribute_name,selling_price = security.selling_price,number=security.number,gross_margin = 500) new_security.save() elif player_number > 10: p.player_number = player_number lmsr.b = stock * p.player_number / math.log((1.0 - 1.0 / p.security_number)/(1.0 - 0.99)) lmsr.save() else: pass elif Market.objects.filter(product = p).count() == 2: if player_number >= 40: '''market make''' new_market = Market(product = p, open_time = p.open_time, close_time = p.close_time,name = p.name, market_number = 3,name_setting = True) new_market.save() new_securityprice = SecurityPrice(market = new_market,price = [], amount = []) new_securityprice.save() new_pricehistory = PriceHistory(product = p,data = [], number = 3) new_pricehistory.save() p.market_number = 3 for security in first_market.security_set.all(): new_security = Security(market=new_market,product_name=security.product_name,attributes = security.attributes,attribute_name = security.attribute_name,selling_price = security.selling_price,number=security.number,gross_margin = 500) new_security.save() elif player_number > 21: p.player_number = player_number lmsr.b = stock * p.player_number / math.log((1.0 - 1.0 / p.security_number)/(1.0 - 0.99)) lmsr.save() else: pass else: pass except LMSR.DoesNotExist: lmsr = LMSR(product = p) lmsr.P0 = 500 lmsr.b = stock * p.player_number / math.log((1.0 - 1.0 / p.security_number)/(1.0 - 0.99)) lmsr.save() securities = Security.objects.filter(market = first_market) for s in securities: s.gross_margin = 500 s.save() markets = Market.objects.filter(product = p) markets.update(open_time = p.open_time) markets.update(close_time = p.close_time) start_price = [round(lmsr.P0/p.security_number,2)] * p.security_number amount = [0] * p.security_number start_rate = [round(1.0/p.security_number*0.5+0.5,2)] * p.security_number data = copy.copy(start_rate) data.insert(0,int(time.mktime(p.open_time.timetuple())) * 1000) ph = PriceHistory.objects.filter(product =p,is_open = True) ph.update(is_open = False) for m in markets: securityprice = SecurityPrice.objects.get(market = m) securityprice.price = start_price securityprice.amount = amount securityprice.sale_rate = start_rate securityprice.save() pricehistory = PriceHistory(product = p,data = [data], number = m.market_number,is_open = True) pricehistory.save() p.cost_setting = True p.save()
def DeterminCostPrice(modeladmin, request, queryset): for p in queryset: stock = 100000.0 / (500 * (p.security_number + 1)) first_market = Market.objects.filter(product=p).get(market_number=1) try: lmsr = LMSR.objects.get(product=p) player_number = Participation.objects.filter( market__product=p).count() if Market.objects.filter(product=p).count() == 1: if player_number >= 20: '''market make''' new_market = Market(product=p, open_time=p.open_time, close_time=p.close_time, name=p.name, market_number=2, name_setting=True) new_market.save() new_securityprice = SecurityPrice(market=new_market, price=[], amount=[]) new_securityprice.save() new_pricehistory = PriceHistory(product=p, data=[], number=2) new_pricehistory.save() p.market_number = 2 for security in first_market.security_set.all(): new_security = Security( market=new_market, product_name=security.product_name, attributes=security.attributes, attribute_name=security.attribute_name, selling_price=security.selling_price, number=security.number, gross_margin=500) new_security.save() elif player_number > 10: p.player_number = player_number lmsr.b = stock * p.player_number / math.log( (1.0 - 1.0 / p.security_number) / (1.0 - 0.99)) lmsr.save() else: pass elif Market.objects.filter(product=p).count() == 2: if player_number >= 40: '''market make''' new_market = Market(product=p, open_time=p.open_time, close_time=p.close_time, name=p.name, market_number=3, name_setting=True) new_market.save() new_securityprice = SecurityPrice(market=new_market, price=[], amount=[]) new_securityprice.save() new_pricehistory = PriceHistory(product=p, data=[], number=3) new_pricehistory.save() p.market_number = 3 for security in first_market.security_set.all(): new_security = Security( market=new_market, product_name=security.product_name, attributes=security.attributes, attribute_name=security.attribute_name, selling_price=security.selling_price, number=security.number, gross_margin=500) new_security.save() elif player_number > 21: p.player_number = player_number lmsr.b = stock * p.player_number / math.log( (1.0 - 1.0 / p.security_number) / (1.0 - 0.99)) lmsr.save() else: pass else: pass except LMSR.DoesNotExist: lmsr = LMSR(product=p) lmsr.P0 = 500 lmsr.b = stock * p.player_number / math.log( (1.0 - 1.0 / p.security_number) / (1.0 - 0.99)) lmsr.save() securities = Security.objects.filter(market=first_market) for s in securities: s.gross_margin = 500 s.save() markets = Market.objects.filter(product=p) markets.update(open_time=p.open_time) markets.update(close_time=p.close_time) start_price = [round(lmsr.P0 / p.security_number, 2) ] * p.security_number amount = [0] * p.security_number start_rate = [round(1.0 / p.security_number * 0.5 + 0.5, 2) ] * p.security_number data = copy.copy(start_rate) data.insert(0, int(time.mktime(p.open_time.timetuple())) * 1000) ph = PriceHistory.objects.filter(product=p, is_open=True) ph.update(is_open=False) for m in markets: securityprice = SecurityPrice.objects.get(market=m) securityprice.price = start_price securityprice.amount = amount securityprice.sale_rate = start_rate securityprice.save() pricehistory = PriceHistory(product=p, data=[data], number=m.market_number, is_open=True) pricehistory.save() p.cost_setting = True p.save()