from otree.api import ( models, widgets, BaseConstants, BaseSubsession, BaseGroup, BasePlayer, Currency as c, currency_range ) import csv import random author = """ Tobias Brevik t.brevik@fsu.edu """ doc = """ graph_attempt1 """ class Constants(BaseConstants): name_in_url = 'graph_attempt1' players_per_group = None num_rounds = 2 bleck=11 time_per_return = 500 riskfree=.9 initial_wealth = 5000 class Subsession(BaseSubsession): def creating_session(self): if self.round_number == 1: for p in self.get_players(): p.participant.vars['count'] = [] month = [0] init_wealth = [Constants.initial_wealth] percentage = [0] end_wealth = [Constants.initial_wealth] history = list(zip(month, init_wealth, percentage, end_wealth)) p.participant.vars['history'] = history p.random_data = random.randint(1, 6) p.p1=random.randint(1,20) p.p2 = random.randint(1,20) p.p3 = random.randint(1,20) def vars_for_template(self): cats = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, "test", "testes"], # cat="testes", return { #'hc_series': sequence_1, #'round_numbers': list(range(1, Constants.bleck)), #'hc_p2': ptwo, #'hc_cats': cats # 'hc_cat':cat } def vars_for_admin_report(self): sequence_1=[] prices_1 = [2, 4, 6] periods=[1,2,3] ptwo=-5 pthree = 3 sequence_1.append({ 'name': 'Stock Price', 'data': [2,4,6] #prices_1 }) #sequence_1.append(random.randint(1,20)) #sequence_1.append(random.randint(1, 20)) #sequence_1.append(random.randint(1, 20)) period=[] period[0]=1 period[1]=2 period[2]=3 # sequence_1.append({ # 'name': 'Month', # 'data': periods #}) #cats=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, "test","testes"], #cat="testes", return{ 'hc_series': sequence_1, 'round_numbers': list(range(1, Constants.bleck+2)), 'hc_p2':ptwo, # 'hc_cats':cats #'hc_cat':cat } #p.p1 = random.randint(1, 20) #return{'hc_p1':p1} # for row in reader: # mreturns.append(row) #mreturns = [i[p.random_data-1] for i in mreturns] #mreturns = [float(i) for i in mreturns] #p.participant.vars['returns'] = returns #p.participant.vars['prices'] = prices #p.participant.vars['mreturns'] = mreturns #p.participant.vars['returns1'] = returns class Group(BaseGroup): pass class Player(BasePlayer): p1 = models.IntegerField() p2 = models.IntegerField() p3 = models.IntegerField() random_data = models.IntegerField(blank=True) investment = models.FloatField(blank=True) rate = models.IntegerField(blank=True) risk = models.IntegerField(blank=True) fc = models.FloatField(blank=True) fc_p05 = models.FloatField(blank=True) fc_p95 = models.FloatField(blank=True) monthly_return = models.FloatField(blank=True)