from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants class Introduction(Page): form_model = 'player' def before_next_page(self): import random player = self.player player.Stock_type1 = random.choice(['hi', 'lo', 'lo', 'lo']) player.Stock_type2 = random.choice(['hi', 'lo', 'lo', 'lo']) player.Stock_type3 = random.choice(['hi', 'lo', 'lo', 'lo']) player.Stock_type4 = random.choice(['hi', 'lo', 'lo', 'lo']) player.Stock_type5 = random.choice(['hi', 'lo', 'lo', 'lo']) player.Stock_type6 = random.choice(['hi', 'lo', 'lo', 'lo']) player.Stock_type7 = random.choice(['hi', 'lo', 'lo', 'lo']) player.Stock_type8 = random.choice(['hi', 'lo', 'lo', 'lo']) player.Stock_type9 = random.choice(['hi', 'lo', 'lo', 'lo']) player.Stock_type10 = random.choice(['hi', 'lo', 'lo', 'lo']) player.Stock_type11 = random.choice(['hi', 'lo', 'lo', 'lo']) player.Stock_type12 = random.choice(['hi', 'lo', 'lo', 'lo']) player.Stock_type13 = random.choice(['hi', 'lo', 'lo', 'lo']) player.Stock_type14 = random.choice(['hi', 'lo', 'lo', 'lo']) player.Stock_type15 = random.choice(['hi', 'lo', 'lo', 'lo']) player.Stock_type16 = random.choice(['hi', 'lo', 'lo', 'lo']) player.Stock_type17 = random.choice(['hi', 'lo', 'lo', 'lo']) player.Stock_type18 = random.choice(['hi', 'lo', 'lo', 'lo']) player.Stock_type19 = random.choice(['hi', 'lo', 'lo', 'lo']) player.Stock_type20 = random.choice(['hi', 'lo', 'lo', 'lo']) player.Stock_type21 = random.choice(['hi', 'lo', 'lo', 'lo']) player.Stock_type22 = random.choice(['hi', 'lo', 'lo', 'lo']) player.Stock_type23 = random.choice(['hi', 'lo', 'lo', 'lo']) player.Stock_type24 = random.choice(['hi', 'lo', 'lo', 'lo']) player.Stock_type25 = random.choice(['hi', 'lo', 'lo', 'lo']) player.Stock_type26 = random.choice(['hi', 'lo', 'lo', 'lo']) player.Stock_type27 = random.choice(['hi', 'lo', 'lo', 'lo']) player.Stock_type28 = random.choice(['hi', 'lo', 'lo', 'lo']) player.Stock_type29 = random.choice(['hi', 'lo', 'lo', 'lo']) player.Stock_type30 = random.choice(['hi', 'lo', 'lo', 'lo']) player.Stock_type31 = random.choice(['hi', 'lo', 'lo', 'lo']) player.Stock_type32 = random.choice(['hi', 'lo', 'lo', 'lo']) player.Stock_type33 = random.choice(['hi', 'lo', 'lo', 'lo']) player.Stock_type34 = random.choice(['hi', 'lo', 'lo', 'lo']) player.Stock_type35 = random.choice(['hi', 'lo', 'lo', 'lo']) player.Stock_type36 = random.choice(['hi', 'lo', 'lo', 'lo']) player.Stock_type37 = random.choice(['hi', 'lo', 'lo', 'lo']) player.Stock_type38 = random.choice(['hi', 'lo', 'lo', 'lo']) player.Stock_type39 = random.choice(['hi', 'lo', 'lo', 'lo']) player.Stock_type40 = random.choice(['hi', 'lo', 'lo', 'lo']) player.Stock_type41 = random.choice(['hi', 'lo', 'lo', 'lo']) player.Stock_type42 = random.choice(['hi', 'lo', 'lo', 'lo']) player.Stock_type43 = random.choice(['hi', 'lo', 'lo', 'lo']) player.Stock_type44 = random.choice(['hi', 'lo', 'lo', 'lo']) player.Stock_type50 = random.choice(['hi', 'lo', 'lo', 'lo']) player.Stock_type51 = random.choice(['hi', 'lo', 'lo', 'lo']) player.Stock_type52 = random.choice(['hi', 'lo', 'lo', 'lo']) player.Stock_type53 = random.choice(['hi', 'lo', 'lo', 'lo']) player.Stock_type54 = random.choice(['hi', 'lo', 'lo', 'lo']) player.Stock_type55 = random.choice(['hi', 'lo', 'lo', 'lo']) player.Stock_type56 = random.choice(['hi', 'lo', 'lo', 'lo']) player.Stock_type57 = random.choice(['hi', 'lo', 'lo', 'lo']) player.Stock_type58 = random.choice(['hi', 'lo', 'lo', 'lo']) player.Stock_type59 = random.choice(['hi', 'lo', 'lo', 'lo']) player.Stock_type60 = random.choice(['hi', 'lo', 'lo', 'lo']) player.Stock_type61 = random.choice(['hi', 'lo', 'lo', 'lo']) ### STOCK 1 # set correcht price change weights Current_price_change_weights = Constants.Price_change_weights_lo if player.Stock_type1 == 'hi': Current_price_change_weights = Constants.Price_change_weights_hi # assign random price change to every price player.Stock1_p1 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock1_p2 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock1_p3 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock1_p4 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock1_p5 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock1_p6 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock1_p7 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock1_p8 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock1_p9 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock1_p10 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] ### STOCK 2 # set correcht price change weights Current_price_change_weights = Constants.Price_change_weights_lo if player.Stock_type2 == 'hi': Current_price_change_weights = Constants.Price_change_weights_hi # assign random price change to every price player.Stock2_p1 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock2_p2 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock2_p3 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock2_p4 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock2_p5 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock2_p6 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock2_p7 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock2_p8 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock2_p9 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock2_p10 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] ### STOCK 3 # set correcht price change weights Current_price_change_weights = Constants.Price_change_weights_lo if player.Stock_type3 == 'hi': Current_price_change_weights = Constants.Price_change_weights_hi # assign random price change to every price player.Stock3_p1 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock3_p2 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock3_p3 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock3_p4 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock3_p5 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock3_p6 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock3_p7 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock3_p8 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock3_p9 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock3_p10 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] ### STOCK 4 # set correcht price change weights Current_price_change_weights = Constants.Price_change_weights_lo if player.Stock_type4 == 'hi': Current_price_change_weights = Constants.Price_change_weights_hi # assign random price change to every price player.Stock4_p1 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock4_p2 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock4_p3 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock4_p4 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock4_p5 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock4_p6 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock4_p7 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock4_p8 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock4_p9 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock4_p10 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] ### STOCK 5 # set correcht price change weights Current_price_change_weights = Constants.Price_change_weights_lo if player.Stock_type5 == 'hi': Current_price_change_weights = Constants.Price_change_weights_hi # assign random price change to every price player.Stock5_p1 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock5_p2 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock5_p3 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock5_p4 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock5_p5 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock5_p6 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock5_p7 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock5_p8 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock5_p9 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock5_p10 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] ### STOCK 6 # set correcht price change weights Current_price_change_weights = Constants.Price_change_weights_lo if player.Stock_type6 == 'hi': Current_price_change_weights = Constants.Price_change_weights_hi # assign random price change to every price player.Stock6_p1 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock6_p2 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock6_p3 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock6_p4 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock6_p5 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock6_p6 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock6_p7 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock6_p8 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock6_p9 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock6_p10 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] ### STOCK 7 # set correcht price change weights Current_price_change_weights = Constants.Price_change_weights_lo if player.Stock_type7 == 'hi': Current_price_change_weights = Constants.Price_change_weights_hi # assign random price change to every price player.Stock7_p1 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock7_p2 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock7_p3 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock7_p4 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock7_p5 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock7_p6 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock7_p7 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock7_p8 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock7_p9 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock7_p10 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] ### STOCK 8 # set correcht price change weights Current_price_change_weights = Constants.Price_change_weights_lo if player.Stock_type8 == 'hi': Current_price_change_weights = Constants.Price_change_weights_hi # assign random price change to every price player.Stock8_p1 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock8_p2 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock8_p3 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock8_p4 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock8_p5 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock8_p6 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock8_p7 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock8_p8 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock8_p9 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock8_p10 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] ### STOCK 9 # set correcht price change weights Current_price_change_weights = Constants.Price_change_weights_lo if player.Stock_type9 == 'hi': Current_price_change_weights = Constants.Price_change_weights_hi # assign random price change to every price player.Stock9_p1 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock9_p2 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock9_p3 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock9_p4 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock9_p5 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock9_p6 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock9_p7 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock9_p8 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock9_p9 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock9_p10 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] ### STOCK 10 # set correcht price change weights Current_price_change_weights = Constants.Price_change_weights_lo if player.Stock_type10 == 'hi': Current_price_change_weights = Constants.Price_change_weights_hi # assign random price change to every price player.Stock10_p1 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock10_p2 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock10_p3 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock10_p4 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock10_p5 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock10_p6 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock10_p7 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock10_p8 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock10_p9 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock10_p10 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] ### STOCK 11 # set correcht price change weights Current_price_change_weights = Constants.Price_change_weights_lo if player.Stock_type11 == 'hi': Current_price_change_weights = Constants.Price_change_weights_hi # assign random price change to every price player.Stock11_p1 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock11_p2 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock11_p3 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock11_p4 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock11_p5 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock11_p6 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock11_p7 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock11_p8 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock11_p9 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock11_p10 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] ### STOCK 12 # set correcht price change weights Current_price_change_weights = Constants.Price_change_weights_lo if player.Stock_type12 == 'hi': Current_price_change_weights = Constants.Price_change_weights_hi # assign random price change to every price player.Stock12_p1 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock12_p2 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock12_p3 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock12_p4 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock12_p5 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock12_p6 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock12_p7 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock12_p8 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock12_p9 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock12_p10 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] ### STOCK 13 # set correcht price change weights Current_price_change_weights = Constants.Price_change_weights_lo if player.Stock_type13 == 'hi': Current_price_change_weights = Constants.Price_change_weights_hi # assign random price change to every price player.Stock13_p1 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock13_p2 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock13_p3 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock13_p4 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock13_p5 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock13_p6 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock13_p7 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock13_p8 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock13_p9 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock13_p10 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] ### STOCK 14 # set correcht price change weights Current_price_change_weights = Constants.Price_change_weights_lo if player.Stock_type14 == 'hi': Current_price_change_weights = Constants.Price_change_weights_hi # assign random price change to every price player.Stock14_p1 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock14_p2 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock14_p3 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock14_p4 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock14_p5 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock14_p6 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock14_p7 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock14_p8 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock14_p9 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock14_p10 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] ### STOCK 15 # set correcht price change weights Current_price_change_weights = Constants.Price_change_weights_lo if player.Stock_type15 == 'hi': Current_price_change_weights = Constants.Price_change_weights_hi # assign random price change to every price player.Stock15_p1 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock15_p2 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock15_p3 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock15_p4 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock15_p5 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock15_p6 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock15_p7 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock15_p8 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock15_p9 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock15_p10 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] ### STOCK 16 # set correcht price change weights Current_price_change_weights = Constants.Price_change_weights_lo if player.Stock_type16 == 'hi': Current_price_change_weights = Constants.Price_change_weights_hi # assign random price change to every price player.Stock16_p1 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock16_p2 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock16_p3 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock16_p4 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock16_p5 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock16_p6 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock16_p7 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock16_p8 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock16_p9 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock16_p10 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] ### STOCK 17 # set correcht price change weights Current_price_change_weights = Constants.Price_change_weights_lo if player.Stock_type17 == 'hi': Current_price_change_weights = Constants.Price_change_weights_hi # assign random price change to every price player.Stock17_p1 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock17_p2 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock17_p3 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock17_p4 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock17_p5 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock17_p6 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock17_p7 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock17_p8 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock17_p9 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock17_p10 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] ### STOCK 18 # set correcht price change weights Current_price_change_weights = Constants.Price_change_weights_lo if player.Stock_type18 == 'hi': Current_price_change_weights = Constants.Price_change_weights_hi # assign random price change to every price player.Stock18_p1 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock18_p2 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock18_p3 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock18_p4 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock18_p5 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock18_p6 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock18_p7 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock18_p8 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock18_p9 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock18_p10 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] ### STOCK 19 # set correcht price change weights Current_price_change_weights = Constants.Price_change_weights_lo if player.Stock_type19 == 'hi': Current_price_change_weights = Constants.Price_change_weights_hi # assign random price change to every price player.Stock19_p1 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock19_p2 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock19_p3 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock19_p4 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock19_p5 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock19_p6 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock19_p7 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock19_p8 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock19_p9 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock19_p10 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] ### STOCK 20 # set correcht price change weights Current_price_change_weights = Constants.Price_change_weights_lo if player.Stock_type20 == 'hi': Current_price_change_weights = Constants.Price_change_weights_hi # assign random price change to every price player.Stock20_p1 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock20_p2 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock20_p3 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock20_p4 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock20_p5 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock20_p6 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock20_p7 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock20_p8 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock20_p9 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock20_p10 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] ### STOCK 21 # set correcht price change weights Current_price_change_weights = Constants.Price_change_weights_lo if player.Stock_type21 == 'hi': Current_price_change_weights = Constants.Price_change_weights_hi # assign random price change to every price player.Stock21_p1 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock21_p2 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock21_p3 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock21_p4 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock21_p5 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock21_p6 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock21_p7 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock21_p8 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock21_p9 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock21_p10 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] ### STOCK 21 # set correcht price change weights Current_price_change_weights = Constants.Price_change_weights_lo if player.Stock_type21 == 'hi': Current_price_change_weights = Constants.Price_change_weights_hi # assign random price change to every price player.Stock21_p1 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock21_p2 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock21_p3 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock21_p4 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock21_p5 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock21_p6 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock21_p7 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock21_p8 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock21_p9 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock21_p10 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] ### STOCK 22 # set correcht price change weights Current_price_change_weights = Constants.Price_change_weights_lo if player.Stock_type22 == 'hi': Current_price_change_weights = Constants.Price_change_weights_hi # assign random price change to every price player.Stock22_p1 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock22_p2 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock22_p3 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock22_p4 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock22_p5 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock22_p6 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock22_p7 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock22_p8 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock22_p9 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock22_p10 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] ### STOCK 23 # set correcht price change weights Current_price_change_weights = Constants.Price_change_weights_lo if player.Stock_type23 == 'hi': Current_price_change_weights = Constants.Price_change_weights_hi # assign random price change to every price player.Stock23_p1 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock23_p2 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock23_p3 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock23_p4 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock23_p5 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock23_p6 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock23_p7 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock23_p8 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock23_p9 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock23_p10 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] ### STOCK 24 # set correcht price change weights Current_price_change_weights = Constants.Price_change_weights_lo if player.Stock_type24 == 'hi': Current_price_change_weights = Constants.Price_change_weights_hi # assign random price change to every price player.Stock24_p1 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock24_p2 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock24_p3 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock24_p4 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock24_p5 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock24_p6 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock24_p7 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock24_p8 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock24_p9 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock24_p10 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] ### STOCK 25 # set correcht price change weights Current_price_change_weights = Constants.Price_change_weights_lo if player.Stock_type25 == 'hi': Current_price_change_weights = Constants.Price_change_weights_hi # assign random price change to every price player.Stock25_p1 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock25_p2 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock25_p3 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock25_p4 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock25_p5 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock25_p6 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock25_p7 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock25_p8 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock25_p9 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock25_p10 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] ### STOCK 26 # set correcht price change weights Current_price_change_weights = Constants.Price_change_weights_lo if player.Stock_type26 == 'hi': Current_price_change_weights = Constants.Price_change_weights_hi # assign random price change to every price player.Stock26_p1 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock26_p2 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock26_p3 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock26_p4 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock26_p5 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock26_p6 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock26_p7 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock26_p8 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock26_p9 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock26_p10 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] ### STOCK 27 # set correcht price change weights Current_price_change_weights = Constants.Price_change_weights_lo if player.Stock_type27 == 'hi': Current_price_change_weights = Constants.Price_change_weights_hi # assign random price change to every price player.Stock27_p1 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock27_p2 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock27_p3 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock27_p4 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock27_p5 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock27_p6 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock27_p7 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock27_p8 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock27_p9 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock27_p10 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] ### STOCK 28 # set correcht price change weights Current_price_change_weights = Constants.Price_change_weights_lo if player.Stock_type28 == 'hi': Current_price_change_weights = Constants.Price_change_weights_hi # assign random price change to every price player.Stock28_p1 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock28_p2 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock28_p3 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock28_p4 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock28_p5 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock28_p6 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock28_p7 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock28_p8 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock28_p9 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock28_p10 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] ### STOCK 29 # set correcht price change weights Current_price_change_weights = Constants.Price_change_weights_lo if player.Stock_type29 == 'hi': Current_price_change_weights = Constants.Price_change_weights_hi # assign random price change to every price player.Stock29_p1 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock29_p2 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock29_p3 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock29_p4 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock29_p5 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock29_p6 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock29_p7 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock29_p8 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock29_p9 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock29_p10 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] ### STOCK 30 # set correcht price change weights Current_price_change_weights = Constants.Price_change_weights_lo if player.Stock_type30 == 'hi': Current_price_change_weights = Constants.Price_change_weights_hi # assign random price change to every price player.Stock30_p1 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock30_p2 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock30_p3 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock30_p4 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock30_p5 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock30_p6 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock30_p7 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock30_p8 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock30_p9 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock30_p10 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] ### STOCK 31 # set correcht price change weights Current_price_change_weights = Constants.Price_change_weights_lo if player.Stock_type31 == 'hi': Current_price_change_weights = Constants.Price_change_weights_hi # assign random price change to every price player.Stock31_p1 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock31_p2 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock31_p3 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock31_p4 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock31_p5 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock31_p6 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock31_p7 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock31_p8 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock31_p9 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock31_p10 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] ### STOCK 32 # set correcht price change weights Current_price_change_weights = Constants.Price_change_weights_lo if player.Stock_type32 == 'hi': Current_price_change_weights = Constants.Price_change_weights_hi # assign random price change to every price player.Stock32_p1 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock32_p2 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock32_p3 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock32_p4 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock32_p5 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock32_p6 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock32_p7 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock32_p8 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock32_p9 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock32_p10 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] ### STOCK 33 # set correcht price change weights Current_price_change_weights = Constants.Price_change_weights_lo if player.Stock_type33 == 'hi': Current_price_change_weights = Constants.Price_change_weights_hi # assign random price change to every price player.Stock33_p1 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock33_p2 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock33_p3 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock33_p4 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock33_p5 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock33_p6 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock33_p7 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock33_p8 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock33_p9 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock33_p10 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] ### STOCK 34 # set correcht price change weights Current_price_change_weights = Constants.Price_change_weights_lo if player.Stock_type34 == 'hi': Current_price_change_weights = Constants.Price_change_weights_hi # assign random price change to every price player.Stock34_p1 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock34_p2 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock34_p3 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock34_p4 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock34_p5 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock34_p6 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock34_p7 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock34_p8 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock34_p9 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock34_p10 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] ### STOCK 35 # set correcht price change weights Current_price_change_weights = Constants.Price_change_weights_lo if player.Stock_type35 == 'hi': Current_price_change_weights = Constants.Price_change_weights_hi # assign random price change to every price player.Stock35_p1 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock35_p2 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock35_p3 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock35_p4 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock35_p5 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock35_p6 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock35_p7 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock35_p8 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock35_p9 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock35_p10 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] ### STOCK 36 # set correcht price change weights Current_price_change_weights = Constants.Price_change_weights_lo if player.Stock_type36 == 'hi': Current_price_change_weights = Constants.Price_change_weights_hi # assign random price change to every price player.Stock36_p1 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock36_p2 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock36_p3 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock36_p4 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock36_p5 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock36_p6 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock36_p7 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock36_p8 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock36_p9 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock36_p10 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] ### STOCK 37 # set correcht price change weights Current_price_change_weights = Constants.Price_change_weights_lo if player.Stock_type37 == 'hi': Current_price_change_weights = Constants.Price_change_weights_hi # assign random price change to every price player.Stock37_p1 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock37_p2 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock37_p3 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock37_p4 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock37_p5 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock37_p6 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock37_p7 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock37_p8 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock37_p9 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock37_p10 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] ### STOCK 38 # set correcht price change weights Current_price_change_weights = Constants.Price_change_weights_lo if player.Stock_type38 == 'hi': Current_price_change_weights = Constants.Price_change_weights_hi # assign random price change to every price player.Stock38_p1 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock38_p2 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock38_p3 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock38_p4 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock38_p5 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock38_p6 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock38_p7 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock38_p8 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock38_p9 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock38_p10 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] ### STOCK 39 # set correcht price change weights Current_price_change_weights = Constants.Price_change_weights_lo if player.Stock_type39 == 'hi': Current_price_change_weights = Constants.Price_change_weights_hi # assign random price change to every price player.Stock39_p1 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock39_p2 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock39_p3 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock39_p4 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock39_p5 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock39_p6 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock39_p7 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock39_p8 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock39_p9 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock39_p10 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] ### STOCK 40 # set correcht price change weights Current_price_change_weights = Constants.Price_change_weights_lo if player.Stock_type40 == 'hi': Current_price_change_weights = Constants.Price_change_weights_hi # assign random price change to every price player.Stock40_p1 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock40_p2 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock40_p3 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock40_p4 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock40_p5 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock40_p6 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock40_p7 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock40_p8 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock40_p9 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock40_p10 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] ### STOCK 40 # set correcht price change weights Current_price_change_weights = Constants.Price_change_weights_lo if player.Stock_type40 == 'hi': Current_price_change_weights = Constants.Price_change_weights_hi # assign random price change to every price player.Stock40_p1 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock40_p2 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock40_p3 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock40_p4 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock40_p5 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock40_p6 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock40_p7 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock40_p8 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock40_p9 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock40_p10 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] ### STOCK 41 # set correcht price change weights Current_price_change_weights = Constants.Price_change_weights_lo if player.Stock_type41 == 'hi': Current_price_change_weights = Constants.Price_change_weights_hi # assign random price change to every price player.Stock41_p1 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock41_p2 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock41_p3 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock41_p4 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock41_p5 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock41_p6 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock41_p7 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock41_p8 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock41_p9 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock41_p10 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] ### STOCK 42 # set correcht price change weights Current_price_change_weights = Constants.Price_change_weights_lo if player.Stock_type42 == 'hi': Current_price_change_weights = Constants.Price_change_weights_hi # assign random price change to every price player.Stock42_p1 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock42_p2 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock42_p3 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock42_p4 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock42_p5 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock42_p6 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock42_p7 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock42_p8 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock42_p9 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock42_p10 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] ### STOCK 43 # set correcht price change weights Current_price_change_weights = Constants.Price_change_weights_lo if player.Stock_type43 == 'hi': Current_price_change_weights = Constants.Price_change_weights_hi # assign random price change to every price player.Stock43_p1 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock43_p2 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock43_p3 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock43_p4 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock43_p5 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock43_p6 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock43_p7 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock43_p8 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock43_p9 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock43_p10 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] ### STOCK 44 # set correcht price change weights Current_price_change_weights = Constants.Price_change_weights_lo if player.Stock_type44 == 'hi': Current_price_change_weights = Constants.Price_change_weights_hi # assign random price change to every price player.Stock44_p1 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock44_p2 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock44_p3 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock44_p4 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock44_p5 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock44_p6 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock44_p7 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock44_p8 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock44_p9 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock44_p10 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] ### STOCK 50 # set correcht price change weights Current_price_change_weights = Constants.Price_change_weights_lo if player.Stock_type50 == 'hi': Current_price_change_weights = Constants.Price_change_weights_hi # assign random price change to every price player.Stock50_p1 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock50_p2 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock50_p3 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock50_p4 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock50_p5 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock50_p6 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock50_p7 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock50_p8 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock50_p9 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock50_p10 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] ### STOCK 51 # set correcht price change weights Current_price_change_weights = Constants.Price_change_weights_lo if player.Stock_type51 == 'hi': Current_price_change_weights = Constants.Price_change_weights_hi # assign random price change to every price player.Stock51_p1 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock51_p2 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock51_p3 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock51_p4 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock51_p5 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock51_p6 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock51_p7 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock51_p8 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock51_p9 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock51_p10 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] ### STOCK 52 # set correcht price change weights Current_price_change_weights = Constants.Price_change_weights_lo if player.Stock_type52 == 'hi': Current_price_change_weights = Constants.Price_change_weights_hi # assign random price change to every price player.Stock52_p1 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock52_p2 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock52_p3 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock52_p4 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock52_p5 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock52_p6 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock52_p7 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock52_p8 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock52_p9 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock52_p10 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] ### STOCK 53 # set correcht price change weights Current_price_change_weights = Constants.Price_change_weights_lo if player.Stock_type53 == 'hi': Current_price_change_weights = Constants.Price_change_weights_hi # assign random price change to every price player.Stock53_p1 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock53_p2 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock53_p3 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock53_p4 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock53_p5 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock53_p6 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock53_p7 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock53_p8 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock53_p9 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock53_p10 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] ### STOCK 54 # set correcht price change weights Current_price_change_weights = Constants.Price_change_weights_lo if player.Stock_type54 == 'hi': Current_price_change_weights = Constants.Price_change_weights_hi # assign random price change to every price player.Stock54_p1 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock54_p2 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock54_p3 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock54_p4 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock54_p5 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock54_p6 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock54_p7 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock54_p8 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock54_p9 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock54_p10 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] ### STOCK 55 # set correcht price change weights Current_price_change_weights = Constants.Price_change_weights_lo if player.Stock_type55 == 'hi': Current_price_change_weights = Constants.Price_change_weights_hi # assign random price change to every price player.Stock55_p1 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock55_p2 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock55_p3 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock55_p4 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock55_p5 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock55_p6 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock55_p7 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock55_p8 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock55_p9 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock55_p10 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] ### STOCK 56 # set correcht price change weights Current_price_change_weights = Constants.Price_change_weights_lo if player.Stock_type56 == 'hi': Current_price_change_weights = Constants.Price_change_weights_hi # assign random price change to every price player.Stock56_p1 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock56_p2 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock56_p3 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock56_p4 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock56_p5 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock56_p6 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock56_p7 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock56_p8 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock56_p9 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock56_p10 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] ### STOCK 57 # set correcht price change weights Current_price_change_weights = Constants.Price_change_weights_lo if player.Stock_type57 == 'hi': Current_price_change_weights = Constants.Price_change_weights_hi # assign random price change to every price player.Stock57_p1 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock57_p2 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock57_p3 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock57_p4 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock57_p5 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock57_p6 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock57_p7 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock57_p8 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock57_p9 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock57_p10 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] ### STOCK 58 # set correcht price change weights Current_price_change_weights = Constants.Price_change_weights_lo if player.Stock_type58 == 'hi': Current_price_change_weights = Constants.Price_change_weights_hi # assign random price change to every price player.Stock58_p1 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock58_p2 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock58_p3 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock58_p4 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock58_p5 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock58_p6 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock58_p7 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock58_p8 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock58_p9 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock58_p10 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] ### STOCK 59 # set correcht price change weights Current_price_change_weights = Constants.Price_change_weights_lo if player.Stock_type59 == 'hi': Current_price_change_weights = Constants.Price_change_weights_hi # assign random price change to every price player.Stock59_p1 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock59_p2 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock59_p3 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock59_p4 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock59_p5 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock59_p6 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock59_p7 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock59_p8 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock59_p9 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock59_p10 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] ### STOCK 60 # set correcht price change weights Current_price_change_weights = Constants.Price_change_weights_lo if player.Stock_type60 == 'hi': Current_price_change_weights = Constants.Price_change_weights_hi # assign random price change to every price player.Stock60_p1 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock60_p2 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock60_p3 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock60_p4 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock60_p5 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock60_p6 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock60_p7 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock60_p8 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock60_p9 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock60_p10 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] ### STOCK 61 # set correcht price change weights Current_price_change_weights = Constants.Price_change_weights_lo if player.Stock_type61 == 'hi': Current_price_change_weights = Constants.Price_change_weights_hi # assign random price change to every price player.Stock61_p1 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock61_p2 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock61_p2 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock61_p3 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock61_p4 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock61_p5 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock61_p6 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock61_p7 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock61_p8 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock61_p9 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] player.Stock61_p10 = random.choices(Constants.Price_changes, Current_price_change_weights, k=1)[0] class Consent(Page): form_model = 'player' form_fields = ['Consent'] def error_message(self, values): print('values is', values) if values['Consent'] == 2: return 'You can only participate in this study if you give your consent.' class Instructions_general(Page): form_model = 'player' class Instructions_invest1_1(Page): form_model = 'player' class Instructions_invest1_2(Page): form_model = 'player' class Instructions_invest1_3(Page): form_model = 'player' class Instructions_questions(Page): form_model = 'player' class Instructions_invest2_1(Page): form_model = 'player' class Instructions_invest2_2(Page): form_model = 'player' class Instructions_invest2_2b(Page): form_model = 'player' class Instructions_invest2_3(Page): form_model = 'player' class Instructions_payment(Page): form_model = 'player' class Control_questions1(Page): form_model = 'player' form_fields = ['Control1'] def error_message(self, values): if self.player.numberWrongControl1 == None: self.player.numberWrongControl1 = 0 print('values is', values) if values['Control1'] != 2: self.player.numberWrongControl1 = self.player.numberWrongControl1 + 1 return 'This is not correct. Please check the respective instructions below and revise your response.' class Control_questions2(Page): form_model = 'player' form_fields = ['Control2'] def error_message(self, values): if self.player.numberWrongControl2 == None: self.player.numberWrongControl2 = 0 print('values is', values) if values['Control2'] != 1: self.player.numberWrongControl2 = self.player.numberWrongControl2 + 1 return 'This is not correct. Please check the respective instructions below and revise your response.' class Control_questions3(Page): form_model = 'player' form_fields = ['Control3'] def error_message(self, values): if self.player.numberWrongControl3 == None: self.player.numberWrongControl3 = 0 print('values is', values) if values['Control3'] != 1: self.player.numberWrongControl3 = self.player.numberWrongControl3 + 1 return 'This is not correct. Please check the respective instructions below and revise your response.' class Control_questions4(Page): form_model = 'player' form_fields = ['Control4'] def error_message(self, values): if self.player.numberWrongControl4 == None: self.player.numberWrongControl4 = 0 print('values is', values) if values['Control4'] != 1: self.player.numberWrongControl4 = self.player.numberWrongControl4 + 1 return 'This is not correct. Please check the respective instructions below and revise your response.' class Control_questions5(Page): form_model = 'player' form_fields = ['Control5'] def error_message(self, values): if self.player.numberWrongControl5 == None: self.player.numberWrongControl5 = 0 print('values is', values) if values['Control5'] != 1: self.player.numberWrongControl5 = self.player.numberWrongControl5 + 1 return 'This is not correct. Please check the respective instructions below and revise your response.' class EndTask1(Page): form_model = 'player' class Period0(Page): form_model = 'player' form_fields = ['Select_stock1', 'Select_stock2', 'Select_stock3', 'Select_stock4', 'Select_stock5', 'Select_stock6', 'Select_stock7', 'Select_stock8', 'Select_stock9', 'Select_stock10', 'Select_stock11', 'Select_stock12', 'Select_stock13', 'Select_stock14', 'Select_stock15', 'Select_stock16', 'Select_stock17', 'Select_stock18', 'Select_stock19', 'Select_stock20'] def error_message(self, values): print('values is', values) listSelectedStocks = [values['Select_stock1'], values['Select_stock2'], values['Select_stock3'], values['Select_stock4'], values['Select_stock5'], values['Select_stock6'], values['Select_stock7'], values['Select_stock8'], values['Select_stock9'], values['Select_stock10'], values['Select_stock11'], values['Select_stock12'], values['Select_stock13'], values['Select_stock14'], values['Select_stock15'], values['Select_stock16'], values['Select_stock17'], values['Select_stock18'], values['Select_stock19'], values['Select_stock20']] if listSelectedStocks.count(None) < 15: return 'You can only choose 5 stocks.' elif listSelectedStocks.count(None) > 15: return 'You have to choose 5 stocks.' def vars_for_template(self): return dict( Stock1_p1 = 30 - self.player.Stock1_p1, Stock1_p2 = 30 - self.player.Stock1_p1 - self.player.Stock1_p2, Stock1_p3 = 30 - self.player.Stock1_p1 - self.player.Stock1_p2 - self.player.Stock1_p3, Stock2_p1 = 30 - self.player.Stock2_p1, Stock2_p2 = 30 - self.player.Stock2_p1 - self.player.Stock2_p2, Stock2_p3 = 30 - self.player.Stock2_p1 - self.player.Stock2_p2 - self.player.Stock2_p3, Stock3_p1 = 30 - self.player.Stock3_p1, Stock3_p2 = 30 - self.player.Stock3_p1 - self.player.Stock3_p2, Stock3_p3 = 30 - self.player.Stock3_p1 - self.player.Stock3_p2 - self.player.Stock3_p3, Stock4_p1 = 30 - self.player.Stock4_p1, Stock4_p2 = 30 - self.player.Stock4_p1 - self.player.Stock4_p2, Stock4_p3 = 30 - self.player.Stock4_p1 - self.player.Stock4_p2 - self.player.Stock4_p3, Stock5_p1 = 30 - self.player.Stock5_p1, Stock5_p2 = 30 - self.player.Stock5_p1 - self.player.Stock5_p2, Stock5_p3 = 30 - self.player.Stock5_p1 - self.player.Stock5_p2 - self.player.Stock5_p3, Stock6_p1 = 30 - self.player.Stock6_p1, Stock6_p2 = 30 - self.player.Stock6_p1 - self.player.Stock6_p2, Stock6_p3 = 30 - self.player.Stock6_p1 - self.player.Stock6_p2 - self.player.Stock6_p3, Stock7_p1 = 30 - self.player.Stock7_p1, Stock7_p2 = 30 - self.player.Stock7_p1 - self.player.Stock7_p2, Stock7_p3 = 30 - self.player.Stock7_p1 - self.player.Stock7_p2 - self.player.Stock7_p3, Stock8_p1 = 30 - self.player.Stock8_p1, Stock8_p2 = 30 - self.player.Stock8_p1 - self.player.Stock8_p2, Stock8_p3 = 30 - self.player.Stock8_p1 - self.player.Stock8_p2 - self.player.Stock8_p3, Stock9_p1 = 30 - self.player.Stock9_p1, Stock9_p2 = 30 - self.player.Stock9_p1 - self.player.Stock9_p2, Stock9_p3 = 30 - self.player.Stock9_p1 - self.player.Stock9_p2 - self.player.Stock9_p3, Stock10_p1 = 30 - self.player.Stock10_p1, Stock10_p2 = 30 - self.player.Stock10_p1 - self.player.Stock10_p2, Stock10_p3 = 30 - self.player.Stock10_p1 - self.player.Stock10_p2 - self.player.Stock10_p3, Stock11_p1 = 30 - self.player.Stock11_p1, Stock11_p2 = 30 - self.player.Stock11_p1 - self.player.Stock11_p2, Stock11_p3 = 30 - self.player.Stock11_p1 - self.player.Stock11_p2 - self.player.Stock11_p3, Stock12_p1 = 30 - self.player.Stock12_p1, Stock12_p2 = 30 - self.player.Stock12_p1 - self.player.Stock12_p2, Stock12_p3 = 30 - self.player.Stock12_p1 - self.player.Stock12_p2 - self.player.Stock12_p3, Stock13_p1 = 30 - self.player.Stock13_p1, Stock13_p2 = 30 - self.player.Stock13_p1 - self.player.Stock13_p2, Stock13_p3 = 30 - self.player.Stock13_p1 - self.player.Stock13_p2 - self.player.Stock13_p3, Stock14_p1 = 30 - self.player.Stock14_p1, Stock14_p2 = 30 - self.player.Stock14_p1 - self.player.Stock14_p2, Stock14_p3 = 30 - self.player.Stock14_p1 - self.player.Stock14_p2 - self.player.Stock14_p3, Stock15_p1 = 30 - self.player.Stock15_p1, Stock15_p2 = 30 - self.player.Stock15_p1 - self.player.Stock15_p2, Stock15_p3 = 30 - self.player.Stock15_p1 - self.player.Stock15_p2 - self.player.Stock15_p3, Stock16_p1 = 30 - self.player.Stock16_p1, Stock16_p2 = 30 - self.player.Stock16_p1 - self.player.Stock16_p2, Stock16_p3 = 30 - self.player.Stock16_p1 - self.player.Stock16_p2 - self.player.Stock16_p3, Stock17_p1 = 30 - self.player.Stock17_p1, Stock17_p2 = 30 - self.player.Stock17_p1 - self.player.Stock17_p2, Stock17_p3 = 30 - self.player.Stock17_p1 - self.player.Stock17_p2 - self.player.Stock17_p3, Stock18_p1 = 30 - self.player.Stock18_p1, Stock18_p2 = 30 - self.player.Stock18_p1 - self.player.Stock18_p2, Stock18_p3 = 30 - self.player.Stock18_p1 - self.player.Stock18_p2 - self.player.Stock18_p3, Stock19_p1 = 30 - self.player.Stock19_p1, Stock19_p2 = 30 - self.player.Stock19_p1 - self.player.Stock19_p2, Stock19_p3 = 30 - self.player.Stock19_p1 - self.player.Stock19_p2 - self.player.Stock19_p3, Stock20_p1 = 30 - self.player.Stock20_p1, Stock20_p2 = 30 - self.player.Stock20_p1 - self.player.Stock20_p2, Stock20_p3 = 30 - self.player.Stock20_p1 - self.player.Stock20_p2 - self.player.Stock20_p3, ) #calculate period 1 stock price def before_next_page(self): self.player.period1Price_stock1 = 30 + self.player.Stock1_p4 self.player.period1Price_stock2 = 30 + self.player.Stock2_p4 self.player.period1Price_stock3 = 30 + self.player.Stock3_p4 self.player.period1Price_stock4 = 30 + self.player.Stock4_p4 self.player.period1Price_stock5 = 30 + self.player.Stock5_p4 self.player.period1Price_stock6 = 30 + self.player.Stock6_p4 self.player.period1Price_stock7 = 30 + self.player.Stock7_p4 self.player.period1Price_stock8 = 30 + self.player.Stock8_p4 self.player.period1Price_stock9 = 30 + self.player.Stock9_p4 self.player.period1Price_stock10 = 30 + self.player.Stock10_p4 self.player.period1Price_stock11 = 30 + self.player.Stock11_p4 self.player.period1Price_stock12 = 30 + self.player.Stock12_p4 self.player.period1Price_stock13 = 30 + self.player.Stock13_p4 self.player.period1Price_stock14 = 30 + self.player.Stock14_p4 self.player.period1Price_stock15 = 30 + self.player.Stock15_p4 self.player.period1Price_stock16 = 30 + self.player.Stock16_p4 self.player.period1Price_stock17 = 30 + self.player.Stock17_p4 self.player.period1Price_stock18 = 30 + self.player.Stock18_p4 self.player.period1Price_stock19 = 30 + self.player.Stock19_p4 self.player.period1Price_stock20 = 30 + self.player.Stock20_p4 self.createInitialPortfolio() self.createStockPriceDict() #create player's portfolio def createInitialPortfolio(self): self.participant.vars['Portfolio'] = [] if self.player.Select_stock1 == 'on': self.participant.vars['Portfolio'].append('Stock1') if self.player.Select_stock2 == 'on': self.participant.vars['Portfolio'].append('Stock2') if self.player.Select_stock3 == 'on': self.participant.vars['Portfolio'].append('Stock3') if self.player.Select_stock4 == 'on': self.participant.vars['Portfolio'].append('Stock4') if self.player.Select_stock5 == 'on': self.participant.vars['Portfolio'].append('Stock5') if self.player.Select_stock6 == 'on': self.participant.vars['Portfolio'].append('Stock6') if self.player.Select_stock7 == 'on': self.participant.vars['Portfolio'].append('Stock7') if self.player.Select_stock8 == 'on': self.participant.vars['Portfolio'].append('Stock8') if self.player.Select_stock9 == 'on': self.participant.vars['Portfolio'].append('Stock9') if self.player.Select_stock10 == 'on': self.participant.vars['Portfolio'].append('Stock10') if self.player.Select_stock11 == 'on': self.participant.vars['Portfolio'].append('Stock11') if self.player.Select_stock12 == 'on': self.participant.vars['Portfolio'].append('Stock12') if self.player.Select_stock13 == 'on': self.participant.vars['Portfolio'].append('Stock13') if self.player.Select_stock14 == 'on': self.participant.vars['Portfolio'].append('Stock14') if self.player.Select_stock15 == 'on': self.participant.vars['Portfolio'].append('Stock15') if self.player.Select_stock16 == 'on': self.participant.vars['Portfolio'].append('Stock16') if self.player.Select_stock17 == 'on': self.participant.vars['Portfolio'].append('Stock17') if self.player.Select_stock18 == 'on': self.participant.vars['Portfolio'].append('Stock18') if self.player.Select_stock19 == 'on': self.participant.vars['Portfolio'].append('Stock19') if self.player.Select_stock20 == 'on': self.participant.vars['Portfolio'].append('Stock20') def createStockPriceDict(self): self.participant.vars["priceChangeDict"] = {} self.participant.vars["priceChangeDict"]['Stock1_p1']=self.player.Stock1_p1 self.participant.vars["priceChangeDict"]['Stock1_p2']=self.player.Stock1_p2 self.participant.vars["priceChangeDict"]['Stock1_p3']=self.player.Stock1_p3 self.participant.vars["priceChangeDict"]['Stock1_p4']=self.player.Stock1_p4 self.participant.vars["priceChangeDict"]['Stock1_p5']=self.player.Stock1_p5 self.participant.vars["priceChangeDict"]['Stock1_p6']=self.player.Stock1_p6 self.participant.vars["priceChangeDict"]['Stock1_p7']=self.player.Stock1_p7 self.participant.vars["priceChangeDict"]['Stock1_p8']=self.player.Stock1_p8 self.participant.vars["priceChangeDict"]['Stock1_p9']=self.player.Stock1_p9 self.participant.vars["priceChangeDict"]['Stock1_p10']=self.player.Stock1_p10 self.participant.vars["priceChangeDict"]['Stock2_p1']=self.player.Stock2_p1 self.participant.vars["priceChangeDict"]['Stock2_p2']=self.player.Stock2_p2 self.participant.vars["priceChangeDict"]['Stock2_p3']=self.player.Stock2_p3 self.participant.vars["priceChangeDict"]['Stock2_p4']=self.player.Stock2_p4 self.participant.vars["priceChangeDict"]['Stock2_p5']=self.player.Stock2_p5 self.participant.vars["priceChangeDict"]['Stock2_p6']=self.player.Stock2_p6 self.participant.vars["priceChangeDict"]['Stock2_p7']=self.player.Stock2_p7 self.participant.vars["priceChangeDict"]['Stock2_p8']=self.player.Stock2_p8 self.participant.vars["priceChangeDict"]['Stock2_p9']=self.player.Stock2_p9 self.participant.vars["priceChangeDict"]['Stock2_p10']=self.player.Stock2_p10 self.participant.vars["priceChangeDict"]['Stock3_p1']=self.player.Stock3_p1 self.participant.vars["priceChangeDict"]['Stock3_p2']=self.player.Stock3_p2 self.participant.vars["priceChangeDict"]['Stock3_p3']=self.player.Stock3_p3 self.participant.vars["priceChangeDict"]['Stock3_p4']=self.player.Stock3_p4 self.participant.vars["priceChangeDict"]['Stock3_p5']=self.player.Stock3_p5 self.participant.vars["priceChangeDict"]['Stock3_p6']=self.player.Stock3_p6 self.participant.vars["priceChangeDict"]['Stock3_p7']=self.player.Stock3_p7 self.participant.vars["priceChangeDict"]['Stock3_p8']=self.player.Stock3_p8 self.participant.vars["priceChangeDict"]['Stock3_p9']=self.player.Stock3_p9 self.participant.vars["priceChangeDict"]['Stock3_p10']=self.player.Stock3_p10 self.participant.vars["priceChangeDict"]['Stock4_p1']=self.player.Stock4_p1 self.participant.vars["priceChangeDict"]['Stock4_p2']=self.player.Stock4_p2 self.participant.vars["priceChangeDict"]['Stock4_p3']=self.player.Stock4_p3 self.participant.vars["priceChangeDict"]['Stock4_p4']=self.player.Stock4_p4 self.participant.vars["priceChangeDict"]['Stock4_p5']=self.player.Stock4_p5 self.participant.vars["priceChangeDict"]['Stock4_p6']=self.player.Stock4_p6 self.participant.vars["priceChangeDict"]['Stock4_p7']=self.player.Stock4_p7 self.participant.vars["priceChangeDict"]['Stock4_p8']=self.player.Stock4_p8 self.participant.vars["priceChangeDict"]['Stock4_p9']=self.player.Stock4_p9 self.participant.vars["priceChangeDict"]['Stock4_p10']=self.player.Stock4_p10 self.participant.vars["priceChangeDict"]['Stock5_p1']=self.player.Stock5_p1 self.participant.vars["priceChangeDict"]['Stock5_p2']=self.player.Stock5_p2 self.participant.vars["priceChangeDict"]['Stock5_p3']=self.player.Stock5_p3 self.participant.vars["priceChangeDict"]['Stock5_p4']=self.player.Stock5_p4 self.participant.vars["priceChangeDict"]['Stock5_p5']=self.player.Stock5_p5 self.participant.vars["priceChangeDict"]['Stock5_p6']=self.player.Stock5_p6 self.participant.vars["priceChangeDict"]['Stock5_p7']=self.player.Stock5_p7 self.participant.vars["priceChangeDict"]['Stock5_p8']=self.player.Stock5_p8 self.participant.vars["priceChangeDict"]['Stock5_p9']=self.player.Stock5_p9 self.participant.vars["priceChangeDict"]['Stock5_p10']=self.player.Stock5_p10 self.participant.vars["priceChangeDict"]['Stock6_p1']=self.player.Stock6_p1 self.participant.vars["priceChangeDict"]['Stock6_p2']=self.player.Stock6_p2 self.participant.vars["priceChangeDict"]['Stock6_p3']=self.player.Stock6_p3 self.participant.vars["priceChangeDict"]['Stock6_p4']=self.player.Stock6_p4 self.participant.vars["priceChangeDict"]['Stock6_p5']=self.player.Stock6_p5 self.participant.vars["priceChangeDict"]['Stock6_p6']=self.player.Stock6_p6 self.participant.vars["priceChangeDict"]['Stock6_p7']=self.player.Stock6_p7 self.participant.vars["priceChangeDict"]['Stock6_p8']=self.player.Stock6_p8 self.participant.vars["priceChangeDict"]['Stock6_p9']=self.player.Stock6_p9 self.participant.vars["priceChangeDict"]['Stock6_p10']=self.player.Stock6_p10 self.participant.vars["priceChangeDict"]['Stock7_p1']=self.player.Stock7_p1 self.participant.vars["priceChangeDict"]['Stock7_p2']=self.player.Stock7_p2 self.participant.vars["priceChangeDict"]['Stock7_p3']=self.player.Stock7_p3 self.participant.vars["priceChangeDict"]['Stock7_p4']=self.player.Stock7_p4 self.participant.vars["priceChangeDict"]['Stock7_p5']=self.player.Stock7_p5 self.participant.vars["priceChangeDict"]['Stock7_p6']=self.player.Stock7_p6 self.participant.vars["priceChangeDict"]['Stock7_p7']=self.player.Stock7_p7 self.participant.vars["priceChangeDict"]['Stock7_p8']=self.player.Stock7_p8 self.participant.vars["priceChangeDict"]['Stock7_p9']=self.player.Stock7_p9 self.participant.vars["priceChangeDict"]['Stock7_p10']=self.player.Stock7_p10 self.participant.vars["priceChangeDict"]['Stock8_p1']=self.player.Stock8_p1 self.participant.vars["priceChangeDict"]['Stock8_p2']=self.player.Stock8_p2 self.participant.vars["priceChangeDict"]['Stock8_p3']=self.player.Stock8_p3 self.participant.vars["priceChangeDict"]['Stock8_p4']=self.player.Stock8_p4 self.participant.vars["priceChangeDict"]['Stock8_p5']=self.player.Stock8_p5 self.participant.vars["priceChangeDict"]['Stock8_p6']=self.player.Stock8_p6 self.participant.vars["priceChangeDict"]['Stock8_p7']=self.player.Stock8_p7 self.participant.vars["priceChangeDict"]['Stock8_p8']=self.player.Stock8_p8 self.participant.vars["priceChangeDict"]['Stock8_p9']=self.player.Stock8_p9 self.participant.vars["priceChangeDict"]['Stock8_p10']=self.player.Stock8_p10 self.participant.vars["priceChangeDict"]['Stock9_p1']=self.player.Stock9_p1 self.participant.vars["priceChangeDict"]['Stock9_p2']=self.player.Stock9_p2 self.participant.vars["priceChangeDict"]['Stock9_p3']=self.player.Stock9_p3 self.participant.vars["priceChangeDict"]['Stock9_p4']=self.player.Stock9_p4 self.participant.vars["priceChangeDict"]['Stock9_p5']=self.player.Stock9_p5 self.participant.vars["priceChangeDict"]['Stock9_p6']=self.player.Stock9_p6 self.participant.vars["priceChangeDict"]['Stock9_p7']=self.player.Stock9_p7 self.participant.vars["priceChangeDict"]['Stock9_p8']=self.player.Stock9_p8 self.participant.vars["priceChangeDict"]['Stock9_p9']=self.player.Stock9_p9 self.participant.vars["priceChangeDict"]['Stock9_p10']=self.player.Stock9_p10 self.participant.vars["priceChangeDict"]['Stock10_p1']=self.player.Stock10_p1 self.participant.vars["priceChangeDict"]['Stock10_p2']=self.player.Stock10_p2 self.participant.vars["priceChangeDict"]['Stock10_p3']=self.player.Stock10_p3 self.participant.vars["priceChangeDict"]['Stock10_p4']=self.player.Stock10_p4 self.participant.vars["priceChangeDict"]['Stock10_p5']=self.player.Stock10_p5 self.participant.vars["priceChangeDict"]['Stock10_p6']=self.player.Stock10_p6 self.participant.vars["priceChangeDict"]['Stock10_p7']=self.player.Stock10_p7 self.participant.vars["priceChangeDict"]['Stock10_p8']=self.player.Stock10_p8 self.participant.vars["priceChangeDict"]['Stock10_p9']=self.player.Stock10_p9 self.participant.vars["priceChangeDict"]['Stock10_p10']=self.player.Stock10_p10 self.participant.vars["priceChangeDict"]['Stock11_p1']=self.player.Stock11_p1 self.participant.vars["priceChangeDict"]['Stock11_p2']=self.player.Stock11_p2 self.participant.vars["priceChangeDict"]['Stock11_p3']=self.player.Stock11_p3 self.participant.vars["priceChangeDict"]['Stock11_p4']=self.player.Stock11_p4 self.participant.vars["priceChangeDict"]['Stock11_p5']=self.player.Stock11_p5 self.participant.vars["priceChangeDict"]['Stock11_p6']=self.player.Stock11_p6 self.participant.vars["priceChangeDict"]['Stock11_p7']=self.player.Stock11_p7 self.participant.vars["priceChangeDict"]['Stock11_p8']=self.player.Stock11_p8 self.participant.vars["priceChangeDict"]['Stock11_p9']=self.player.Stock11_p9 self.participant.vars["priceChangeDict"]['Stock11_p10']=self.player.Stock11_p10 self.participant.vars["priceChangeDict"]['Stock12_p1']=self.player.Stock12_p1 self.participant.vars["priceChangeDict"]['Stock12_p2']=self.player.Stock12_p2 self.participant.vars["priceChangeDict"]['Stock12_p3']=self.player.Stock12_p3 self.participant.vars["priceChangeDict"]['Stock12_p4']=self.player.Stock12_p4 self.participant.vars["priceChangeDict"]['Stock12_p5']=self.player.Stock12_p5 self.participant.vars["priceChangeDict"]['Stock12_p6']=self.player.Stock12_p6 self.participant.vars["priceChangeDict"]['Stock12_p7']=self.player.Stock12_p7 self.participant.vars["priceChangeDict"]['Stock12_p8']=self.player.Stock12_p8 self.participant.vars["priceChangeDict"]['Stock12_p9']=self.player.Stock12_p9 self.participant.vars["priceChangeDict"]['Stock12_p10']=self.player.Stock12_p10 self.participant.vars["priceChangeDict"]['Stock13_p1']=self.player.Stock13_p1 self.participant.vars["priceChangeDict"]['Stock13_p2']=self.player.Stock13_p2 self.participant.vars["priceChangeDict"]['Stock13_p3']=self.player.Stock13_p3 self.participant.vars["priceChangeDict"]['Stock13_p4']=self.player.Stock13_p4 self.participant.vars["priceChangeDict"]['Stock13_p5']=self.player.Stock13_p5 self.participant.vars["priceChangeDict"]['Stock13_p6']=self.player.Stock13_p6 self.participant.vars["priceChangeDict"]['Stock13_p7']=self.player.Stock13_p7 self.participant.vars["priceChangeDict"]['Stock13_p8']=self.player.Stock13_p8 self.participant.vars["priceChangeDict"]['Stock13_p9']=self.player.Stock13_p9 self.participant.vars["priceChangeDict"]['Stock13_p10']=self.player.Stock13_p10 self.participant.vars["priceChangeDict"]['Stock14_p1']=self.player.Stock14_p1 self.participant.vars["priceChangeDict"]['Stock14_p2']=self.player.Stock14_p2 self.participant.vars["priceChangeDict"]['Stock14_p3']=self.player.Stock14_p3 self.participant.vars["priceChangeDict"]['Stock14_p4']=self.player.Stock14_p4 self.participant.vars["priceChangeDict"]['Stock14_p5']=self.player.Stock14_p5 self.participant.vars["priceChangeDict"]['Stock14_p6']=self.player.Stock14_p6 self.participant.vars["priceChangeDict"]['Stock14_p7']=self.player.Stock14_p7 self.participant.vars["priceChangeDict"]['Stock14_p8']=self.player.Stock14_p8 self.participant.vars["priceChangeDict"]['Stock14_p9']=self.player.Stock14_p9 self.participant.vars["priceChangeDict"]['Stock14_p10']=self.player.Stock14_p10 self.participant.vars["priceChangeDict"]['Stock15_p1']=self.player.Stock15_p1 self.participant.vars["priceChangeDict"]['Stock15_p2']=self.player.Stock15_p2 self.participant.vars["priceChangeDict"]['Stock15_p3']=self.player.Stock15_p3 self.participant.vars["priceChangeDict"]['Stock15_p4']=self.player.Stock15_p4 self.participant.vars["priceChangeDict"]['Stock15_p5']=self.player.Stock15_p5 self.participant.vars["priceChangeDict"]['Stock15_p6']=self.player.Stock15_p6 self.participant.vars["priceChangeDict"]['Stock15_p7']=self.player.Stock15_p7 self.participant.vars["priceChangeDict"]['Stock15_p8']=self.player.Stock15_p8 self.participant.vars["priceChangeDict"]['Stock15_p9']=self.player.Stock15_p9 self.participant.vars["priceChangeDict"]['Stock15_p10']=self.player.Stock15_p10 self.participant.vars["priceChangeDict"]['Stock16_p1']=self.player.Stock16_p1 self.participant.vars["priceChangeDict"]['Stock16_p2']=self.player.Stock16_p2 self.participant.vars["priceChangeDict"]['Stock16_p3']=self.player.Stock16_p3 self.participant.vars["priceChangeDict"]['Stock16_p4']=self.player.Stock16_p4 self.participant.vars["priceChangeDict"]['Stock16_p5']=self.player.Stock16_p5 self.participant.vars["priceChangeDict"]['Stock16_p6']=self.player.Stock16_p6 self.participant.vars["priceChangeDict"]['Stock16_p7']=self.player.Stock16_p7 self.participant.vars["priceChangeDict"]['Stock16_p8']=self.player.Stock16_p8 self.participant.vars["priceChangeDict"]['Stock16_p9']=self.player.Stock16_p9 self.participant.vars["priceChangeDict"]['Stock16_p10']=self.player.Stock16_p10 self.participant.vars["priceChangeDict"]['Stock17_p1']=self.player.Stock17_p1 self.participant.vars["priceChangeDict"]['Stock17_p2']=self.player.Stock17_p2 self.participant.vars["priceChangeDict"]['Stock17_p3']=self.player.Stock17_p3 self.participant.vars["priceChangeDict"]['Stock17_p4']=self.player.Stock17_p4 self.participant.vars["priceChangeDict"]['Stock17_p5']=self.player.Stock17_p5 self.participant.vars["priceChangeDict"]['Stock17_p6']=self.player.Stock17_p6 self.participant.vars["priceChangeDict"]['Stock17_p7']=self.player.Stock17_p7 self.participant.vars["priceChangeDict"]['Stock17_p8']=self.player.Stock17_p8 self.participant.vars["priceChangeDict"]['Stock17_p9']=self.player.Stock17_p9 self.participant.vars["priceChangeDict"]['Stock17_p10']=self.player.Stock17_p10 self.participant.vars["priceChangeDict"]['Stock18_p1']=self.player.Stock18_p1 self.participant.vars["priceChangeDict"]['Stock18_p2']=self.player.Stock18_p2 self.participant.vars["priceChangeDict"]['Stock18_p3']=self.player.Stock18_p3 self.participant.vars["priceChangeDict"]['Stock18_p4']=self.player.Stock18_p4 self.participant.vars["priceChangeDict"]['Stock18_p5']=self.player.Stock18_p5 self.participant.vars["priceChangeDict"]['Stock18_p6']=self.player.Stock18_p6 self.participant.vars["priceChangeDict"]['Stock18_p7']=self.player.Stock18_p7 self.participant.vars["priceChangeDict"]['Stock18_p8']=self.player.Stock18_p8 self.participant.vars["priceChangeDict"]['Stock18_p9']=self.player.Stock18_p9 self.participant.vars["priceChangeDict"]['Stock18_p10']=self.player.Stock18_p10 self.participant.vars["priceChangeDict"]['Stock19_p1']=self.player.Stock19_p1 self.participant.vars["priceChangeDict"]['Stock19_p2']=self.player.Stock19_p2 self.participant.vars["priceChangeDict"]['Stock19_p3']=self.player.Stock19_p3 self.participant.vars["priceChangeDict"]['Stock19_p4']=self.player.Stock19_p4 self.participant.vars["priceChangeDict"]['Stock19_p5']=self.player.Stock19_p5 self.participant.vars["priceChangeDict"]['Stock19_p6']=self.player.Stock19_p6 self.participant.vars["priceChangeDict"]['Stock19_p7']=self.player.Stock19_p7 self.participant.vars["priceChangeDict"]['Stock19_p8']=self.player.Stock19_p8 self.participant.vars["priceChangeDict"]['Stock19_p9']=self.player.Stock19_p9 self.participant.vars["priceChangeDict"]['Stock19_p10']=self.player.Stock19_p10 self.participant.vars["priceChangeDict"]['Stock20_p1']=self.player.Stock20_p1 self.participant.vars["priceChangeDict"]['Stock20_p2']=self.player.Stock20_p2 self.participant.vars["priceChangeDict"]['Stock20_p3']=self.player.Stock20_p3 self.participant.vars["priceChangeDict"]['Stock20_p4']=self.player.Stock20_p4 self.participant.vars["priceChangeDict"]['Stock20_p5']=self.player.Stock20_p5 self.participant.vars["priceChangeDict"]['Stock20_p6']=self.player.Stock20_p6 self.participant.vars["priceChangeDict"]['Stock20_p7']=self.player.Stock20_p7 self.participant.vars["priceChangeDict"]['Stock20_p8']=self.player.Stock20_p8 self.participant.vars["priceChangeDict"]['Stock20_p9']=self.player.Stock20_p9 self.participant.vars["priceChangeDict"]['Stock20_p10']=self.player.Stock20_p10 self.participant.vars["priceChangeDict"]['Stock21_p1']=self.player.Stock21_p1 self.participant.vars["priceChangeDict"]['Stock21_p2']=self.player.Stock21_p2 self.participant.vars["priceChangeDict"]['Stock21_p3']=self.player.Stock21_p3 self.participant.vars["priceChangeDict"]['Stock21_p4']=self.player.Stock21_p4 self.participant.vars["priceChangeDict"]['Stock21_p5']=self.player.Stock21_p5 self.participant.vars["priceChangeDict"]['Stock21_p6']=self.player.Stock21_p6 self.participant.vars["priceChangeDict"]['Stock21_p7']=self.player.Stock21_p7 self.participant.vars["priceChangeDict"]['Stock21_p8']=self.player.Stock21_p8 self.participant.vars["priceChangeDict"]['Stock21_p9']=self.player.Stock21_p9 self.participant.vars["priceChangeDict"]['Stock21_p10']=self.player.Stock21_p10 self.participant.vars["priceChangeDict"]['Stock22_p1']=self.player.Stock22_p1 self.participant.vars["priceChangeDict"]['Stock22_p2']=self.player.Stock22_p2 self.participant.vars["priceChangeDict"]['Stock22_p3']=self.player.Stock22_p3 self.participant.vars["priceChangeDict"]['Stock22_p4']=self.player.Stock22_p4 self.participant.vars["priceChangeDict"]['Stock22_p5']=self.player.Stock22_p5 self.participant.vars["priceChangeDict"]['Stock22_p6']=self.player.Stock22_p6 self.participant.vars["priceChangeDict"]['Stock22_p7']=self.player.Stock22_p7 self.participant.vars["priceChangeDict"]['Stock22_p8']=self.player.Stock22_p8 self.participant.vars["priceChangeDict"]['Stock22_p9']=self.player.Stock22_p9 self.participant.vars["priceChangeDict"]['Stock22_p10']=self.player.Stock22_p10 self.participant.vars["priceChangeDict"]['Stock23_p1']=self.player.Stock23_p1 self.participant.vars["priceChangeDict"]['Stock23_p2']=self.player.Stock23_p2 self.participant.vars["priceChangeDict"]['Stock23_p3']=self.player.Stock23_p3 self.participant.vars["priceChangeDict"]['Stock23_p4']=self.player.Stock23_p4 self.participant.vars["priceChangeDict"]['Stock23_p5']=self.player.Stock23_p5 self.participant.vars["priceChangeDict"]['Stock23_p6']=self.player.Stock23_p6 self.participant.vars["priceChangeDict"]['Stock23_p7']=self.player.Stock23_p7 self.participant.vars["priceChangeDict"]['Stock23_p8']=self.player.Stock23_p8 self.participant.vars["priceChangeDict"]['Stock23_p9']=self.player.Stock23_p9 self.participant.vars["priceChangeDict"]['Stock23_p10']=self.player.Stock23_p10 self.participant.vars["priceChangeDict"]['Stock24_p1']=self.player.Stock24_p1 self.participant.vars["priceChangeDict"]['Stock24_p2']=self.player.Stock24_p2 self.participant.vars["priceChangeDict"]['Stock24_p3']=self.player.Stock24_p3 self.participant.vars["priceChangeDict"]['Stock24_p4']=self.player.Stock24_p4 self.participant.vars["priceChangeDict"]['Stock24_p5']=self.player.Stock24_p5 self.participant.vars["priceChangeDict"]['Stock24_p6']=self.player.Stock24_p6 self.participant.vars["priceChangeDict"]['Stock24_p7']=self.player.Stock24_p7 self.participant.vars["priceChangeDict"]['Stock24_p8']=self.player.Stock24_p8 self.participant.vars["priceChangeDict"]['Stock24_p9']=self.player.Stock24_p9 self.participant.vars["priceChangeDict"]['Stock24_p10']=self.player.Stock24_p10 self.participant.vars["priceChangeDict"]['Stock25_p1']=self.player.Stock25_p1 self.participant.vars["priceChangeDict"]['Stock25_p2']=self.player.Stock25_p2 self.participant.vars["priceChangeDict"]['Stock25_p3']=self.player.Stock25_p3 self.participant.vars["priceChangeDict"]['Stock25_p4']=self.player.Stock25_p4 self.participant.vars["priceChangeDict"]['Stock25_p5']=self.player.Stock25_p5 self.participant.vars["priceChangeDict"]['Stock25_p6']=self.player.Stock25_p6 self.participant.vars["priceChangeDict"]['Stock25_p7']=self.player.Stock25_p7 self.participant.vars["priceChangeDict"]['Stock25_p8']=self.player.Stock25_p8 self.participant.vars["priceChangeDict"]['Stock25_p9']=self.player.Stock25_p9 self.participant.vars["priceChangeDict"]['Stock25_p10']=self.player.Stock25_p10 self.participant.vars["priceChangeDict"]['Stock26_p1']=self.player.Stock26_p1 self.participant.vars["priceChangeDict"]['Stock26_p2']=self.player.Stock26_p2 self.participant.vars["priceChangeDict"]['Stock26_p3']=self.player.Stock26_p3 self.participant.vars["priceChangeDict"]['Stock26_p4']=self.player.Stock26_p4 self.participant.vars["priceChangeDict"]['Stock26_p5']=self.player.Stock26_p5 self.participant.vars["priceChangeDict"]['Stock26_p6']=self.player.Stock26_p6 self.participant.vars["priceChangeDict"]['Stock26_p7']=self.player.Stock26_p7 self.participant.vars["priceChangeDict"]['Stock26_p8']=self.player.Stock26_p8 self.participant.vars["priceChangeDict"]['Stock26_p9']=self.player.Stock26_p9 self.participant.vars["priceChangeDict"]['Stock26_p10']=self.player.Stock26_p10 self.participant.vars["priceChangeDict"]['Stock27_p1']=self.player.Stock27_p1 self.participant.vars["priceChangeDict"]['Stock27_p2']=self.player.Stock27_p2 self.participant.vars["priceChangeDict"]['Stock27_p3']=self.player.Stock27_p3 self.participant.vars["priceChangeDict"]['Stock27_p4']=self.player.Stock27_p4 self.participant.vars["priceChangeDict"]['Stock27_p5']=self.player.Stock27_p5 self.participant.vars["priceChangeDict"]['Stock27_p6']=self.player.Stock27_p6 self.participant.vars["priceChangeDict"]['Stock27_p7']=self.player.Stock27_p7 self.participant.vars["priceChangeDict"]['Stock27_p8']=self.player.Stock27_p8 self.participant.vars["priceChangeDict"]['Stock27_p9']=self.player.Stock27_p9 self.participant.vars["priceChangeDict"]['Stock27_p10']=self.player.Stock27_p10 self.participant.vars["priceChangeDict"]['Stock28_p1']=self.player.Stock28_p1 self.participant.vars["priceChangeDict"]['Stock28_p2']=self.player.Stock28_p2 self.participant.vars["priceChangeDict"]['Stock28_p3']=self.player.Stock28_p3 self.participant.vars["priceChangeDict"]['Stock28_p4']=self.player.Stock28_p4 self.participant.vars["priceChangeDict"]['Stock28_p5']=self.player.Stock28_p5 self.participant.vars["priceChangeDict"]['Stock28_p6']=self.player.Stock28_p6 self.participant.vars["priceChangeDict"]['Stock28_p7']=self.player.Stock28_p7 self.participant.vars["priceChangeDict"]['Stock28_p8']=self.player.Stock28_p8 self.participant.vars["priceChangeDict"]['Stock28_p9']=self.player.Stock28_p9 self.participant.vars["priceChangeDict"]['Stock28_p10']=self.player.Stock28_p10 self.participant.vars["priceChangeDict"]['Stock29_p1']=self.player.Stock29_p1 self.participant.vars["priceChangeDict"]['Stock29_p2']=self.player.Stock29_p2 self.participant.vars["priceChangeDict"]['Stock29_p3']=self.player.Stock29_p3 self.participant.vars["priceChangeDict"]['Stock29_p4']=self.player.Stock29_p4 self.participant.vars["priceChangeDict"]['Stock29_p5']=self.player.Stock29_p5 self.participant.vars["priceChangeDict"]['Stock29_p6']=self.player.Stock29_p6 self.participant.vars["priceChangeDict"]['Stock29_p7']=self.player.Stock29_p7 self.participant.vars["priceChangeDict"]['Stock29_p8']=self.player.Stock29_p8 self.participant.vars["priceChangeDict"]['Stock29_p9']=self.player.Stock29_p9 self.participant.vars["priceChangeDict"]['Stock29_p10']=self.player.Stock29_p10 self.participant.vars["priceChangeDict"]['Stock30_p1']=self.player.Stock30_p1 self.participant.vars["priceChangeDict"]['Stock30_p2']=self.player.Stock30_p2 self.participant.vars["priceChangeDict"]['Stock30_p3']=self.player.Stock30_p3 self.participant.vars["priceChangeDict"]['Stock30_p4']=self.player.Stock30_p4 self.participant.vars["priceChangeDict"]['Stock30_p5']=self.player.Stock30_p5 self.participant.vars["priceChangeDict"]['Stock30_p6']=self.player.Stock30_p6 self.participant.vars["priceChangeDict"]['Stock30_p7']=self.player.Stock30_p7 self.participant.vars["priceChangeDict"]['Stock30_p8']=self.player.Stock30_p8 self.participant.vars["priceChangeDict"]['Stock30_p9']=self.player.Stock30_p9 self.participant.vars["priceChangeDict"]['Stock30_p10']=self.player.Stock30_p10 self.participant.vars["priceChangeDict"]['Stock31_p1']=self.player.Stock31_p1 self.participant.vars["priceChangeDict"]['Stock31_p2']=self.player.Stock31_p2 self.participant.vars["priceChangeDict"]['Stock31_p3']=self.player.Stock31_p3 self.participant.vars["priceChangeDict"]['Stock31_p4']=self.player.Stock31_p4 self.participant.vars["priceChangeDict"]['Stock31_p5']=self.player.Stock31_p5 self.participant.vars["priceChangeDict"]['Stock31_p6']=self.player.Stock31_p6 self.participant.vars["priceChangeDict"]['Stock31_p7']=self.player.Stock31_p7 self.participant.vars["priceChangeDict"]['Stock31_p8']=self.player.Stock31_p8 self.participant.vars["priceChangeDict"]['Stock31_p9']=self.player.Stock31_p9 self.participant.vars["priceChangeDict"]['Stock31_p10']=self.player.Stock31_p10 self.participant.vars["priceChangeDict"]['Stock32_p1']=self.player.Stock32_p1 self.participant.vars["priceChangeDict"]['Stock32_p2']=self.player.Stock32_p2 self.participant.vars["priceChangeDict"]['Stock32_p3']=self.player.Stock32_p3 self.participant.vars["priceChangeDict"]['Stock32_p4']=self.player.Stock32_p4 self.participant.vars["priceChangeDict"]['Stock32_p5']=self.player.Stock32_p5 self.participant.vars["priceChangeDict"]['Stock32_p6']=self.player.Stock32_p6 self.participant.vars["priceChangeDict"]['Stock32_p7']=self.player.Stock32_p7 self.participant.vars["priceChangeDict"]['Stock32_p8']=self.player.Stock32_p8 self.participant.vars["priceChangeDict"]['Stock32_p9']=self.player.Stock32_p9 self.participant.vars["priceChangeDict"]['Stock32_p10']=self.player.Stock32_p10 self.participant.vars["priceChangeDict"]['Stock33_p1']=self.player.Stock33_p1 self.participant.vars["priceChangeDict"]['Stock33_p2']=self.player.Stock33_p2 self.participant.vars["priceChangeDict"]['Stock33_p3']=self.player.Stock33_p3 self.participant.vars["priceChangeDict"]['Stock33_p4']=self.player.Stock33_p4 self.participant.vars["priceChangeDict"]['Stock33_p5']=self.player.Stock33_p5 self.participant.vars["priceChangeDict"]['Stock33_p6']=self.player.Stock33_p6 self.participant.vars["priceChangeDict"]['Stock33_p7']=self.player.Stock33_p7 self.participant.vars["priceChangeDict"]['Stock33_p8']=self.player.Stock33_p8 self.participant.vars["priceChangeDict"]['Stock33_p9']=self.player.Stock33_p9 self.participant.vars["priceChangeDict"]['Stock33_p10']=self.player.Stock33_p10 self.participant.vars["priceChangeDict"]['Stock34_p1']=self.player.Stock34_p1 self.participant.vars["priceChangeDict"]['Stock34_p2']=self.player.Stock34_p2 self.participant.vars["priceChangeDict"]['Stock34_p3']=self.player.Stock34_p3 self.participant.vars["priceChangeDict"]['Stock34_p4']=self.player.Stock34_p4 self.participant.vars["priceChangeDict"]['Stock34_p5']=self.player.Stock34_p5 self.participant.vars["priceChangeDict"]['Stock34_p6']=self.player.Stock34_p6 self.participant.vars["priceChangeDict"]['Stock34_p7']=self.player.Stock34_p7 self.participant.vars["priceChangeDict"]['Stock34_p8']=self.player.Stock34_p8 self.participant.vars["priceChangeDict"]['Stock34_p9']=self.player.Stock34_p9 self.participant.vars["priceChangeDict"]['Stock34_p10']=self.player.Stock34_p10 self.participant.vars["priceChangeDict"]['Stock35_p1']=self.player.Stock35_p1 self.participant.vars["priceChangeDict"]['Stock35_p2']=self.player.Stock35_p2 self.participant.vars["priceChangeDict"]['Stock35_p3']=self.player.Stock35_p3 self.participant.vars["priceChangeDict"]['Stock35_p4']=self.player.Stock35_p4 self.participant.vars["priceChangeDict"]['Stock35_p5']=self.player.Stock35_p5 self.participant.vars["priceChangeDict"]['Stock35_p6']=self.player.Stock35_p6 self.participant.vars["priceChangeDict"]['Stock35_p7']=self.player.Stock35_p7 self.participant.vars["priceChangeDict"]['Stock35_p8']=self.player.Stock35_p8 self.participant.vars["priceChangeDict"]['Stock35_p9']=self.player.Stock35_p9 self.participant.vars["priceChangeDict"]['Stock35_p10']=self.player.Stock35_p10 self.participant.vars["priceChangeDict"]['Stock36_p1']=self.player.Stock36_p1 self.participant.vars["priceChangeDict"]['Stock36_p2']=self.player.Stock36_p2 self.participant.vars["priceChangeDict"]['Stock36_p3']=self.player.Stock36_p3 self.participant.vars["priceChangeDict"]['Stock36_p4']=self.player.Stock36_p4 self.participant.vars["priceChangeDict"]['Stock36_p5']=self.player.Stock36_p5 self.participant.vars["priceChangeDict"]['Stock36_p6']=self.player.Stock36_p6 self.participant.vars["priceChangeDict"]['Stock36_p7']=self.player.Stock36_p7 self.participant.vars["priceChangeDict"]['Stock36_p8']=self.player.Stock36_p8 self.participant.vars["priceChangeDict"]['Stock36_p9']=self.player.Stock36_p9 self.participant.vars["priceChangeDict"]['Stock36_p10']=self.player.Stock36_p10 self.participant.vars["priceChangeDict"]['Stock37_p1']=self.player.Stock37_p1 self.participant.vars["priceChangeDict"]['Stock37_p2']=self.player.Stock37_p2 self.participant.vars["priceChangeDict"]['Stock37_p3']=self.player.Stock37_p3 self.participant.vars["priceChangeDict"]['Stock37_p4']=self.player.Stock37_p4 self.participant.vars["priceChangeDict"]['Stock37_p5']=self.player.Stock37_p5 self.participant.vars["priceChangeDict"]['Stock37_p6']=self.player.Stock37_p6 self.participant.vars["priceChangeDict"]['Stock37_p7']=self.player.Stock37_p7 self.participant.vars["priceChangeDict"]['Stock37_p8']=self.player.Stock37_p8 self.participant.vars["priceChangeDict"]['Stock37_p9']=self.player.Stock37_p9 self.participant.vars["priceChangeDict"]['Stock37_p10']=self.player.Stock37_p10 self.participant.vars["priceChangeDict"]['Stock38_p1']=self.player.Stock38_p1 self.participant.vars["priceChangeDict"]['Stock38_p2']=self.player.Stock38_p2 self.participant.vars["priceChangeDict"]['Stock38_p3']=self.player.Stock38_p3 self.participant.vars["priceChangeDict"]['Stock38_p4']=self.player.Stock38_p4 self.participant.vars["priceChangeDict"]['Stock38_p5']=self.player.Stock38_p5 self.participant.vars["priceChangeDict"]['Stock38_p6']=self.player.Stock38_p6 self.participant.vars["priceChangeDict"]['Stock38_p7']=self.player.Stock38_p7 self.participant.vars["priceChangeDict"]['Stock38_p8']=self.player.Stock38_p8 self.participant.vars["priceChangeDict"]['Stock38_p9']=self.player.Stock38_p9 self.participant.vars["priceChangeDict"]['Stock38_p10']=self.player.Stock38_p10 self.participant.vars["priceChangeDict"]['Stock39_p1']=self.player.Stock39_p1 self.participant.vars["priceChangeDict"]['Stock39_p2']=self.player.Stock39_p2 self.participant.vars["priceChangeDict"]['Stock39_p3']=self.player.Stock39_p3 self.participant.vars["priceChangeDict"]['Stock39_p4']=self.player.Stock39_p4 self.participant.vars["priceChangeDict"]['Stock39_p5']=self.player.Stock39_p5 self.participant.vars["priceChangeDict"]['Stock39_p6']=self.player.Stock39_p6 self.participant.vars["priceChangeDict"]['Stock39_p7']=self.player.Stock39_p7 self.participant.vars["priceChangeDict"]['Stock39_p8']=self.player.Stock39_p8 self.participant.vars["priceChangeDict"]['Stock39_p9']=self.player.Stock39_p9 self.participant.vars["priceChangeDict"]['Stock39_p10']=self.player.Stock39_p10 self.participant.vars["priceChangeDict"]['Stock40_p1']=self.player.Stock40_p1 self.participant.vars["priceChangeDict"]['Stock40_p2']=self.player.Stock40_p2 self.participant.vars["priceChangeDict"]['Stock40_p3']=self.player.Stock40_p3 self.participant.vars["priceChangeDict"]['Stock40_p4']=self.player.Stock40_p4 self.participant.vars["priceChangeDict"]['Stock40_p5']=self.player.Stock40_p5 self.participant.vars["priceChangeDict"]['Stock40_p6']=self.player.Stock40_p6 self.participant.vars["priceChangeDict"]['Stock40_p7']=self.player.Stock40_p7 self.participant.vars["priceChangeDict"]['Stock40_p8']=self.player.Stock40_p8 self.participant.vars["priceChangeDict"]['Stock40_p9']=self.player.Stock40_p9 self.participant.vars["priceChangeDict"]['Stock40_p10']=self.player.Stock40_p10 self.participant.vars["priceChangeDict"]['Stock41_p1']=self.player.Stock41_p1 self.participant.vars["priceChangeDict"]['Stock41_p2']=self.player.Stock41_p2 self.participant.vars["priceChangeDict"]['Stock41_p3']=self.player.Stock41_p3 self.participant.vars["priceChangeDict"]['Stock41_p4']=self.player.Stock41_p4 self.participant.vars["priceChangeDict"]['Stock41_p5']=self.player.Stock41_p5 self.participant.vars["priceChangeDict"]['Stock41_p6']=self.player.Stock41_p6 self.participant.vars["priceChangeDict"]['Stock41_p7']=self.player.Stock41_p7 self.participant.vars["priceChangeDict"]['Stock41_p8']=self.player.Stock41_p8 self.participant.vars["priceChangeDict"]['Stock41_p9']=self.player.Stock41_p9 self.participant.vars["priceChangeDict"]['Stock41_p10']=self.player.Stock41_p10 self.participant.vars["priceChangeDict"]['Stock42_p1']=self.player.Stock42_p1 self.participant.vars["priceChangeDict"]['Stock42_p2']=self.player.Stock42_p2 self.participant.vars["priceChangeDict"]['Stock42_p3']=self.player.Stock42_p3 self.participant.vars["priceChangeDict"]['Stock42_p4']=self.player.Stock42_p4 self.participant.vars["priceChangeDict"]['Stock42_p5']=self.player.Stock42_p5 self.participant.vars["priceChangeDict"]['Stock42_p6']=self.player.Stock42_p6 self.participant.vars["priceChangeDict"]['Stock42_p7']=self.player.Stock42_p7 self.participant.vars["priceChangeDict"]['Stock42_p8']=self.player.Stock42_p8 self.participant.vars["priceChangeDict"]['Stock42_p9']=self.player.Stock42_p9 self.participant.vars["priceChangeDict"]['Stock42_p10']=self.player.Stock42_p10 self.participant.vars["priceChangeDict"]['Stock43_p1']=self.player.Stock43_p1 self.participant.vars["priceChangeDict"]['Stock43_p2']=self.player.Stock43_p2 self.participant.vars["priceChangeDict"]['Stock43_p3']=self.player.Stock43_p3 self.participant.vars["priceChangeDict"]['Stock43_p4']=self.player.Stock43_p4 self.participant.vars["priceChangeDict"]['Stock43_p5']=self.player.Stock43_p5 self.participant.vars["priceChangeDict"]['Stock43_p6']=self.player.Stock43_p6 self.participant.vars["priceChangeDict"]['Stock43_p7']=self.player.Stock43_p7 self.participant.vars["priceChangeDict"]['Stock43_p8']=self.player.Stock43_p8 self.participant.vars["priceChangeDict"]['Stock43_p9']=self.player.Stock43_p9 self.participant.vars["priceChangeDict"]['Stock43_p10']=self.player.Stock43_p10 self.participant.vars["priceChangeDict"]['Stock44_p1']=self.player.Stock44_p1 self.participant.vars["priceChangeDict"]['Stock44_p2']=self.player.Stock44_p2 self.participant.vars["priceChangeDict"]['Stock44_p3']=self.player.Stock44_p3 self.participant.vars["priceChangeDict"]['Stock44_p4']=self.player.Stock44_p4 self.participant.vars["priceChangeDict"]['Stock44_p5']=self.player.Stock44_p5 self.participant.vars["priceChangeDict"]['Stock44_p6']=self.player.Stock44_p6 self.participant.vars["priceChangeDict"]['Stock44_p7']=self.player.Stock44_p7 self.participant.vars["priceChangeDict"]['Stock44_p8']=self.player.Stock44_p8 self.participant.vars["priceChangeDict"]['Stock44_p9']=self.player.Stock44_p9 self.participant.vars["priceChangeDict"]['Stock44_p10']=self.player.Stock44_p10 self.participant.vars["priceChangeDict"]['Stock50_p1']=self.player.Stock50_p1 self.participant.vars["priceChangeDict"]['Stock50_p2']=self.player.Stock50_p2 self.participant.vars["priceChangeDict"]['Stock50_p3']=self.player.Stock50_p3 self.participant.vars["priceChangeDict"]['Stock50_p4']=self.player.Stock50_p4 self.participant.vars["priceChangeDict"]['Stock50_p5']=self.player.Stock50_p5 self.participant.vars["priceChangeDict"]['Stock50_p6']=self.player.Stock50_p6 self.participant.vars["priceChangeDict"]['Stock50_p7']=self.player.Stock50_p7 self.participant.vars["priceChangeDict"]['Stock50_p8']=self.player.Stock50_p8 self.participant.vars["priceChangeDict"]['Stock50_p9']=self.player.Stock50_p9 self.participant.vars["priceChangeDict"]['Stock50_p10']=self.player.Stock50_p10 self.participant.vars["priceChangeDict"]['Stock51_p1']=self.player.Stock51_p1 self.participant.vars["priceChangeDict"]['Stock51_p2']=self.player.Stock51_p2 self.participant.vars["priceChangeDict"]['Stock51_p3']=self.player.Stock51_p3 self.participant.vars["priceChangeDict"]['Stock51_p4']=self.player.Stock51_p4 self.participant.vars["priceChangeDict"]['Stock51_p5']=self.player.Stock51_p5 self.participant.vars["priceChangeDict"]['Stock51_p6']=self.player.Stock51_p6 self.participant.vars["priceChangeDict"]['Stock51_p7']=self.player.Stock51_p7 self.participant.vars["priceChangeDict"]['Stock51_p8']=self.player.Stock51_p8 self.participant.vars["priceChangeDict"]['Stock51_p9']=self.player.Stock51_p9 self.participant.vars["priceChangeDict"]['Stock51_p10']=self.player.Stock51_p10 self.participant.vars["priceChangeDict"]['Stock52_p1']=self.player.Stock52_p1 self.participant.vars["priceChangeDict"]['Stock52_p2']=self.player.Stock52_p2 self.participant.vars["priceChangeDict"]['Stock52_p3']=self.player.Stock52_p3 self.participant.vars["priceChangeDict"]['Stock52_p4']=self.player.Stock52_p4 self.participant.vars["priceChangeDict"]['Stock52_p5']=self.player.Stock52_p5 self.participant.vars["priceChangeDict"]['Stock52_p6']=self.player.Stock52_p6 self.participant.vars["priceChangeDict"]['Stock52_p7']=self.player.Stock52_p7 self.participant.vars["priceChangeDict"]['Stock52_p8']=self.player.Stock52_p8 self.participant.vars["priceChangeDict"]['Stock52_p9']=self.player.Stock52_p9 self.participant.vars["priceChangeDict"]['Stock52_p10']=self.player.Stock52_p10 self.participant.vars["priceChangeDict"]['Stock53_p1']=self.player.Stock53_p1 self.participant.vars["priceChangeDict"]['Stock53_p2']=self.player.Stock53_p2 self.participant.vars["priceChangeDict"]['Stock53_p3']=self.player.Stock53_p3 self.participant.vars["priceChangeDict"]['Stock53_p4']=self.player.Stock53_p4 self.participant.vars["priceChangeDict"]['Stock53_p5']=self.player.Stock53_p5 self.participant.vars["priceChangeDict"]['Stock53_p6']=self.player.Stock53_p6 self.participant.vars["priceChangeDict"]['Stock53_p7']=self.player.Stock53_p7 self.participant.vars["priceChangeDict"]['Stock53_p8']=self.player.Stock53_p8 self.participant.vars["priceChangeDict"]['Stock53_p9']=self.player.Stock53_p9 self.participant.vars["priceChangeDict"]['Stock53_p10']=self.player.Stock53_p10 self.participant.vars["priceChangeDict"]['Stock54_p1']=self.player.Stock54_p1 self.participant.vars["priceChangeDict"]['Stock54_p2']=self.player.Stock54_p2 self.participant.vars["priceChangeDict"]['Stock54_p3']=self.player.Stock54_p3 self.participant.vars["priceChangeDict"]['Stock54_p4']=self.player.Stock54_p4 self.participant.vars["priceChangeDict"]['Stock54_p5']=self.player.Stock54_p5 self.participant.vars["priceChangeDict"]['Stock54_p6']=self.player.Stock54_p6 self.participant.vars["priceChangeDict"]['Stock54_p7']=self.player.Stock54_p7 self.participant.vars["priceChangeDict"]['Stock54_p8']=self.player.Stock54_p8 self.participant.vars["priceChangeDict"]['Stock54_p9']=self.player.Stock54_p9 self.participant.vars["priceChangeDict"]['Stock54_p10']=self.player.Stock54_p10 self.participant.vars["priceChangeDict"]['Stock55_p1']=self.player.Stock55_p1 self.participant.vars["priceChangeDict"]['Stock55_p2']=self.player.Stock55_p2 self.participant.vars["priceChangeDict"]['Stock55_p3']=self.player.Stock55_p3 self.participant.vars["priceChangeDict"]['Stock55_p4']=self.player.Stock55_p4 self.participant.vars["priceChangeDict"]['Stock55_p5']=self.player.Stock55_p5 self.participant.vars["priceChangeDict"]['Stock55_p6']=self.player.Stock55_p6 self.participant.vars["priceChangeDict"]['Stock55_p7']=self.player.Stock55_p7 self.participant.vars["priceChangeDict"]['Stock55_p8']=self.player.Stock55_p8 self.participant.vars["priceChangeDict"]['Stock55_p9']=self.player.Stock55_p9 self.participant.vars["priceChangeDict"]['Stock55_p10']=self.player.Stock55_p10 self.participant.vars["priceChangeDict"]['Stock56_p1']=self.player.Stock56_p1 self.participant.vars["priceChangeDict"]['Stock56_p2']=self.player.Stock56_p2 self.participant.vars["priceChangeDict"]['Stock56_p3']=self.player.Stock56_p3 self.participant.vars["priceChangeDict"]['Stock56_p4']=self.player.Stock56_p4 self.participant.vars["priceChangeDict"]['Stock56_p5']=self.player.Stock56_p5 self.participant.vars["priceChangeDict"]['Stock56_p6']=self.player.Stock56_p6 self.participant.vars["priceChangeDict"]['Stock56_p7']=self.player.Stock56_p7 self.participant.vars["priceChangeDict"]['Stock56_p8']=self.player.Stock56_p8 self.participant.vars["priceChangeDict"]['Stock56_p9']=self.player.Stock56_p9 self.participant.vars["priceChangeDict"]['Stock56_p10']=self.player.Stock56_p10 self.participant.vars["priceChangeDict"]['Stock57_p1']=self.player.Stock57_p1 self.participant.vars["priceChangeDict"]['Stock57_p2']=self.player.Stock57_p2 self.participant.vars["priceChangeDict"]['Stock57_p3']=self.player.Stock57_p3 self.participant.vars["priceChangeDict"]['Stock57_p4']=self.player.Stock57_p4 self.participant.vars["priceChangeDict"]['Stock57_p5']=self.player.Stock57_p5 self.participant.vars["priceChangeDict"]['Stock57_p6']=self.player.Stock57_p6 self.participant.vars["priceChangeDict"]['Stock57_p7']=self.player.Stock57_p7 self.participant.vars["priceChangeDict"]['Stock57_p8']=self.player.Stock57_p8 self.participant.vars["priceChangeDict"]['Stock57_p9']=self.player.Stock57_p9 self.participant.vars["priceChangeDict"]['Stock57_p10']=self.player.Stock57_p10 self.participant.vars["priceChangeDict"]['Stock58_p1']=self.player.Stock58_p1 self.participant.vars["priceChangeDict"]['Stock58_p2']=self.player.Stock58_p2 self.participant.vars["priceChangeDict"]['Stock58_p3']=self.player.Stock58_p3 self.participant.vars["priceChangeDict"]['Stock58_p4']=self.player.Stock58_p4 self.participant.vars["priceChangeDict"]['Stock58_p5']=self.player.Stock58_p5 self.participant.vars["priceChangeDict"]['Stock58_p6']=self.player.Stock58_p6 self.participant.vars["priceChangeDict"]['Stock58_p7']=self.player.Stock58_p7 self.participant.vars["priceChangeDict"]['Stock58_p8']=self.player.Stock58_p8 self.participant.vars["priceChangeDict"]['Stock58_p9']=self.player.Stock58_p9 self.participant.vars["priceChangeDict"]['Stock58_p10']=self.player.Stock58_p10 self.participant.vars["priceChangeDict"]['Stock59_p1']=self.player.Stock59_p1 self.participant.vars["priceChangeDict"]['Stock59_p2']=self.player.Stock59_p2 self.participant.vars["priceChangeDict"]['Stock59_p3']=self.player.Stock59_p3 self.participant.vars["priceChangeDict"]['Stock59_p4']=self.player.Stock59_p4 self.participant.vars["priceChangeDict"]['Stock59_p5']=self.player.Stock59_p5 self.participant.vars["priceChangeDict"]['Stock59_p6']=self.player.Stock59_p6 self.participant.vars["priceChangeDict"]['Stock59_p7']=self.player.Stock59_p7 self.participant.vars["priceChangeDict"]['Stock59_p8']=self.player.Stock59_p8 self.participant.vars["priceChangeDict"]['Stock59_p9']=self.player.Stock59_p9 self.participant.vars["priceChangeDict"]['Stock59_p10']=self.player.Stock59_p10 self.participant.vars["priceChangeDict"]['Stock60_p1']=self.player.Stock60_p1 self.participant.vars["priceChangeDict"]['Stock60_p2']=self.player.Stock60_p2 self.participant.vars["priceChangeDict"]['Stock60_p3']=self.player.Stock60_p3 self.participant.vars["priceChangeDict"]['Stock60_p4']=self.player.Stock60_p4 self.participant.vars["priceChangeDict"]['Stock60_p5']=self.player.Stock60_p5 self.participant.vars["priceChangeDict"]['Stock60_p6']=self.player.Stock60_p6 self.participant.vars["priceChangeDict"]['Stock60_p7']=self.player.Stock60_p7 self.participant.vars["priceChangeDict"]['Stock60_p8']=self.player.Stock60_p8 self.participant.vars["priceChangeDict"]['Stock60_p9']=self.player.Stock60_p9 self.participant.vars["priceChangeDict"]['Stock60_p10']=self.player.Stock60_p10 self.participant.vars["priceChangeDict"]['Stock61_p1']=self.player.Stock61_p1 self.participant.vars["priceChangeDict"]['Stock61_p2']=self.player.Stock61_p2 self.participant.vars["priceChangeDict"]['Stock61_p3']=self.player.Stock61_p3 self.participant.vars["priceChangeDict"]['Stock61_p4']=self.player.Stock61_p4 self.participant.vars["priceChangeDict"]['Stock61_p5']=self.player.Stock61_p5 self.participant.vars["priceChangeDict"]['Stock61_p6']=self.player.Stock61_p6 self.participant.vars["priceChangeDict"]['Stock61_p7']=self.player.Stock61_p7 self.participant.vars["priceChangeDict"]['Stock61_p8']=self.player.Stock61_p8 self.participant.vars["priceChangeDict"]['Stock61_p9']=self.player.Stock61_p9 self.participant.vars["priceChangeDict"]['Stock61_p10']=self.player.Stock61_p10 ###Show period 1 class Period1_show(Page): form_model = 'player' currentPeriod = 1 def add_plus_to_pos_numbers(self, int_num): if int_num >= 0: return '%+g' % int_num else: return '%-g' % int_num #stock name with space between string and integer def showName_nicely(self, stockName): niceStockname = "Stock " + stockName.split("Stock")[1] return niceStockname #allocate chosen stocks to table rows for display def sorted_nicely(self, l): import re """ Sort the given iterable in the way that humans expect.""" convert = lambda text: int(text) if text.isdigit() else text alphanum_key = lambda key: [ convert(c) for c in re.split('([0-9]+)', key) ] return sorted(l, key = alphanum_key) def showStocks(self): currentPortfolio = self.sorted_nicely(self.participant.vars['Portfolio']) self.player.stockRow1 = currentPortfolio[0] self.player.stockRow2 = currentPortfolio[1] self.player.stockRow3 = currentPortfolio[2] self.player.stockRow4 = currentPortfolio[3] self.player.stockRow5 = currentPortfolio[4] return #period 1 price per row def showPrice(self): self.player.period1Price_row1 = 30 + self.player.period1PriceChange_row1 self.player.period1Price_row2 = 30 + self.player.period1PriceChange_row2 self.player.period1Price_row3 = 30 + self.player.period1PriceChange_row3 self.player.period1Price_row4 = 30 + self.player.period1PriceChange_row4 self.player.period1Price_row5 = 30 + self.player.period1PriceChange_row5 #sell a stock def sellStock(self): import random if (self.player.Treatment == 'SellingGains'): self.participant.vars['gainersPortfolio'] = self.participant.vars['Portfolio'].copy() for currentStock in self.participant.vars['Portfolio']: if self.player.showPriceChangeForStockName(currentStock,self.currentPeriod) <= 0: self.participant.vars['gainersPortfolio'].remove(currentStock) if len(self.participant.vars['gainersPortfolio']) > 0: pickGainerStockFromPortfolio = random.choice(self.participant.vars['gainersPortfolio']) self.participant.vars['Portfolio'].remove(pickGainerStockFromPortfolio) self.player.stockSold1 = pickGainerStockFromPortfolio else: randomStockFromPortfolio = random.choice(self.participant.vars['Portfolio']) self.participant.vars['Portfolio'].remove(randomStockFromPortfolio) self.player.stockSold1 = randomStockFromPortfolio else: self.participant.vars['losersPortfolio'] = self.participant.vars['Portfolio'].copy() for currentStock in self.participant.vars['Portfolio']: if self.player.showPriceChangeForStockName(currentStock,self.currentPeriod) >= 0: self.participant.vars['losersPortfolio'].remove(currentStock) if len(self.participant.vars['losersPortfolio']) > 0: pickLoserStockFromPortfolio = random.choice(self.participant.vars['losersPortfolio']) self.participant.vars['Portfolio'].remove(pickLoserStockFromPortfolio) self.player.stockSold1 = pickLoserStockFromPortfolio else: randomStockFromPortfolio = random.choice(self.participant.vars['Portfolio']) self.participant.vars['Portfolio'].remove(randomStockFromPortfolio) self.player.stockSold1 = randomStockFromPortfolio def before_next_page(self): self.sellStock() self.player.sellingPriceSold1 = self.player.sellingPrice(self.player.stockSold1, 1) #variables for template def vars_for_template(self): self.showStocks() self.player.period1PriceChange_row1 = self.player.showPriceChangeForStockName(self.player.stockRow1,self.currentPeriod) self.player.period1PriceChange_row2 = self.player.showPriceChangeForStockName(self.player.stockRow2,self.currentPeriod) self.player.period1PriceChange_row3 = self.player.showPriceChangeForStockName(self.player.stockRow3,self.currentPeriod) self.player.period1PriceChange_row4 = self.player.showPriceChangeForStockName(self.player.stockRow4,self.currentPeriod) self.player.period1PriceChange_row5 = self.player.showPriceChangeForStockName(self.player.stockRow5,self.currentPeriod) self.showPrice() #pre period price per row self.player.preperiod1Price_row1 = self.player.period1Price_row1 - self.player.period1PriceChange_row1 self.player.preperiod1Price_row2 = self.player.period1Price_row2 - self.player.period1PriceChange_row2 self.player.preperiod1Price_row3 = self.player.period1Price_row3 - self.player.period1PriceChange_row3 self.player.preperiod1Price_row4 = self.player.period1Price_row4 - self.player.period1PriceChange_row4 self.player.preperiod1Price_row5 = self.player.period1Price_row5 - self.player.period1PriceChange_row5 return dict( Stock21_p1 = self.add_plus_to_pos_numbers(self.player.Stock21_p1), Stock21_p2 = self.add_plus_to_pos_numbers(self.player.Stock21_p2), Stock21_p3 = self.add_plus_to_pos_numbers(self.player.Stock21_p3), Stock22_p1 = self.add_plus_to_pos_numbers(self.player.Stock22_p1), Stock22_p2 = self.add_plus_to_pos_numbers(self.player.Stock22_p2), Stock22_p3 = self.add_plus_to_pos_numbers(self.player.Stock22_p3), Stock23_p1 = self.add_plus_to_pos_numbers(self.player.Stock23_p1), Stock23_p2 = self.add_plus_to_pos_numbers(self.player.Stock23_p2), Stock23_p3 = self.add_plus_to_pos_numbers(self.player.Stock23_p3), Stock24_p1 = self.add_plus_to_pos_numbers(self.player.Stock24_p1), Stock24_p2 = self.add_plus_to_pos_numbers(self.player.Stock24_p2), Stock24_p3 = self.add_plus_to_pos_numbers(self.player.Stock24_p3), Stock1_period1Price = self.player.period1Price_stock1, Stock2_period1Price = self.player.period1Price_stock2, Stock3_period1Price = self.player.period1Price_stock3, Stock4_period1Price = self.player.period1Price_stock4, Stock5_period1Price = self.player.period1Price_stock5, Stock6_period1Price = self.player.period1Price_stock6, Stock7_period1Price = self.player.period1Price_stock7, Stock8_period1Price = self.player.period1Price_stock8, Stock9_period1Price = self.player.period1Price_stock9, Stock10_period1Price = self.player.period1Price_stock10, Stock11_period1Price = self.player.period1Price_stock11, Stock12_period1Price = self.player.period1Price_stock12, Stock13_period1Price = self.player.period1Price_stock13, Stock14_period1Price = self.player.period1Price_stock14, Stock15_period1Price = self.player.period1Price_stock15, Stock16_period1Price = self.player.period1Price_stock16, Stock17_period1Price = self.player.period1Price_stock17, Stock18_period1Price = self.player.period1Price_stock18, Stock19_period1Price = self.player.period1Price_stock19, Stock20_period1Price = self.player.period1Price_stock20, Stock1_period1Change = self.add_plus_to_pos_numbers(self.player.Stock1_p4), Stock2_period1Change = self.add_plus_to_pos_numbers(self.player.Stock2_p4), Stock3_period1Change = self.add_plus_to_pos_numbers(self.player.Stock3_p4), Stock4_period1Change = self.add_plus_to_pos_numbers(self.player.Stock4_p4), Stock5_period1Change = self.add_plus_to_pos_numbers(self.player.Stock5_p4), Stock6_period1Change = self.add_plus_to_pos_numbers(self.player.Stock6_p4), Stock7_period1Change = self.add_plus_to_pos_numbers(self.player.Stock7_p4), Stock8_period1Change = self.add_plus_to_pos_numbers(self.player.Stock8_p4), Stock9_period1Change = self.add_plus_to_pos_numbers(self.player.Stock9_p4), Stock10_period1Change = self.add_plus_to_pos_numbers(self.player.Stock10_p4), Stock11_period1Change = self.add_plus_to_pos_numbers(self.player.Stock11_p4), Stock12_period1Change = self.add_plus_to_pos_numbers(self.player.Stock12_p4), Stock13_period1Change = self.add_plus_to_pos_numbers(self.player.Stock13_p4), Stock14_period1Change = self.add_plus_to_pos_numbers(self.player.Stock14_p4), Stock15_period1Change = self.add_plus_to_pos_numbers(self.player.Stock15_p4), Stock16_period1Change = self.add_plus_to_pos_numbers(self.player.Stock16_p4), Stock17_period1Change = self.add_plus_to_pos_numbers(self.player.Stock17_p4), Stock18_period1Change = self.add_plus_to_pos_numbers(self.player.Stock18_p4), Stock19_period1Change = self.add_plus_to_pos_numbers(self.player.Stock19_p4), Stock20_period1Change = self.add_plus_to_pos_numbers(self.player.Stock20_p4), StockRow1 = self.showName_nicely(self.player.stockRow1), StockRow2 = self.showName_nicely(self.player.stockRow2), StockRow3 = self.showName_nicely(self.player.stockRow3), StockRow4 = self.showName_nicely(self.player.stockRow4), StockRow5 = self.showName_nicely(self.player.stockRow5), PriceRow1 = self.player.period1Price_row1, PriceRow2 = self.player.period1Price_row2, PriceRow3 = self.player.period1Price_row3, PriceRow4 = self.player.period1Price_row4, PriceRow5 = self.player.period1Price_row5, PriceChangeRow1 = self.add_plus_to_pos_numbers(self.player.period1PriceChange_row1), PriceChangeRow2 = self.add_plus_to_pos_numbers(self.player.period1PriceChange_row2), PriceChangeRow3 = self.add_plus_to_pos_numbers(self.player.period1PriceChange_row3), PriceChangeRow4 = self.add_plus_to_pos_numbers(self.player.period1PriceChange_row4), PriceChangeRow5 = self.add_plus_to_pos_numbers(self.player.period1PriceChange_row5), PrePriceRow1 = self.player.preperiod1Price_row1, PrePriceRow2 = self.player.preperiod1Price_row2, PrePriceRow3 = self.player.preperiod1Price_row3, PrePriceRow4 = self.player.preperiod1Price_row4, PrePriceRow5 = self.player.preperiod1Price_row5, CashPosition_choice = self.player.currentCash_choice(self.currentPeriod), ) ###Choice period 1 class Period1_choice(Page): form_model = 'player' form_fields = ['Select_choice2'] currentPeriod = 1 #stock name with space between string and integer def showName_nicely(self, stockName): niceStockname = "Stock " + stockName.split("Stock")[1] return niceStockname #add new stock to portfolio def addStock(self): if self.player.Select_choice2 == 21: self.participant.vars['Portfolio'].append('Stock21') elif self.player.Select_choice2 == 22: self.participant.vars['Portfolio'].append('Stock22') elif self.player.Select_choice2 == 23: self.participant.vars['Portfolio'].append('Stock23') else: self.participant.vars['Portfolio'].append('Stock24') def before_next_page(self): self.addStock() #variables for template def vars_for_template(self): return dict( Stock21_p1 = 30 - self.player.Stock21_p1, Stock21_p2 = 30 - self.player.Stock21_p1 - self.player.Stock21_p2, Stock21_p3 = 30 - self.player.Stock21_p1 - self.player.Stock21_p2 - self.player.Stock21_p3, Stock22_p1 = 30 - self.player.Stock22_p1, Stock22_p2 = 30 - self.player.Stock22_p1 - self.player.Stock22_p2, Stock22_p3 = 30 - self.player.Stock22_p1 - self.player.Stock22_p2 - self.player.Stock22_p3, Stock23_p1 = 30 - self.player.Stock23_p1, Stock23_p2 = 30 - self.player.Stock23_p1 - self.player.Stock23_p2, Stock23_p3 = 30 - self.player.Stock23_p1 - self.player.Stock23_p2 - self.player.Stock23_p3, Stock24_p1 = 30 - self.player.Stock24_p1, Stock24_p2 = 30 - self.player.Stock24_p1 - self.player.Stock24_p2, Stock24_p3 = 30 - self.player.Stock24_p1 - self.player.Stock24_p2 - self.player.Stock24_p3, Stock1_period1Price = self.player.period1Price_stock1, Stock2_period1Price = self.player.period1Price_stock2, Stock3_period1Price = self.player.period1Price_stock3, Stock4_period1Price = self.player.period1Price_stock4, Stock5_period1Price = self.player.period1Price_stock5, Stock6_period1Price = self.player.period1Price_stock6, Stock7_period1Price = self.player.period1Price_stock7, Stock8_period1Price = self.player.period1Price_stock8, Stock9_period1Price = self.player.period1Price_stock9, Stock10_period1Price = self.player.period1Price_stock10, Stock11_period1Price = self.player.period1Price_stock11, Stock12_period1Price = self.player.period1Price_stock12, Stock13_period1Price = self.player.period1Price_stock13, Stock14_period1Price = self.player.period1Price_stock14, Stock15_period1Price = self.player.period1Price_stock15, Stock16_period1Price = self.player.period1Price_stock16, Stock17_period1Price = self.player.period1Price_stock17, Stock18_period1Price = self.player.period1Price_stock18, Stock19_period1Price = self.player.period1Price_stock19, Stock20_period1Price = self.player.period1Price_stock20, StockRow1 = self.showName_nicely(self.player.stockRow1), StockRow2 = self.showName_nicely(self.player.stockRow2), StockRow3 = self.showName_nicely(self.player.stockRow3), StockRow4 = self.showName_nicely(self.player.stockRow4), StockRow5 = self.showName_nicely(self.player.stockRow5), PriceRow1 = self.player.period1Price_row1, PriceRow2 = self.player.period1Price_row2, PriceRow3 = self.player.period1Price_row3, PriceRow4 = self.player.period1Price_row4, PriceRow5 = self.player.period1Price_row5, StockSold1 = self.showName_nicely(self.player.stockSold1), SellingPriceSold1 = self.player.sellingPriceSold1, ) ###Show period 2 class Period2_show(Page): form_model = 'player' currentPeriod = 2 def add_plus_to_pos_numbers(self, int_num): if int_num >= 0: return '%+g' % int_num else: return '%-g' % int_num #stock name with space between string and integer def showName_nicely(self, stockName): niceStockname = "Stock " + stockName.split("Stock")[1] return niceStockname #allocate chosen stocks to table rows for display def sorted_nicely(self, l): import re """ Sort the given iterable in the way that humans expect.""" convert = lambda text: int(text) if text.isdigit() else text alphanum_key = lambda key: [ convert(c) for c in re.split('([0-9]+)', key) ] return sorted(l, key = alphanum_key) def showStocks(self): currentPortfolio = self.sorted_nicely(self.participant.vars['Portfolio']) self.player.stockRow1 = currentPortfolio[0] self.player.stockRow2 = currentPortfolio[1] self.player.stockRow3 = currentPortfolio[2] self.player.stockRow4 = currentPortfolio[3] self.player.stockRow5 = currentPortfolio[4] return #period 2 price per row def showPrice(self): self.player.period2Price_row1 = (30 + self.player.sumPriceChangesInPeriod(self.player.stockRow1, self.currentPeriod)) self.player.period2Price_row2 = (30 + self.player.sumPriceChangesInPeriod(self.player.stockRow2, self.currentPeriod)) self.player.period2Price_row3 = (30 + self.player.sumPriceChangesInPeriod(self.player.stockRow3, self.currentPeriod)) self.player.period2Price_row4 = (30 + self.player.sumPriceChangesInPeriod(self.player.stockRow4, self.currentPeriod)) self.player.period2Price_row5 = (30 + self.player.sumPriceChangesInPeriod(self.player.stockRow5, self.currentPeriod)) #sell a stock def sellStock(self): import random if (self.player.Treatment == 'SellingGains'): self.participant.vars['gainersPortfolio'] = self.participant.vars['Portfolio'].copy() for currentStock in self.participant.vars['Portfolio']: if self.player.sumPriceChangesInPeriod(currentStock, self.currentPeriod) <= 0: self.participant.vars['gainersPortfolio'].remove(currentStock) if len(self.participant.vars['gainersPortfolio']) > 0: pickGainerStockFromPortfolio = random.choice(self.participant.vars['gainersPortfolio']) self.participant.vars['Portfolio'].remove(pickGainerStockFromPortfolio) self.player.stockSold2 = pickGainerStockFromPortfolio else: randomStockFromPortfolio = random.choice(self.participant.vars['Portfolio']) self.participant.vars['Portfolio'].remove(randomStockFromPortfolio) self.player.stockSold2 = randomStockFromPortfolio else: self.participant.vars['losersPortfolio'] = self.participant.vars['Portfolio'].copy() for currentStock in self.participant.vars['Portfolio']: if self.player.sumPriceChangesInPeriod(currentStock, self.currentPeriod) >= 0: self.participant.vars['losersPortfolio'].remove(currentStock) if len(self.participant.vars['losersPortfolio']) > 0: pickLoserStockFromPortfolio = random.choice(self.participant.vars['losersPortfolio']) self.participant.vars['Portfolio'].remove(pickLoserStockFromPortfolio) self.player.stockSold2 = pickLoserStockFromPortfolio else: randomStockFromPortfolio = random.choice(self.participant.vars['Portfolio']) self.participant.vars['Portfolio'].remove(randomStockFromPortfolio) self.player.stockSold2 = randomStockFromPortfolio def before_next_page(self): self.sellStock() self.player.sellingPriceSold2 = self.player.sellingPrice(self.player.stockSold2, 2) #variables for template def vars_for_template(self): self.showStocks() self.player.period2PriceChange_row1 = self.player.showPriceChangeForStockName(self.player.stockRow1,self.currentPeriod) self.player.period2PriceChange_row2 = self.player.showPriceChangeForStockName(self.player.stockRow2,self.currentPeriod) self.player.period2PriceChange_row3 = self.player.showPriceChangeForStockName(self.player.stockRow3,self.currentPeriod) self.player.period2PriceChange_row4 = self.player.showPriceChangeForStockName(self.player.stockRow4,self.currentPeriod) self.player.period2PriceChange_row5 = self.player.showPriceChangeForStockName(self.player.stockRow5,self.currentPeriod) self.showPrice() #pre period price per row self.player.preperiod2Price_row1 = self.player.period2Price_row1 - self.player.period2PriceChange_row1 self.player.preperiod2Price_row2 = self.player.period2Price_row2 - self.player.period2PriceChange_row2 self.player.preperiod2Price_row3 = self.player.period2Price_row3 - self.player.period2PriceChange_row3 self.player.preperiod2Price_row4 = self.player.period2Price_row4 - self.player.period2PriceChange_row4 self.player.preperiod2Price_row5 = self.player.period2Price_row5 - self.player.period2PriceChange_row5 return dict( Stock25_p1 = self.add_plus_to_pos_numbers(self.player.Stock25_p1), Stock25_p2 = self.add_plus_to_pos_numbers(self.player.Stock25_p2), Stock25_p3 = self.add_plus_to_pos_numbers(self.player.Stock25_p3), Stock26_p1 = self.add_plus_to_pos_numbers(self.player.Stock26_p1), Stock26_p2 = self.add_plus_to_pos_numbers(self.player.Stock26_p2), Stock26_p3 = self.add_plus_to_pos_numbers(self.player.Stock26_p3), Stock27_p1 = self.add_plus_to_pos_numbers(self.player.Stock27_p1), Stock27_p2 = self.add_plus_to_pos_numbers(self.player.Stock27_p2), Stock27_p3 = self.add_plus_to_pos_numbers(self.player.Stock27_p3), Stock28_p1 = self.add_plus_to_pos_numbers(self.player.Stock28_p1), Stock28_p2 = self.add_plus_to_pos_numbers(self.player.Stock28_p2), Stock28_p3 = self.add_plus_to_pos_numbers(self.player.Stock28_p3), StockRow1 = self.showName_nicely(self.player.stockRow1), StockRow2 = self.showName_nicely(self.player.stockRow2), StockRow3 = self.showName_nicely(self.player.stockRow3), StockRow4 = self.showName_nicely(self.player.stockRow4), StockRow5 = self.showName_nicely(self.player.stockRow5), PriceRow1 = self.player.period2Price_row1, PriceRow2 = self.player.period2Price_row2, PriceRow3 = self.player.period2Price_row3, PriceRow4 = self.player.period2Price_row4, PriceRow5 = self.player.period2Price_row5, PriceChangeRow1 = self.add_plus_to_pos_numbers(self.player.period2PriceChange_row1), PriceChangeRow2 = self.add_plus_to_pos_numbers(self.player.period2PriceChange_row2), PriceChangeRow3 = self.add_plus_to_pos_numbers(self.player.period2PriceChange_row3), PriceChangeRow4 = self.add_plus_to_pos_numbers(self.player.period2PriceChange_row4), PriceChangeRow5 = self.add_plus_to_pos_numbers(self.player.period2PriceChange_row5), PrePriceRow1 = self.player.preperiod2Price_row1, PrePriceRow2 = self.player.preperiod2Price_row2, PrePriceRow3 = self.player.preperiod2Price_row3, PrePriceRow4 = self.player.preperiod2Price_row4, PrePriceRow5 = self.player.preperiod2Price_row5, CashPosition_choice = self.player.currentCash_choice(self.currentPeriod), ) ### Choice period 2 class Period2_choice(Page): form_model = 'player' form_fields = ['Select_choice3'] currentPeriod = 2 #stock name with space between string and integer def showName_nicely(self, stockName): niceStockname = "Stock " + stockName.split("Stock")[1] return niceStockname #add new stock to portfolio def addStock(self): if self.player.Select_choice3 == 25: self.participant.vars['Portfolio'].append('Stock25') elif self.player.Select_choice3 == 26: self.participant.vars['Portfolio'].append('Stock26') elif self.player.Select_choice3 == 27: self.participant.vars['Portfolio'].append('Stock27') else: self.participant.vars['Portfolio'].append('Stock28') def before_next_page(self): self.addStock() #variables for template def vars_for_template(self): return dict( Stock25_p1 = 30 - self.player.Stock25_p1, Stock25_p2 = 30 - self.player.Stock25_p1 - self.player.Stock25_p2, Stock25_p3 = 30 - self.player.Stock25_p1 - self.player.Stock25_p2 - self.player.Stock25_p3, Stock26_p1 = 30 - self.player.Stock26_p1, Stock26_p2 = 30 - self.player.Stock26_p1 - self.player.Stock26_p2, Stock26_p3 = 30 - self.player.Stock26_p1 - self.player.Stock26_p2 - self.player.Stock26_p3, Stock27_p1 = 30 - self.player.Stock27_p1, Stock27_p2 = 30 - self.player.Stock27_p1 - self.player.Stock27_p2, Stock27_p3 = 30 - self.player.Stock27_p1 - self.player.Stock27_p2 - self.player.Stock27_p3, Stock28_p1 = 30 - self.player.Stock28_p1, Stock28_p2 = 30 - self.player.Stock28_p1 - self.player.Stock28_p2, Stock28_p3 = 30 - self.player.Stock28_p1 - self.player.Stock28_p2 - self.player.Stock28_p3, StockRow1 = self.showName_nicely(self.player.stockRow1), StockRow2 = self.showName_nicely(self.player.stockRow2), StockRow3 = self.showName_nicely(self.player.stockRow3), StockRow4 = self.showName_nicely(self.player.stockRow4), StockRow5 = self.showName_nicely(self.player.stockRow5), PriceRow1 = self.player.period2Price_row1, PriceRow2 = self.player.period2Price_row2, PriceRow3 = self.player.period2Price_row3, PriceRow4 = self.player.period2Price_row4, PriceRow5 = self.player.period2Price_row5, StockSold1 = self.showName_nicely(self.player.stockSold1), StockSold2 = self.showName_nicely(self.player.stockSold2), SellingPriceSold2 = self.player.sellingPriceSold2, ) ###Show period 3 class Period3_show(Page): form_model = 'player' currentPeriod = 3 def add_plus_to_pos_numbers(self, int_num): if int_num >= 0: return '%+g' % int_num else: return '%-g' % int_num #stock name with space between string and integer def showName_nicely(self, stockName): niceStockname = "Stock " + stockName.split("Stock")[1] return niceStockname #allocate chosen stocks to table rows for display def sorted_nicely(self, l): import re """ Sort the given iterable in the way that humans expect.""" convert = lambda text: int(text) if text.isdigit() else text alphanum_key = lambda key: [ convert(c) for c in re.split('([0-9]+)', key) ] return sorted(l, key = alphanum_key) def showStocks(self): currentPortfolio = self.sorted_nicely(self.participant.vars['Portfolio']) self.player.stockRow1 = currentPortfolio[0] self.player.stockRow2 = currentPortfolio[1] self.player.stockRow3 = currentPortfolio[2] self.player.stockRow4 = currentPortfolio[3] self.player.stockRow5 = currentPortfolio[4] return #period 3 price per row def showPrice(self): self.player.period3Price_row1 = (30 + self.player.sumPriceChangesInPeriod(self.player.stockRow1, self.currentPeriod)) self.player.period3Price_row2 = (30 + self.player.sumPriceChangesInPeriod(self.player.stockRow2, self.currentPeriod)) self.player.period3Price_row3 = (30 + self.player.sumPriceChangesInPeriod(self.player.stockRow3, self.currentPeriod)) self.player.period3Price_row4 = (30 + self.player.sumPriceChangesInPeriod(self.player.stockRow4, self.currentPeriod)) self.player.period3Price_row5 = (30 + self.player.sumPriceChangesInPeriod(self.player.stockRow5, self.currentPeriod)) #sell a stock def sellStock(self): import random if (self.player.Treatment == 'SellingGains'): self.participant.vars['gainersPortfolio'] = self.participant.vars['Portfolio'].copy() for currentStock in self.participant.vars['Portfolio']: if self.player.sumPriceChangesInPeriod(currentStock, self.currentPeriod) <= 0: self.participant.vars['gainersPortfolio'].remove(currentStock) if len(self.participant.vars['gainersPortfolio']) > 0: pickGainerStockFromPortfolio = random.choice(self.participant.vars['gainersPortfolio']) self.participant.vars['Portfolio'].remove(pickGainerStockFromPortfolio) self.player.stockSold3 = pickGainerStockFromPortfolio else: randomStockFromPortfolio = random.choice(self.participant.vars['Portfolio']) self.participant.vars['Portfolio'].remove(randomStockFromPortfolio) self.player.stockSold3 = randomStockFromPortfolio else: self.participant.vars['losersPortfolio'] = self.participant.vars['Portfolio'].copy() for currentStock in self.participant.vars['Portfolio']: if self.player.sumPriceChangesInPeriod(currentStock, self.currentPeriod) >= 0: self.participant.vars['losersPortfolio'].remove(currentStock) if len(self.participant.vars['losersPortfolio']) > 0: pickLoserStockFromPortfolio = random.choice(self.participant.vars['losersPortfolio']) self.participant.vars['Portfolio'].remove(pickLoserStockFromPortfolio) self.player.stockSold3 = pickLoserStockFromPortfolio else: randomStockFromPortfolio = random.choice(self.participant.vars['Portfolio']) self.participant.vars['Portfolio'].remove(randomStockFromPortfolio) self.player.stockSold3 = randomStockFromPortfolio def before_next_page(self): self.sellStock() self.player.sellingPriceSold3 = self.player.sellingPrice(self.player.stockSold3, 3) #variables for template def vars_for_template(self): self.showStocks() self.player.period3PriceChange_row1 = self.player.showPriceChangeForStockName(self.player.stockRow1,self.currentPeriod) self.player.period3PriceChange_row2 = self.player.showPriceChangeForStockName(self.player.stockRow2,self.currentPeriod) self.player.period3PriceChange_row3 = self.player.showPriceChangeForStockName(self.player.stockRow3,self.currentPeriod) self.player.period3PriceChange_row4 = self.player.showPriceChangeForStockName(self.player.stockRow4,self.currentPeriod) self.player.period3PriceChange_row5 = self.player.showPriceChangeForStockName(self.player.stockRow5,self.currentPeriod) self.showPrice() #pre period price per row self.player.preperiod3Price_row1 = self.player.period3Price_row1 - self.player.period3PriceChange_row1 self.player.preperiod3Price_row2 = self.player.period3Price_row2 - self.player.period3PriceChange_row2 self.player.preperiod3Price_row3 = self.player.period3Price_row3 - self.player.period3PriceChange_row3 self.player.preperiod3Price_row4 = self.player.period3Price_row4 - self.player.period3PriceChange_row4 self.player.preperiod3Price_row5 = self.player.period3Price_row5 - self.player.period3PriceChange_row5 return dict( Stock29_p1 = self.add_plus_to_pos_numbers(self.player.Stock29_p1), Stock29_p2 = self.add_plus_to_pos_numbers(self.player.Stock29_p2), Stock29_p3 = self.add_plus_to_pos_numbers(self.player.Stock29_p3), Stock30_p1 = self.add_plus_to_pos_numbers(self.player.Stock30_p1), Stock30_p2 = self.add_plus_to_pos_numbers(self.player.Stock30_p2), Stock30_p3 = self.add_plus_to_pos_numbers(self.player.Stock30_p3), Stock31_p1 = self.add_plus_to_pos_numbers(self.player.Stock31_p1), Stock31_p2 = self.add_plus_to_pos_numbers(self.player.Stock31_p2), Stock31_p3 = self.add_plus_to_pos_numbers(self.player.Stock31_p3), Stock32_p1 = self.add_plus_to_pos_numbers(self.player.Stock32_p1), Stock32_p2 = self.add_plus_to_pos_numbers(self.player.Stock32_p2), Stock32_p3 = self.add_plus_to_pos_numbers(self.player.Stock32_p3), StockRow1 = self.showName_nicely(self.player.stockRow1), StockRow2 = self.showName_nicely(self.player.stockRow2), StockRow3 = self.showName_nicely(self.player.stockRow3), StockRow4 = self.showName_nicely(self.player.stockRow4), StockRow5 = self.showName_nicely(self.player.stockRow5), PriceRow1 = self.player.period3Price_row1, PriceRow2 = self.player.period3Price_row2, PriceRow3 = self.player.period3Price_row3, PriceRow4 = self.player.period3Price_row4, PriceRow5 = self.player.period3Price_row5, PriceChangeRow1 = self.add_plus_to_pos_numbers(self.player.period3PriceChange_row1), PriceChangeRow2 = self.add_plus_to_pos_numbers(self.player.period3PriceChange_row2), PriceChangeRow3 = self.add_plus_to_pos_numbers(self.player.period3PriceChange_row3), PriceChangeRow4 = self.add_plus_to_pos_numbers(self.player.period3PriceChange_row4), PriceChangeRow5 = self.add_plus_to_pos_numbers(self.player.period3PriceChange_row5), PrePriceRow1 = self.player.preperiod3Price_row1, PrePriceRow2 = self.player.preperiod3Price_row2, PrePriceRow3 = self.player.preperiod3Price_row3, PrePriceRow4 = self.player.preperiod3Price_row4, PrePriceRow5 = self.player.preperiod3Price_row5, CashPosition_choice = self.player.currentCash_choice(self.currentPeriod), ) ###Choice period 3 class Period3_choice(Page): form_model = 'player' form_fields = ['Select_choice4'] currentPeriod = 3 #stock name with space between string and integer def showName_nicely(self, stockName): niceStockname = "Stock " + stockName.split("Stock")[1] return niceStockname #add new stock to portfolio def addStock(self): if self.player.Select_choice4 == 29: self.participant.vars['Portfolio'].append('Stock29') elif self.player.Select_choice4 == 30: self.participant.vars['Portfolio'].append('Stock30') elif self.player.Select_choice4 == 31: self.participant.vars['Portfolio'].append('Stock31') else: self.participant.vars['Portfolio'].append('Stock32') def before_next_page(self): self.addStock() #variables for template def vars_for_template(self): return dict( Stock29_p1 = 30 - self.player.Stock29_p1, Stock29_p2 = 30 - self.player.Stock29_p1 - self.player.Stock29_p2, Stock29_p3 = 30 - self.player.Stock29_p1 - self.player.Stock29_p2 - self.player.Stock29_p3, Stock30_p1 = 30 - self.player.Stock30_p1, Stock30_p2 = 30 - self.player.Stock30_p1 - self.player.Stock30_p2, Stock30_p3 = 30 - self.player.Stock30_p1 - self.player.Stock30_p2 - self.player.Stock30_p3, Stock31_p1 = 30 - self.player.Stock31_p1, Stock31_p2 = 30 - self.player.Stock31_p1 - self.player.Stock31_p2, Stock31_p3 = 30 - self.player.Stock31_p1 - self.player.Stock31_p2 - self.player.Stock31_p3, Stock32_p1 = 30 - self.player.Stock32_p1, Stock32_p2 = 30 - self.player.Stock32_p1 - self.player.Stock32_p2, Stock32_p3 = 30 - self.player.Stock32_p1 - self.player.Stock32_p2 - self.player.Stock32_p3, StockRow1 = self.showName_nicely(self.player.stockRow1), StockRow2 = self.showName_nicely(self.player.stockRow2), StockRow3 = self.showName_nicely(self.player.stockRow3), StockRow4 = self.showName_nicely(self.player.stockRow4), StockRow5 = self.showName_nicely(self.player.stockRow5), PriceRow1 = self.player.period3Price_row1, PriceRow2 = self.player.period3Price_row2, PriceRow3 = self.player.period3Price_row3, PriceRow4 = self.player.period3Price_row4, PriceRow5 = self.player.period3Price_row5, StockSold1 = self.showName_nicely(self.player.stockSold1), StockSold2 = self.showName_nicely(self.player.stockSold2), StockSold3 = self.showName_nicely(self.player.stockSold3), SellingPriceSold3 = self.player.sellingPriceSold3, ) ###Show period 4 class Period4_show(Page): form_model = 'player' currentPeriod = 4 def add_plus_to_pos_numbers(self, int_num): if int_num >= 0: return '%+g' % int_num else: return '%-g' % int_num #stock name with space between string and integer def showName_nicely(self, stockName): niceStockname = "Stock " + stockName.split("Stock")[1] return niceStockname #allocate chosen stocks to table rows for display def sorted_nicely(self, l): import re """ Sort the given iterable in the way that humans expect.""" convert = lambda text: int(text) if text.isdigit() else text alphanum_key = lambda key: [ convert(c) for c in re.split('([0-9]+)', key) ] return sorted(l, key = alphanum_key) def showStocks(self): currentPortfolio = self.sorted_nicely(self.participant.vars['Portfolio']) self.player.stockRow1 = currentPortfolio[0] self.player.stockRow2 = currentPortfolio[1] self.player.stockRow3 = currentPortfolio[2] self.player.stockRow4 = currentPortfolio[3] self.player.stockRow5 = currentPortfolio[4] return #period price per row def showPrice(self): self.player.period4Price_row1 = (30 + self.player.sumPriceChangesInPeriod(self.player.stockRow1, self.currentPeriod)) self.player.period4Price_row2 = (30 + self.player.sumPriceChangesInPeriod(self.player.stockRow2, self.currentPeriod)) self.player.period4Price_row3 = (30 + self.player.sumPriceChangesInPeriod(self.player.stockRow3, self.currentPeriod)) self.player.period4Price_row4 = (30 + self.player.sumPriceChangesInPeriod(self.player.stockRow4, self.currentPeriod)) self.player.period4Price_row5 = (30 + self.player.sumPriceChangesInPeriod(self.player.stockRow5, self.currentPeriod)) #sell a stock def sellStock(self): import random if (self.player.Treatment == 'SellingGains'): self.participant.vars['gainersPortfolio'] = self.participant.vars['Portfolio'].copy() for currentStock in self.participant.vars['Portfolio']: if self.player.sumPriceChangesInPeriod(currentStock, self.currentPeriod) <= 0: self.participant.vars['gainersPortfolio'].remove(currentStock) if len(self.participant.vars['gainersPortfolio']) > 0: pickGainerStockFromPortfolio = random.choice(self.participant.vars['gainersPortfolio']) self.participant.vars['Portfolio'].remove(pickGainerStockFromPortfolio) self.player.stockSold4 = pickGainerStockFromPortfolio else: randomStockFromPortfolio = random.choice(self.participant.vars['Portfolio']) self.participant.vars['Portfolio'].remove(randomStockFromPortfolio) self.player.stockSold4 = randomStockFromPortfolio else: self.participant.vars['losersPortfolio'] = self.participant.vars['Portfolio'].copy() for currentStock in self.participant.vars['Portfolio']: if self.player.sumPriceChangesInPeriod(currentStock, self.currentPeriod) >= 0: self.participant.vars['losersPortfolio'].remove(currentStock) if len(self.participant.vars['losersPortfolio']) > 0: pickLoserStockFromPortfolio = random.choice(self.participant.vars['losersPortfolio']) self.participant.vars['Portfolio'].remove(pickLoserStockFromPortfolio) self.player.stockSold4 = pickLoserStockFromPortfolio else: randomStockFromPortfolio = random.choice(self.participant.vars['Portfolio']) self.participant.vars['Portfolio'].remove(randomStockFromPortfolio) self.player.stockSold4 = randomStockFromPortfolio def before_next_page(self): self.sellStock() self.player.sellingPriceSold4 = self.player.sellingPrice(self.player.stockSold4, 4) #variables for template def vars_for_template(self): self.showStocks() self.player.period4PriceChange_row1 = self.player.showPriceChangeForStockName(self.player.stockRow1,self.currentPeriod) self.player.period4PriceChange_row2 = self.player.showPriceChangeForStockName(self.player.stockRow2,self.currentPeriod) self.player.period4PriceChange_row3 = self.player.showPriceChangeForStockName(self.player.stockRow3,self.currentPeriod) self.player.period4PriceChange_row4 = self.player.showPriceChangeForStockName(self.player.stockRow4,self.currentPeriod) self.player.period4PriceChange_row5 = self.player.showPriceChangeForStockName(self.player.stockRow5,self.currentPeriod) self.showPrice() #pre period price per row self.player.preperiod4Price_row1 = self.player.period4Price_row1 - self.player.period4PriceChange_row1 self.player.preperiod4Price_row2 = self.player.period4Price_row2 - self.player.period4PriceChange_row2 self.player.preperiod4Price_row3 = self.player.period4Price_row3 - self.player.period4PriceChange_row3 self.player.preperiod4Price_row4 = self.player.period4Price_row4 - self.player.period4PriceChange_row4 self.player.preperiod4Price_row5 = self.player.period4Price_row5 - self.player.period4PriceChange_row5 return dict( Stock33_p1 = self.add_plus_to_pos_numbers(self.player.Stock33_p1), Stock33_p2 = self.add_plus_to_pos_numbers(self.player.Stock33_p2), Stock33_p3 = self.add_plus_to_pos_numbers(self.player.Stock33_p3), Stock34_p1 = self.add_plus_to_pos_numbers(self.player.Stock34_p1), Stock34_p2 = self.add_plus_to_pos_numbers(self.player.Stock34_p2), Stock34_p3 = self.add_plus_to_pos_numbers(self.player.Stock34_p3), Stock35_p1 = self.add_plus_to_pos_numbers(self.player.Stock35_p1), Stock35_p2 = self.add_plus_to_pos_numbers(self.player.Stock35_p2), Stock35_p3 = self.add_plus_to_pos_numbers(self.player.Stock35_p3), Stock36_p1 = self.add_plus_to_pos_numbers(self.player.Stock36_p1), Stock36_p2 = self.add_plus_to_pos_numbers(self.player.Stock36_p2), Stock36_p3 = self.add_plus_to_pos_numbers(self.player.Stock36_p3), StockRow1 = self.showName_nicely(self.player.stockRow1), StockRow2 = self.showName_nicely(self.player.stockRow2), StockRow3 = self.showName_nicely(self.player.stockRow3), StockRow4 = self.showName_nicely(self.player.stockRow4), StockRow5 = self.showName_nicely(self.player.stockRow5), PriceRow1 = self.player.period4Price_row1, PriceRow2 = self.player.period4Price_row2, PriceRow3 = self.player.period4Price_row3, PriceRow4 = self.player.period4Price_row4, PriceRow5 = self.player.period4Price_row5, PriceChangeRow1 = self.add_plus_to_pos_numbers(self.player.period4PriceChange_row1), PriceChangeRow2 = self.add_plus_to_pos_numbers(self.player.period4PriceChange_row2), PriceChangeRow3 = self.add_plus_to_pos_numbers(self.player.period4PriceChange_row3), PriceChangeRow4 = self.add_plus_to_pos_numbers(self.player.period4PriceChange_row4), PriceChangeRow5 = self.add_plus_to_pos_numbers(self.player.period4PriceChange_row5), PrePriceRow1 = self.player.preperiod4Price_row1, PrePriceRow2 = self.player.preperiod4Price_row2, PrePriceRow3 = self.player.preperiod4Price_row3, PrePriceRow4 = self.player.preperiod4Price_row4, PrePriceRow5 = self.player.preperiod4Price_row5, CashPosition_choice = self.player.currentCash_choice(self.currentPeriod), ) ###Choice period 4 class Period4_choice(Page): form_model = 'player' form_fields = ['Select_choice5'] currentPeriod = 4 #stock name with space between string and integer def showName_nicely(self, stockName): niceStockname = "Stock " + stockName.split("Stock")[1] return niceStockname #add new stock to portfolio def addStock(self): if self.player.Select_choice5 == 33: self.participant.vars['Portfolio'].append('Stock33') elif self.player.Select_choice5 == 34: self.participant.vars['Portfolio'].append('Stock34') elif self.player.Select_choice5 == 35: self.participant.vars['Portfolio'].append('Stock35') else: self.participant.vars['Portfolio'].append('Stock36') def before_next_page(self): self.addStock() #variables for template def vars_for_template(self): return dict( Stock33_p1 = 30 - self.player.Stock33_p1, Stock33_p2 = 30 - self.player.Stock33_p1 - self.player.Stock33_p2, Stock33_p3 = 30 - self.player.Stock33_p1 - self.player.Stock33_p2 - self.player.Stock33_p3, Stock34_p1 = 30 - self.player.Stock34_p1, Stock34_p2 = 30 - self.player.Stock34_p1 - self.player.Stock34_p2, Stock34_p3 = 30 - self.player.Stock34_p1 - self.player.Stock34_p2 - self.player.Stock34_p3, Stock35_p1 = 30 - self.player.Stock35_p1, Stock35_p2 = 30 - self.player.Stock35_p1 - self.player.Stock35_p2, Stock35_p3 = 30 - self.player.Stock35_p1 - self.player.Stock35_p2 - self.player.Stock35_p3, Stock36_p1 = 30 - self.player.Stock36_p1, Stock36_p2 = 30 - self.player.Stock36_p1 - self.player.Stock36_p2, Stock36_p3 = 30 - self.player.Stock36_p1 - self.player.Stock36_p2 - self.player.Stock36_p3, StockRow1 = self.showName_nicely(self.player.stockRow1), StockRow2 = self.showName_nicely(self.player.stockRow2), StockRow3 = self.showName_nicely(self.player.stockRow3), StockRow4 = self.showName_nicely(self.player.stockRow4), StockRow5 = self.showName_nicely(self.player.stockRow5), PriceRow1 = self.player.period4Price_row1, PriceRow2 = self.player.period4Price_row2, PriceRow3 = self.player.period4Price_row3, PriceRow4 = self.player.period4Price_row4, PriceRow5 = self.player.period4Price_row5, StockSold3 = self.showName_nicely(self.player.stockSold3), StockSold4 = self.showName_nicely(self.player.stockSold4), SellingPriceSold4 = self.player.sellingPriceSold4, ) ###Show period 5 class Period5_show(Page): form_model = 'player' currentPeriod = 5 def add_plus_to_pos_numbers(self, int_num): if int_num >= 0: return '%+g' % int_num else: return '%-g' % int_num #stock name with space between string and integer def showName_nicely(self, stockName): niceStockname = "Stock " + stockName.split("Stock")[1] return niceStockname #allocate chosen stocks to table rows for display def sorted_nicely(self, l): import re """ Sort the given iterable in the way that humans expect.""" convert = lambda text: int(text) if text.isdigit() else text alphanum_key = lambda key: [ convert(c) for c in re.split('([0-9]+)', key) ] return sorted(l, key = alphanum_key) def showStocks(self): currentPortfolio = self.sorted_nicely(self.participant.vars['Portfolio']) self.player.stockRow1 = currentPortfolio[0] self.player.stockRow2 = currentPortfolio[1] self.player.stockRow3 = currentPortfolio[2] self.player.stockRow4 = currentPortfolio[3] self.player.stockRow5 = currentPortfolio[4] return #period price per row def showPrice(self): self.player.period5Price_row1 = (30 + self.player.sumPriceChangesInPeriod(self.player.stockRow1, self.currentPeriod)) self.player.period5Price_row2 = (30 + self.player.sumPriceChangesInPeriod(self.player.stockRow2, self.currentPeriod)) self.player.period5Price_row3 = (30 + self.player.sumPriceChangesInPeriod(self.player.stockRow3, self.currentPeriod)) self.player.period5Price_row4 = (30 + self.player.sumPriceChangesInPeriod(self.player.stockRow4, self.currentPeriod)) self.player.period5Price_row5 = (30 + self.player.sumPriceChangesInPeriod(self.player.stockRow5, self.currentPeriod)) #sell a stock def sellStock(self): import random if (self.player.Treatment == 'SellingGains'): self.participant.vars['gainersPortfolio'] = self.participant.vars['Portfolio'].copy() for currentStock in self.participant.vars['Portfolio']: if self.player.sumPriceChangesInPeriod(currentStock, self.currentPeriod) <= 0: self.participant.vars['gainersPortfolio'].remove(currentStock) if len(self.participant.vars['gainersPortfolio']) > 0: pickGainerStockFromPortfolio = random.choice(self.participant.vars['gainersPortfolio']) self.participant.vars['Portfolio'].remove(pickGainerStockFromPortfolio) self.player.stockSold5 = pickGainerStockFromPortfolio else: randomStockFromPortfolio = random.choice(self.participant.vars['Portfolio']) self.participant.vars['Portfolio'].remove(randomStockFromPortfolio) self.player.stockSold5 = randomStockFromPortfolio else: self.participant.vars['losersPortfolio'] = self.participant.vars['Portfolio'].copy() for currentStock in self.participant.vars['Portfolio']: if self.player.sumPriceChangesInPeriod(currentStock, self.currentPeriod) >= 0: self.participant.vars['losersPortfolio'].remove(currentStock) if len(self.participant.vars['losersPortfolio']) > 0: pickLoserStockFromPortfolio = random.choice(self.participant.vars['losersPortfolio']) self.participant.vars['Portfolio'].remove(pickLoserStockFromPortfolio) self.player.stockSold5 = pickLoserStockFromPortfolio else: randomStockFromPortfolio = random.choice(self.participant.vars['Portfolio']) self.participant.vars['Portfolio'].remove(randomStockFromPortfolio) self.player.stockSold5 = randomStockFromPortfolio def before_next_page(self): self.sellStock() self.player.sellingPriceSold5 = self.player.sellingPrice(self.player.stockSold5, 5) #variables for template def vars_for_template(self): self.showStocks() self.player.period5PriceChange_row1 = self.player.showPriceChangeForStockName(self.player.stockRow1,self.currentPeriod) self.player.period5PriceChange_row2 = self.player.showPriceChangeForStockName(self.player.stockRow2,self.currentPeriod) self.player.period5PriceChange_row3 = self.player.showPriceChangeForStockName(self.player.stockRow3,self.currentPeriod) self.player.period5PriceChange_row4 = self.player.showPriceChangeForStockName(self.player.stockRow4,self.currentPeriod) self.player.period5PriceChange_row5 = self.player.showPriceChangeForStockName(self.player.stockRow5,self.currentPeriod) self.showPrice() #pre period price per row self.player.preperiod5Price_row1 = self.player.period5Price_row1 - self.player.period5PriceChange_row1 self.player.preperiod5Price_row2 = self.player.period5Price_row2 - self.player.period5PriceChange_row2 self.player.preperiod5Price_row3 = self.player.period5Price_row3 - self.player.period5PriceChange_row3 self.player.preperiod5Price_row4 = self.player.period5Price_row4 - self.player.period5PriceChange_row4 self.player.preperiod5Price_row5 = self.player.period5Price_row5 - self.player.period5PriceChange_row5 return dict( Stock37_p1 = self.add_plus_to_pos_numbers(self.player.Stock37_p1), Stock37_p2 = self.add_plus_to_pos_numbers(self.player.Stock37_p2), Stock37_p3 = self.add_plus_to_pos_numbers(self.player.Stock37_p3), Stock38_p1 = self.add_plus_to_pos_numbers(self.player.Stock38_p1), Stock38_p2 = self.add_plus_to_pos_numbers(self.player.Stock38_p2), Stock38_p3 = self.add_plus_to_pos_numbers(self.player.Stock38_p3), Stock39_p1 = self.add_plus_to_pos_numbers(self.player.Stock39_p1), Stock39_p2 = self.add_plus_to_pos_numbers(self.player.Stock39_p2), Stock39_p3 = self.add_plus_to_pos_numbers(self.player.Stock39_p3), Stock40_p1 = self.add_plus_to_pos_numbers(self.player.Stock40_p1), Stock40_p2 = self.add_plus_to_pos_numbers(self.player.Stock40_p2), Stock40_p3 = self.add_plus_to_pos_numbers(self.player.Stock40_p3), StockRow1 = self.showName_nicely(self.player.stockRow1), StockRow2 = self.showName_nicely(self.player.stockRow2), StockRow3 = self.showName_nicely(self.player.stockRow3), StockRow4 = self.showName_nicely(self.player.stockRow4), StockRow5 = self.showName_nicely(self.player.stockRow5), PriceRow1 = self.player.period5Price_row1, PriceRow2 = self.player.period5Price_row2, PriceRow3 = self.player.period5Price_row3, PriceRow4 = self.player.period5Price_row4, PriceRow5 = self.player.period5Price_row5, PriceChangeRow1 = self.add_plus_to_pos_numbers(self.player.period5PriceChange_row1), PriceChangeRow2 = self.add_plus_to_pos_numbers(self.player.period5PriceChange_row2), PriceChangeRow3 = self.add_plus_to_pos_numbers(self.player.period5PriceChange_row3), PriceChangeRow4 = self.add_plus_to_pos_numbers(self.player.period5PriceChange_row4), PriceChangeRow5 = self.add_plus_to_pos_numbers(self.player.period5PriceChange_row5), PrePriceRow1 = self.player.preperiod5Price_row1, PrePriceRow2 = self.player.preperiod5Price_row2, PrePriceRow3 = self.player.preperiod5Price_row3, PrePriceRow4 = self.player.preperiod5Price_row4, PrePriceRow5 = self.player.preperiod5Price_row5, CashPosition_choice = self.player.currentCash_choice(self.currentPeriod), ) ###Choice period 5 class Period5_choice(Page): form_model = 'player' form_fields = ['Select_choice6'] currentPeriod = 5 #stock name with space between string and integer def showName_nicely(self, stockName): niceStockname = "Stock " + stockName.split("Stock")[1] return niceStockname #add new stock to portfolio def addStock(self): if self.player.Select_choice6 == 37: self.participant.vars['Portfolio'].append('Stock37') elif self.player.Select_choice6 == 38: self.participant.vars['Portfolio'].append('Stock38') elif self.player.Select_choice6 == 39: self.participant.vars['Portfolio'].append('Stock39') else: self.participant.vars['Portfolio'].append('Stock40') def before_next_page(self): self.addStock() #variables for template def vars_for_template(self): return dict( Stock37_p1 = 30 - self.player.Stock37_p1, Stock37_p2 = 30 - self.player.Stock37_p1 - self.player.Stock37_p2, Stock37_p3 = 30 - self.player.Stock37_p1 - self.player.Stock37_p2 - self.player.Stock37_p3, Stock38_p1 = 30 - self.player.Stock38_p1, Stock38_p2 = 30 - self.player.Stock38_p1 - self.player.Stock38_p2, Stock38_p3 = 30 - self.player.Stock38_p1 - self.player.Stock38_p2 - self.player.Stock38_p3, Stock39_p1 = 30 - self.player.Stock39_p1, Stock39_p2 = 30 - self.player.Stock39_p1 - self.player.Stock39_p2, Stock39_p3 = 30 - self.player.Stock39_p1 - self.player.Stock39_p2 - self.player.Stock39_p3, Stock40_p1 = 30 - self.player.Stock40_p1, Stock40_p2 = 30 - self.player.Stock40_p1 - self.player.Stock40_p2, Stock40_p3 = 30 - self.player.Stock40_p1 - self.player.Stock40_p2 - self.player.Stock40_p3, StockRow1 = self.showName_nicely(self.player.stockRow1), StockRow2 = self.showName_nicely(self.player.stockRow2), StockRow3 = self.showName_nicely(self.player.stockRow3), StockRow4 = self.showName_nicely(self.player.stockRow4), StockRow5 = self.showName_nicely(self.player.stockRow5), PriceRow1 = self.player.period5Price_row1, PriceRow2 = self.player.period5Price_row2, PriceRow3 = self.player.period5Price_row3, PriceRow4 = self.player.period5Price_row4, PriceRow5 = self.player.period5Price_row5, StockSold4 = self.showName_nicely(self.player.stockSold4), StockSold5 = self.showName_nicely(self.player.stockSold5), SellingPriceSold5 = self.player.sellingPriceSold5, ) ###Show period 6 class Period6_show(Page): form_model = 'player' currentPeriod = 6 def add_plus_to_pos_numbers(self, int_num): if int_num >= 0: return '%+g' % int_num else: return '%-g' % int_num #stock name with space between string and integer def showName_nicely(self, stockName): niceStockname = "Stock " + stockName.split("Stock")[1] return niceStockname #allocate chosen stocks to table rows for display def sorted_nicely(self, l): import re """ Sort the given iterable in the way that humans expect.""" convert = lambda text: int(text) if text.isdigit() else text alphanum_key = lambda key: [ convert(c) for c in re.split('([0-9]+)', key) ] return sorted(l, key = alphanum_key) def showStocks(self): currentPortfolio = self.sorted_nicely(self.participant.vars['Portfolio']) self.player.stockRow1 = currentPortfolio[0] self.player.stockRow2 = currentPortfolio[1] self.player.stockRow3 = currentPortfolio[2] self.player.stockRow4 = currentPortfolio[3] self.player.stockRow5 = currentPortfolio[4] return #period price per row def showPrice(self): self.player.period6Price_row1 = (30 + self.player.sumPriceChangesInPeriod(self.player.stockRow1, self.currentPeriod)) self.player.period6Price_row2 = (30 + self.player.sumPriceChangesInPeriod(self.player.stockRow2, self.currentPeriod)) self.player.period6Price_row3 = (30 + self.player.sumPriceChangesInPeriod(self.player.stockRow3, self.currentPeriod)) self.player.period6Price_row4 = (30 + self.player.sumPriceChangesInPeriod(self.player.stockRow4, self.currentPeriod)) self.player.period6Price_row5 = (30 + self.player.sumPriceChangesInPeriod(self.player.stockRow5, self.currentPeriod)) #sell a stock def sellStock(self): import random if (self.player.Treatment == 'SellingGains'): self.participant.vars['gainersPortfolio'] = self.participant.vars['Portfolio'].copy() for currentStock in self.participant.vars['Portfolio']: if self.player.sumPriceChangesInPeriod(currentStock, self.currentPeriod) <= 0: self.participant.vars['gainersPortfolio'].remove(currentStock) if len(self.participant.vars['gainersPortfolio']) > 0: pickGainerStockFromPortfolio = random.choice(self.participant.vars['gainersPortfolio']) self.participant.vars['Portfolio'].remove(pickGainerStockFromPortfolio) self.player.stockSold6 = pickGainerStockFromPortfolio else: randomStockFromPortfolio = random.choice(self.participant.vars['Portfolio']) self.participant.vars['Portfolio'].remove(randomStockFromPortfolio) self.player.stockSold6 = randomStockFromPortfolio else: self.participant.vars['losersPortfolio'] = self.participant.vars['Portfolio'].copy() for currentStock in self.participant.vars['Portfolio']: if self.player.sumPriceChangesInPeriod(currentStock, self.currentPeriod) >= 0: self.participant.vars['losersPortfolio'].remove(currentStock) if len(self.participant.vars['losersPortfolio']) > 0: pickLoserStockFromPortfolio = random.choice(self.participant.vars['losersPortfolio']) self.participant.vars['Portfolio'].remove(pickLoserStockFromPortfolio) self.player.stockSold6 = pickLoserStockFromPortfolio else: randomStockFromPortfolio = random.choice(self.participant.vars['Portfolio']) self.participant.vars['Portfolio'].remove(randomStockFromPortfolio) self.player.stockSold6 = randomStockFromPortfolio def before_next_page(self): self.sellStock() self.player.sellingPriceSold6 = self.player.sellingPrice(self.player.stockSold6, 6) #variables for template def vars_for_template(self): self.showStocks() self.player.period6PriceChange_row1 = self.player.showPriceChangeForStockName(self.player.stockRow1,self.currentPeriod) self.player.period6PriceChange_row2 = self.player.showPriceChangeForStockName(self.player.stockRow2,self.currentPeriod) self.player.period6PriceChange_row3 = self.player.showPriceChangeForStockName(self.player.stockRow3,self.currentPeriod) self.player.period6PriceChange_row4 = self.player.showPriceChangeForStockName(self.player.stockRow4,self.currentPeriod) self.player.period6PriceChange_row5 = self.player.showPriceChangeForStockName(self.player.stockRow5,self.currentPeriod) self.showPrice() #pre period price per row self.player.preperiod6Price_row1 = self.player.period6Price_row1 - self.player.period6PriceChange_row1 self.player.preperiod6Price_row2 = self.player.period6Price_row2 - self.player.period6PriceChange_row2 self.player.preperiod6Price_row3 = self.player.period6Price_row3 - self.player.period6PriceChange_row3 self.player.preperiod6Price_row4 = self.player.period6Price_row4 - self.player.period6PriceChange_row4 self.player.preperiod6Price_row5 = self.player.period6Price_row5 - self.player.period6PriceChange_row5 return dict( Stock41_p1 = self.add_plus_to_pos_numbers(self.player.Stock41_p1), Stock41_p2 = self.add_plus_to_pos_numbers(self.player.Stock41_p2), Stock41_p3 = self.add_plus_to_pos_numbers(self.player.Stock41_p3), Stock42_p1 = self.add_plus_to_pos_numbers(self.player.Stock42_p1), Stock42_p2 = self.add_plus_to_pos_numbers(self.player.Stock42_p2), Stock42_p3 = self.add_plus_to_pos_numbers(self.player.Stock42_p3), Stock43_p1 = self.add_plus_to_pos_numbers(self.player.Stock43_p1), Stock43_p2 = self.add_plus_to_pos_numbers(self.player.Stock43_p2), Stock43_p3 = self.add_plus_to_pos_numbers(self.player.Stock43_p3), Stock44_p1 = self.add_plus_to_pos_numbers(self.player.Stock44_p1), Stock44_p2 = self.add_plus_to_pos_numbers(self.player.Stock44_p2), Stock44_p3 = self.add_plus_to_pos_numbers(self.player.Stock44_p3), StockRow1 = self.showName_nicely(self.player.stockRow1), StockRow2 = self.showName_nicely(self.player.stockRow2), StockRow3 = self.showName_nicely(self.player.stockRow3), StockRow4 = self.showName_nicely(self.player.stockRow4), StockRow5 = self.showName_nicely(self.player.stockRow5), PriceRow1 = self.player.period6Price_row1, PriceRow2 = self.player.period6Price_row2, PriceRow3 = self.player.period6Price_row3, PriceRow4 = self.player.period6Price_row4, PriceRow5 = self.player.period6Price_row5, PriceChangeRow1 = self.add_plus_to_pos_numbers(self.player.period6PriceChange_row1), PriceChangeRow2 = self.add_plus_to_pos_numbers(self.player.period6PriceChange_row2), PriceChangeRow3 = self.add_plus_to_pos_numbers(self.player.period6PriceChange_row3), PriceChangeRow4 = self.add_plus_to_pos_numbers(self.player.period6PriceChange_row4), PriceChangeRow5 = self.add_plus_to_pos_numbers(self.player.period6PriceChange_row5), PrePriceRow1 = self.player.preperiod6Price_row1, PrePriceRow2 = self.player.preperiod6Price_row2, PrePriceRow3 = self.player.preperiod6Price_row3, PrePriceRow4 = self.player.preperiod6Price_row4, PrePriceRow5 = self.player.preperiod6Price_row5, CashPosition_choice = self.player.currentCash_choice(self.currentPeriod), ) ###Choice period 6 class Period6_choice(Page): form_model = 'player' form_fields = ['Select_choice7'] currentPeriod = 6 #stock name with space between string and integer def showName_nicely(self, stockName): niceStockname = "Stock " + stockName.split("Stock")[1] return niceStockname #add new stock to portfolio def addStock(self): if self.player.Select_choice7 == 41: self.participant.vars['Portfolio'].append('Stock41') elif self.player.Select_choice7 == 42: self.participant.vars['Portfolio'].append('Stock42') elif self.player.Select_choice7 == 43: self.participant.vars['Portfolio'].append('Stock43') else: self.participant.vars['Portfolio'].append('Stock44') def before_next_page(self): self.addStock() #variables for template def vars_for_template(self): return dict( Stock41_p1 = 30 - self.player.Stock41_p1, Stock41_p2 = 30 - self.player.Stock41_p1 - self.player.Stock41_p2, Stock41_p3 = 30 - self.player.Stock41_p1 - self.player.Stock41_p2 - self.player.Stock41_p3, Stock42_p1 = 30 - self.player.Stock42_p1, Stock42_p2 = 30 - self.player.Stock42_p1 - self.player.Stock42_p2, Stock42_p3 = 30 - self.player.Stock42_p1 - self.player.Stock42_p2 - self.player.Stock42_p3, Stock43_p1 = 30 - self.player.Stock43_p1, Stock43_p2 = 30 - self.player.Stock43_p1 - self.player.Stock43_p2, Stock43_p3 = 30 - self.player.Stock43_p1 - self.player.Stock43_p2 - self.player.Stock43_p3, Stock44_p1 = 30 - self.player.Stock44_p1, Stock44_p2 = 30 - self.player.Stock44_p1 - self.player.Stock44_p2, Stock44_p3 = 30 - self.player.Stock44_p1 - self.player.Stock44_p2 - self.player.Stock44_p3, StockRow1 = self.showName_nicely(self.player.stockRow1), StockRow2 = self.showName_nicely(self.player.stockRow2), StockRow3 = self.showName_nicely(self.player.stockRow3), StockRow4 = self.showName_nicely(self.player.stockRow4), StockRow5 = self.showName_nicely(self.player.stockRow5), PriceRow1 = self.player.period6Price_row1, PriceRow2 = self.player.period6Price_row2, PriceRow3 = self.player.period6Price_row3, PriceRow4 = self.player.period6Price_row4, PriceRow5 = self.player.period6Price_row5, StockSold5 = self.showName_nicely(self.player.stockSold5), StockSold6 = self.showName_nicely(self.player.stockSold6), SellingPriceSold6 = self.player.sellingPriceSold6, ) ### period 7 class Period7_show(Page): form_model = 'player' currentPeriod = 7 #stock name with space between string and integer def showName_nicely(self, stockName): niceStockname = "Stock " + stockName.split("Stock")[1] return niceStockname #allocate chosen stocks to table rows for display def sorted_nicely(self, l): import re """ Sort the given iterable in the way that humans expect.""" convert = lambda text: int(text) if text.isdigit() else text alphanum_key = lambda key: [ convert(c) for c in re.split('([0-9]+)', key) ] return sorted(l, key = alphanum_key) def showStocks(self): currentPortfolio = self.sorted_nicely(self.participant.vars['Portfolio']) self.player.stockRow1 = currentPortfolio[0] self.player.stockRow2 = currentPortfolio[1] self.player.stockRow3 = currentPortfolio[2] self.player.stockRow4 = currentPortfolio[3] self.player.stockRow5 = currentPortfolio[4] return #period price per row def showPrice(self): self.player.period7Price_row1 = (30 + self.player.sumPriceChangesInPeriod(self.player.stockRow1, self.currentPeriod)) self.player.period7Price_row2 = (30 + self.player.sumPriceChangesInPeriod(self.player.stockRow2, self.currentPeriod)) self.player.period7Price_row3 = (30 + self.player.sumPriceChangesInPeriod(self.player.stockRow3, self.currentPeriod)) self.player.period7Price_row4 = (30 + self.player.sumPriceChangesInPeriod(self.player.stockRow4, self.currentPeriod)) self.player.period7Price_row5 = (30 + self.player.sumPriceChangesInPeriod(self.player.stockRow5, self.currentPeriod)) #sell all stocks def sellStock(self): self.player.stockSold7 = self.player.stockRow1 self.player.stockSold8 = self.player.stockRow2 self.player.stockSold9 = self.player.stockRow3 self.player.stockSold10 = self.player.stockRow4 self.player.stockSold11 = self.player.stockRow5 #variables for template def vars_for_template(self): self.showStocks() self.player.period7PriceChange_row1 = self.player.showPriceChangeForStockName(self.player.stockRow1,self.currentPeriod) self.player.period7PriceChange_row2 = self.player.showPriceChangeForStockName(self.player.stockRow2,self.currentPeriod) self.player.period7PriceChange_row3 = self.player.showPriceChangeForStockName(self.player.stockRow3,self.currentPeriod) self.player.period7PriceChange_row4 = self.player.showPriceChangeForStockName(self.player.stockRow4,self.currentPeriod) self.player.period7PriceChange_row5 = self.player.showPriceChangeForStockName(self.player.stockRow5,self.currentPeriod) self.showPrice() self.sellStock() self.player.sellingPriceSold7 = self.player.sellingPrice(self.player.stockSold7, 7) self.player.sellingPriceSold8 = self.player.sellingPrice(self.player.stockSold8, 7) self.player.sellingPriceSold9 = self.player.sellingPrice(self.player.stockSold9, 7) self.player.sellingPriceSold10 = self.player.sellingPrice(self.player.stockSold10, 7) self.player.sellingPriceSold11 = self.player.sellingPrice(self.player.stockSold11, 7) #pre period price per row self.player.preperiod7Price_row1 = self.player.period7Price_row1 - self.player.period7PriceChange_row1 self.player.preperiod7Price_row2 = self.player.period7Price_row2 - self.player.period7PriceChange_row2 self.player.preperiod7Price_row3 = self.player.period7Price_row3 - self.player.period7PriceChange_row3 self.player.preperiod7Price_row4 = self.player.period7Price_row4 - self.player.period7PriceChange_row4 self.player.preperiod7Price_row5 = self.player.period7Price_row5 - self.player.period7PriceChange_row5 return dict( StockRow1 = self.showName_nicely(self.player.stockRow1), StockRow2 = self.showName_nicely(self.player.stockRow2), StockRow3 = self.showName_nicely(self.player.stockRow3), StockRow4 = self.showName_nicely(self.player.stockRow4), StockRow5 = self.showName_nicely(self.player.stockRow5), PriceRow1 = self.player.period7Price_row1, PriceRow2 = self.player.period7Price_row2, PriceRow3 = self.player.period7Price_row3, PriceRow4 = self.player.period7Price_row4, PriceRow5 = self.player.period7Price_row5, StockSold6 = self.showName_nicely(self.player.stockSold6), StockSold7 = self.showName_nicely(self.player.stockSold7), SellingPriceSold6 = self.player.sellingPriceSold6, PrePriceRow1 = self.player.preperiod7Price_row1, PrePriceRow2 = self.player.preperiod7Price_row2, PrePriceRow3 = self.player.preperiod7Price_row3, PrePriceRow4 = self.player.preperiod7Price_row4, PrePriceRow5 = self.player.preperiod7Price_row5, CashPosition_choice = self.player.currentCash_choice(self.currentPeriod), ValuePeriod7 = self.player.sellingPriceSold11 + self.player.sellingPriceSold10 + self.player.sellingPriceSold9 + self.player.sellingPriceSold8 + self.player.sellingPriceSold7, ) ###IntroQuestions class Questions(Page): form_model = 'player' ###Confidence1 class Confidence1(Page): form_model = 'player' form_fields = ['confidence1'] ###Surprise class Surprise(Page): form_model = 'player' form_fields = ['surprise'] def calculateInterval(self, confidenceValue): self.player.surpriseValueAnte = confidenceValue -10 self.player.surpriseValuePost = confidenceValue +10 def createSurpriseSentence(self, value1, value2, confidenceValue): if confidenceValue == 11: self.player.surpriseSentence = 'less than ' + str(value1) elif confidenceValue == 0: self.player.surpriseSentence = 'more than ' + str(value2) else: self.player.surpriseSentence = 'less than ' + str(value1) + ' or more than ' + str(value2) def vars_for_template(self): self.calculateInterval(self.player.confidence3) self.createSurpriseSentence(self.player.surpriseValueAnte, self.player.surpriseValuePost, self.player.confidence1) return dict( SurpriseAnte = self.player.surpriseValueAnte, SurprisePost = self.player.surpriseValuePost, SurpriseSentence = self.player.surpriseSentence, ) ###Confidence2 class Confidence2(Page): form_model = 'player' form_fields = ['confidence2'] ###Confidence3 class Confidence3(Page): form_model = 'player' form_fields = ['confidence3'] ###Memory class Memory(Page): form_model = 'player' form_fields = ['memory'] ###Task 2 class Task2(Page): form_model = 'player' form_fields = ['Select_stock50', 'Select_stock51', 'Select_stock52', 'Select_stock53', 'Select_stock54', 'Select_stock55', 'Select_stock56', 'Select_stock57', 'Select_stock58', 'Select_stock59', 'Select_stock60', 'Select_stock61', 'Increased_shares_stock50', 'Increased_shares_stock51', 'Increased_shares_stock52', 'Increased_shares_stock53', 'Increased_shares_stock54', 'Increased_shares_stock55', 'Increased_shares_stock56', 'Increased_shares_stock57', 'Increased_shares_stock58', 'Increased_shares_stock59', 'Increased_shares_stock60', 'Increased_shares_stock61', 'TimeFirstClick_stock50', 'TimeFirstClick_stock51', 'TimeFirstClick_stock52', 'TimeFirstClick_stock53', 'TimeFirstClick_stock54', 'TimeFirstClick_stock55', 'TimeFirstClick_stock56', 'TimeFirstClick_stock57', 'TimeFirstClick_stock58', 'TimeFirstClick_stock59', 'TimeFirstClick_stock60', 'TimeFirstClick_stock61','TimeSecondClick_stock50', 'TimeSecondClick_stock51', 'TimeSecondClick_stock52', 'TimeSecondClick_stock53', 'TimeSecondClick_stock54', 'TimeSecondClick_stock55', 'TimeSecondClick_stock56', 'TimeSecondClick_stock57', 'TimeSecondClick_stock58', 'TimeSecondClick_stock59', 'TimeSecondClick_stock60', 'TimeSecondClick_stock61'] def error_message(self, values): print('values is', values) listSelectedStocks = [values['Select_stock50'], values['Select_stock51'], values['Select_stock52'], values['Select_stock53'], values['Select_stock54'], values['Select_stock55'], values['Select_stock56'], values['Select_stock57'], values['Select_stock58'], values['Select_stock59'], values['Select_stock60'], values['Select_stock61']] if listSelectedStocks.count(None) < 9: return 'You can only choose 3 stocks.' elif listSelectedStocks.count(None) > 9: return 'You have to choose 3 stocks.' def vars_for_template(self): self.player.soldList() return dict( Stock50_p1 = 30 - self.player.Stock50_p1, Stock50_p2 = 30 - self.player.Stock50_p1 - self.player.Stock50_p2, Stock50_p3 = 30 - self.player.Stock50_p1 - self.player.Stock50_p2 - self.player.Stock50_p3, Stock51_p1 = 30 - self.player.Stock51_p1, Stock51_p2 = 30 - self.player.Stock51_p1 - self.player.Stock51_p2, Stock51_p3 = 30 - self.player.Stock51_p1 - self.player.Stock51_p2 - self.player.Stock51_p3, Stock52_p1 = 30 - self.player.Stock52_p1, Stock52_p2 = 30 - self.player.Stock52_p1 - self.player.Stock52_p2, Stock52_p3 = 30 - self.player.Stock52_p1 - self.player.Stock52_p2 - self.player.Stock52_p3, Stock53_p1 = 30 - self.player.Stock53_p1, Stock53_p2 = 30 - self.player.Stock53_p1 - self.player.Stock53_p2, Stock53_p3 = 30 - self.player.Stock53_p1 - self.player.Stock53_p2 - self.player.Stock53_p3, Stock54_p1 = 30 - self.player.Stock54_p1, Stock54_p2 = 30 - self.player.Stock54_p1 - self.player.Stock54_p2, Stock54_p3 = 30 - self.player.Stock54_p1 - self.player.Stock54_p2 - self.player.Stock54_p3, Stock55_p1 = 30 - self.player.Stock55_p1, Stock55_p2 = 30 - self.player.Stock55_p1 - self.player.Stock55_p2, Stock55_p3 = 30 - self.player.Stock55_p1 - self.player.Stock55_p2 - self.player.Stock55_p3, Stock56_p1 = 30 - self.player.Stock56_p1, Stock56_p2 = 30 - self.player.Stock56_p1 - self.player.Stock56_p2, Stock56_p3 = 30 - self.player.Stock56_p1 - self.player.Stock56_p2 - self.player.Stock56_p3, Stock57_p1 = 30 - self.player.Stock57_p1, Stock57_p2 = 30 - self.player.Stock57_p1 - self.player.Stock57_p2, Stock57_p3 = 30 - self.player.Stock57_p1 - self.player.Stock57_p2 - self.player.Stock57_p3, Stock58_p1 = 30 - self.player.Stock58_p1, Stock58_p2 = 30 - self.player.Stock58_p1 - self.player.Stock58_p2, Stock58_p3 = 30 - self.player.Stock58_p1 - self.player.Stock58_p2 - self.player.Stock58_p3, Stock59_p1 = 30 - self.player.Stock59_p1, Stock59_p2 = 30 - self.player.Stock59_p1 - self.player.Stock59_p2, Stock59_p3 = 30 - self.player.Stock59_p1 - self.player.Stock59_p2 - self.player.Stock59_p3, Stock60_p1 = 30 - self.player.Stock60_p1, Stock60_p2 = 30 - self.player.Stock60_p1 - self.player.Stock60_p2, Stock60_p3 = 30 - self.player.Stock60_p1 - self.player.Stock60_p2 - self.player.Stock60_p3, Stock61_p1 = 30 - self.player.Stock61_p1, Stock61_p2 = 30 - self.player.Stock61_p1 - self.player.Stock61_p2, Stock61_p3 = 30 - self.player.Stock61_p1 - self.player.Stock61_p2 - self.player.Stock61_p3, ) ###Task 2 show class Task2_show(Page): form_model = 'player' #create portfolio task 2 def createPortfolioTask2(self): self.participant.vars['Portfolio2'] = [] if self.player.Select_stock50 == 'on': self.participant.vars['Portfolio2'].append('Stock50') if self.player.Select_stock51 == 'on': self.participant.vars['Portfolio2'].append('Stock51') if self.player.Select_stock52 == 'on': self.participant.vars['Portfolio2'].append('Stock52') if self.player.Select_stock53 == 'on': self.participant.vars['Portfolio2'].append('Stock53') if self.player.Select_stock54 == 'on': self.participant.vars['Portfolio2'].append('Stock54') if self.player.Select_stock55 == 'on': self.participant.vars['Portfolio2'].append('Stock55') if self.player.Select_stock56 == 'on': self.participant.vars['Portfolio2'].append('Stock56') if self.player.Select_stock57 == 'on': self.participant.vars['Portfolio2'].append('Stock57') if self.player.Select_stock58 == 'on': self.participant.vars['Portfolio2'].append('Stock58') if self.player.Select_stock59 == 'on': self.participant.vars['Portfolio2'].append('Stock59') if self.player.Select_stock60 == 'on': self.participant.vars['Portfolio2'].append('Stock60') if self.player.Select_stock61 == 'on': self.participant.vars['Portfolio2'].append('Stock61') #stock name with space between string and integer def showName_nicely(self, stockName): niceStockname = "Stock " + stockName.split("Stock")[1] return niceStockname #allocate chosen stocks to table rows for display def sorted_nicely(self, l): import re """ Sort the given iterable in the way that humans expect.""" convert = lambda text: int(text) if text.isdigit() else text alphanum_key = lambda key: [ convert(c) for c in re.split('([0-9]+)', key) ] return sorted(l, key = alphanum_key) def showStocks(self): currentPortfolio = self.sorted_nicely(self.participant.vars['Portfolio2']) self.player.stockRow1_Task2 = currentPortfolio[0] self.player.stockRow2_Task2 = currentPortfolio[1] self.player.stockRow3_Task2 = currentPortfolio[2] return #price per period per row def showPriceFinal(self, name): if name == 'Stock50': price = 30 + self.player.Stock50_p4 + self.player.Stock50_p5 + self.player.Stock50_p6 if name == 'Stock51': price = 30 + self.player.Stock51_p4 + self.player.Stock51_p5 + self.player.Stock51_p6 if name == 'Stock52': price = 30 + self.player.Stock52_p4 + self.player.Stock52_p5 + self.player.Stock52_p6 if name == 'Stock53': price = 30 + self.player.Stock53_p4 + self.player.Stock53_p5 + self.player.Stock53_p6 if name == 'Stock54': price = 30 + self.player.Stock54_p4 + self.player.Stock54_p5 + self.player.Stock54_p6 if name == 'Stock55': price = 30 + self.player.Stock55_p4 + self.player.Stock55_p5 + self.player.Stock55_p6 if name == 'Stock56': price = 30 + self.player.Stock56_p4 + self.player.Stock56_p5 + self.player.Stock56_p6 if name == 'Stock57': price = 30 + self.player.Stock57_p4 + self.player.Stock57_p5 + self.player.Stock57_p6 if name == 'Stock58': price = 30 + self.player.Stock58_p4 + self.player.Stock58_p5 + self.player.Stock58_p6 if name == 'Stock59': price = 30 + self.player.Stock59_p4 + self.player.Stock59_p5 + self.player.Stock59_p6 if name == 'Stock60': price = 30 + self.player.Stock60_p4 + self.player.Stock60_p5 + self.player.Stock60_p6 if name == 'Stock61': price = 30 + self.player.Stock61_p4 + self.player.Stock61_p5 + self.player.Stock61_p6 return price def showPrePrice1(self, name): if name == 'Stock50': price = 30 + self.player.Stock50_p4 if name == 'Stock51': price = 30 + self.player.Stock51_p4 if name == 'Stock52': price = 30 + self.player.Stock52_p4 if name == 'Stock53': price = 30 + self.player.Stock53_p4 if name == 'Stock54': price = 30 + self.player.Stock54_p4 if name == 'Stock55': price = 30 + self.player.Stock55_p4 if name == 'Stock56': price = 30 + self.player.Stock56_p4 if name == 'Stock57': price = 30 + self.player.Stock57_p4 if name == 'Stock58': price = 30 + self.player.Stock58_p4 if name == 'Stock59': price = 30 + self.player.Stock59_p4 if name == 'Stock60': price = 30 + self.player.Stock60_p4 if name == 'Stock61': price = 30 + self.player.Stock61_p4 return price def showPrePrice2(self, name): if name == 'Stock50': price = 30 + self.player.Stock50_p4 + self.player.Stock50_p5 if name == 'Stock51': price = 30 + self.player.Stock51_p4 + self.player.Stock51_p5 if name == 'Stock52': price = 30 + self.player.Stock52_p4 + self.player.Stock52_p5 if name == 'Stock53': price = 30 + self.player.Stock53_p4 + self.player.Stock53_p5 if name == 'Stock54': price = 30 + self.player.Stock54_p4 + self.player.Stock54_p5 if name == 'Stock55': price = 30 + self.player.Stock55_p4 + self.player.Stock55_p5 if name == 'Stock56': price = 30 + self.player.Stock56_p4 + self.player.Stock56_p5 if name == 'Stock57': price = 30 + self.player.Stock57_p4 + self.player.Stock57_p5 if name == 'Stock58': price = 30 + self.player.Stock58_p4 + self.player.Stock58_p5 if name == 'Stock59': price = 30 + self.player.Stock59_p4 + self.player.Stock59_p5 if name == 'Stock60': price = 30 + self.player.Stock60_p4 + self.player.Stock60_p5 if name == 'Stock61': price = 30 + self.player.Stock61_p4 + self.player.Stock61_p5 return price def getNumberShares(self, name): number = 0 if name == 'Stock50' and self.player.Increased_shares_stock50 == None: number = 0 if name == 'Stock50' and self.player.Increased_shares_stock50 == 0: number = 0 if name == 'Stock50' and self.player.Increased_shares_stock50 == 1: number = 1 if name == 'Stock50' and self.player.Increased_shares_stock50 == 2: number = 2 if name == 'Stock51' and self.player.Increased_shares_stock51 == None: number = 0 if name == 'Stock51' and self.player.Increased_shares_stock51 == 0: number = 0 if name == 'Stock51' and self.player.Increased_shares_stock51 == 1: number = 1 if name == 'Stock51' and self.player.Increased_shares_stock51 == 2: number = 2 if name == 'Stock52' and self.player.Increased_shares_stock52 == None: number = 0 if name == 'Stock52' and self.player.Increased_shares_stock52 == 0: number = 0 if name == 'Stock52' and self.player.Increased_shares_stock52 == 1: number = 1 if name == 'Stock52' and self.player.Increased_shares_stock52 == 2: number = 2 if name == 'Stock53' and self.player.Increased_shares_stock53 == None: number = 0 if name == 'Stock53' and self.player.Increased_shares_stock53 == 0: number = 0 if name == 'Stock53' and self.player.Increased_shares_stock53 == 1: number = 1 if name == 'Stock53' and self.player.Increased_shares_stock53 == 2: number = 2 if name == 'Stock54' and self.player.Increased_shares_stock54 == None: number = 0 if name == 'Stock54' and self.player.Increased_shares_stock54 == 0: number = 0 if name == 'Stock54' and self.player.Increased_shares_stock54 == 1: number = 1 if name == 'Stock54' and self.player.Increased_shares_stock54 == 2: number = 2 if name == 'Stock55' and self.player.Increased_shares_stock55 == None: number = 0 if name == 'Stock55' and self.player.Increased_shares_stock55 == 0: number = 0 if name == 'Stock55' and self.player.Increased_shares_stock55 == 1: number = 1 if name == 'Stock55' and self.player.Increased_shares_stock55 == 2: number = 2 if name == 'Stock56' and self.player.Increased_shares_stock56 == None: number = 0 if name == 'Stock56' and self.player.Increased_shares_stock56 == 0: number = 0 if name == 'Stock56' and self.player.Increased_shares_stock56 == 1: number = 1 if name == 'Stock56' and self.player.Increased_shares_stock56 == 2: number = 2 if name == 'Stock57' and self.player.Increased_shares_stock57 == None: number = 0 if name == 'Stock57' and self.player.Increased_shares_stock57 == 0: number = 0 if name == 'Stock57' and self.player.Increased_shares_stock57 == 1: number = 1 if name == 'Stock57' and self.player.Increased_shares_stock57 == 2: number = 2 if name == 'Stock58' and self.player.Increased_shares_stock58 == None: number = 0 if name == 'Stock58' and self.player.Increased_shares_stock58 == 0: number = 0 if name == 'Stock58' and self.player.Increased_shares_stock58 == 1: number = 1 if name == 'Stock58' and self.player.Increased_shares_stock58 == 2: number = 2 if name == 'Stock59' and self.player.Increased_shares_stock59 == None: number = 0 if name == 'Stock59' and self.player.Increased_shares_stock59 == 0: number = 0 if name == 'Stock59' and self.player.Increased_shares_stock59 == 1: number = 1 if name == 'Stock59' and self.player.Increased_shares_stock59 == 2: number = 2 if name == 'Stock60' and self.player.Increased_shares_stock60 == None: number = 0 if name == 'Stock60' and self.player.Increased_shares_stock60 == 0: number = 0 if name == 'Stock60' and self.player.Increased_shares_stock60 == 1: number = 1 if name == 'Stock60' and self.player.Increased_shares_stock60 == 2: number = 2 if name == 'Stock61' and self.player.Increased_shares_stock61 == None: number = 0 if name == 'Stock61' and self.player.Increased_shares_stock61 == 0: number = 0 if name == 'Stock61' and self.player.Increased_shares_stock61 == 1: number = 1 if name == 'Stock61' and self.player.Increased_shares_stock61 == 2: number = 2 return number def getProceedsbyName(self, name): if name == 'Stock50': proceeds = 30 + self.player.Stock50_p4 + self.player.Stock50_p5 + self.player.Stock50_p6 if name == 'Stock51': proceeds = 30 + self.player.Stock51_p4 + self.player.Stock51_p5 + self.player.Stock51_p6 if name == 'Stock52': proceeds = 30 + self.player.Stock52_p4 + self.player.Stock52_p5 + self.player.Stock52_p6 if name == 'Stock53': proceeds = 30 + self.player.Stock53_p4 + self.player.Stock53_p5 + self.player.Stock53_p6 if name == 'Stock54': proceeds = 30 + self.player.Stock54_p4 + self.player.Stock54_p5 + self.player.Stock54_p6 if name == 'Stock55': proceeds = 30 + self.player.Stock55_p4 + self.player.Stock55_p5 + self.player.Stock55_p6 if name == 'Stock56': proceeds = 30 + self.player.Stock56_p4 + self.player.Stock56_p5 + self.player.Stock56_p6 if name == 'Stock57': proceeds = 30 + self.player.Stock57_p4 + self.player.Stock57_p5 + self.player.Stock57_p6 if name == 'Stock58': proceeds = 30 + self.player.Stock58_p4 + self.player.Stock58_p5 + self.player.Stock58_p6 if name == 'Stock59': proceeds = 30 + self.player.Stock59_p4 + self.player.Stock59_p5 + self.player.Stock59_p6 if name == 'Stock60': proceeds = 30 + self.player.Stock60_p4 + self.player.Stock60_p5 + self.player.Stock60_p6 if name == 'Stock61': proceeds = 30 + self.player.Stock61_p4 + self.player.Stock61_p5 + self.player.Stock61_p6 return proceeds def calculateTask2Totals(self): list2 = self.participant.vars['Portfolio2'] additionalShares = 0 for stock in list2: additionalShares = additionalShares + self.getNumberShares(stock) high_fee = 0 for stock in list2: if self.getNumberShares(stock) == 2: high_fee = high_fee +1 self.player.numberHighFeeTotal = high_fee self.player.numberAdditionalShares = additionalShares self.player.numberTotalShares = self.player.numberAdditionalShares + 3 self.player.costsPurchaseTask2 = self.player.numberTotalShares * Constants.stockPrice self.player.costsFeesTask2 = self.player.numberAdditionalShares * Constants.fee + self.player.numberHighFeeTotal * (2*Constants.fee_high_diff) self.player.task2Proceeds = 0 portfolio2 = self.participant.vars['Portfolio2'] for s in portfolio2: self.player.task2Proceeds = self.player.task2Proceeds + ((self.getNumberShares(s)+1) * self.getProceedsbyName(s)) self.player.task2Totals = Constants.endowment - (self.player.numberTotalShares * Constants.stockPrice) - (self.player.numberAdditionalShares * Constants.fee) - (self.player.numberHighFeeTotal * 1) + self.player.task2Proceeds def vars_for_template(self): self.createPortfolioTask2() self.showStocks() self.calculateTask2Totals() self.player.sharesRow1_Task2 = self.getNumberShares(self.player.stockRow1_Task2) + 1 self.player.sharesRow2_Task2 = self.getNumberShares(self.player.stockRow2_Task2) + 1 self.player.sharesRow3_Task2 = self.getNumberShares(self.player.stockRow3_Task2) + 1 self.player.priceRow1_Task2 = self.showPriceFinal(self.player.stockRow1_Task2) self.player.priceRow2_Task2 = self.showPriceFinal(self.player.stockRow2_Task2) self.player.priceRow3_Task2 = self.showPriceFinal(self.player.stockRow3_Task2) self.player.prePrice1Row1_Task2 = self.showPrePrice1(self.player.stockRow1_Task2) self.player.prePrice1Row2_Task2 = self.showPrePrice1(self.player.stockRow2_Task2) self.player.prePrice1Row3_Task2 = self.showPrePrice1(self.player.stockRow3_Task2) self.player.prePrice2Row1_Task2 = self.showPrePrice2(self.player.stockRow1_Task2) self.player.prePrice2Row2_Task2 = self.showPrePrice2(self.player.stockRow2_Task2) self.player.prePrice2Row3_Task2 = self.showPrePrice2(self.player.stockRow3_Task2) return dict( StockRow1_Task2 = self.showName_nicely(self.player.stockRow1_Task2), StockRow2_Task2 = self.showName_nicely(self.player.stockRow2_Task2), StockRow3_Task2 = self.showName_nicely(self.player.stockRow3_Task2), PrePrice1Row1_Task2 = self.player.prePrice1Row1_Task2, PrePrice1Row2_Task2 = self.player.prePrice1Row2_Task2, PrePrice1Row3_Task2 = self.player.prePrice1Row3_Task2, PrePrice2Row1_Task2 = self.player.prePrice2Row1_Task2, PrePrice2Row2_Task2 = self.player.prePrice2Row2_Task2, PrePrice2Row3_Task2 = self.player.prePrice2Row3_Task2, PriceRow1_Task2 = self.player.priceRow1_Task2, PriceRow2_Task2 = self.player.priceRow2_Task2, PriceRow3_Task2 = self.player.priceRow3_Task2, SharesRow1_Task2 = self.player.sharesRow1_Task2, SharesRow2_Task2 = self.player.sharesRow2_Task2, SharesRow3_Task2 = self.player.sharesRow3_Task2, Proceeds_Row1_Task2 = (self.player.sharesRow1_Task2 * self.player.priceRow1_Task2), Proceeds_Row2_Task2 = (self.player.sharesRow2_Task2 * self.player.priceRow2_Task2), Proceeds_Row3_Task2 = (self.player.sharesRow3_Task2 * self.player.priceRow3_Task2), Cash = self.player.task2Totals, ) ###Earnings class Earnings1(Page): form_model = 'player' def getProceedsbyName(self, name): if name == 'Stock50': proceeds = 30 + self.player.Stock50_p4 + self.player.Stock50_p5 + self.player.Stock50_p6 if name == 'Stock51': proceeds = 30 + self.player.Stock51_p4 + self.player.Stock51_p5 + self.player.Stock51_p6 if name == 'Stock52': proceeds = 30 + self.player.Stock52_p4 + self.player.Stock52_p5 + self.player.Stock52_p6 if name == 'Stock53': proceeds = 30 + self.player.Stock53_p4 + self.player.Stock53_p5 + self.player.Stock53_p6 if name == 'Stock54': proceeds = 30 + self.player.Stock54_p4 + self.player.Stock54_p5 + self.player.Stock54_p6 if name == 'Stock55': proceeds = 30 + self.player.Stock55_p4 + self.player.Stock55_p5 + self.player.Stock55_p6 if name == 'Stock56': proceeds = 30 + self.player.Stock56_p4 + self.player.Stock56_p5 + self.player.Stock56_p6 if name == 'Stock57': proceeds = 30 + self.player.Stock57_p4 + self.player.Stock57_p5 + self.player.Stock57_p6 if name == 'Stock58': proceeds = 30 + self.player.Stock58_p4 + self.player.Stock58_p5 + self.player.Stock58_p6 if name == 'Stock59': proceeds = 30 + self.player.Stock59_p4 + self.player.Stock59_p5 + self.player.Stock59_p6 if name == 'Stock60': proceeds = 30 + self.player.Stock60_p4 + self.player.Stock60_p5 + self.player.Stock60_p6 if name == 'Stock61': proceeds = 30 + self.player.Stock61_p4 + self.player.Stock61_p5 + self.player.Stock61_p6 return proceeds def getNumberShares(self, name): number = 0 if name == 'Stock50' and self.player.Increased_shares_stock50 == None: number = 0 if name == 'Stock50' and self.player.Increased_shares_stock50 == 0: number = 0 if name == 'Stock50' and self.player.Increased_shares_stock50 == 1: number = 1 if name == 'Stock50' and self.player.Increased_shares_stock50 == 2: number = 2 if name == 'Stock51' and self.player.Increased_shares_stock51 == None: number = 0 if name == 'Stock51' and self.player.Increased_shares_stock51 == 0: number = 0 if name == 'Stock51' and self.player.Increased_shares_stock51 == 1: number = 1 if name == 'Stock51' and self.player.Increased_shares_stock51 == 2: number = 2 if name == 'Stock52' and self.player.Increased_shares_stock52 == None: number = 0 if name == 'Stock52' and self.player.Increased_shares_stock52 == 0: number = 0 if name == 'Stock52' and self.player.Increased_shares_stock52 == 1: number = 1 if name == 'Stock52' and self.player.Increased_shares_stock52 == 2: number = 2 if name == 'Stock53' and self.player.Increased_shares_stock53 == None: number = 0 if name == 'Stock53' and self.player.Increased_shares_stock53 == 0: number = 0 if name == 'Stock53' and self.player.Increased_shares_stock53 == 1: number = 1 if name == 'Stock53' and self.player.Increased_shares_stock53 == 2: number = 2 if name == 'Stock54' and self.player.Increased_shares_stock54 == None: number = 0 if name == 'Stock54' and self.player.Increased_shares_stock54 == 0: number = 0 if name == 'Stock54' and self.player.Increased_shares_stock54 == 1: number = 1 if name == 'Stock54' and self.player.Increased_shares_stock54 == 2: number = 2 if name == 'Stock55' and self.player.Increased_shares_stock55 == None: number = 0 if name == 'Stock55' and self.player.Increased_shares_stock55 == 0: number = 0 if name == 'Stock55' and self.player.Increased_shares_stock55 == 1: number = 1 if name == 'Stock55' and self.player.Increased_shares_stock55 == 2: number = 2 if name == 'Stock56' and self.player.Increased_shares_stock56 == None: number = 0 if name == 'Stock56' and self.player.Increased_shares_stock56 == 0: number = 0 if name == 'Stock56' and self.player.Increased_shares_stock56 == 1: number = 1 if name == 'Stock56' and self.player.Increased_shares_stock56 == 2: number = 2 if name == 'Stock57' and self.player.Increased_shares_stock57 == None: number = 0 if name == 'Stock57' and self.player.Increased_shares_stock57 == 0: number = 0 if name == 'Stock57' and self.player.Increased_shares_stock57 == 1: number = 1 if name == 'Stock57' and self.player.Increased_shares_stock57 == 2: number = 2 if name == 'Stock58' and self.player.Increased_shares_stock58 == None: number = 0 if name == 'Stock58' and self.player.Increased_shares_stock58 == 0: number = 0 if name == 'Stock58' and self.player.Increased_shares_stock58 == 1: number = 1 if name == 'Stock58' and self.player.Increased_shares_stock58 == 2: number = 2 if name == 'Stock59' and self.player.Increased_shares_stock59 == None: number = 0 if name == 'Stock59' and self.player.Increased_shares_stock59 == 0: number = 0 if name == 'Stock59' and self.player.Increased_shares_stock59 == 1: number = 1 if name == 'Stock59' and self.player.Increased_shares_stock59 == 2: number = 2 if name == 'Stock60' and self.player.Increased_shares_stock60 == None: number = 0 if name == 'Stock60' and self.player.Increased_shares_stock60 == 0: number = 0 if name == 'Stock60' and self.player.Increased_shares_stock60 == 1: number = 1 if name == 'Stock60' and self.player.Increased_shares_stock60 == 2: number = 2 if name == 'Stock61' and self.player.Increased_shares_stock61 == None: number = 0 if name == 'Stock61' and self.player.Increased_shares_stock61 == 0: number = 0 if name == 'Stock61' and self.player.Increased_shares_stock61 == 1: number = 1 if name == 'Stock61' and self.player.Increased_shares_stock61 == 2: number = 2 return number def calculateTask1Earnings(self): self.player.task1Earnings = (self.player.sellingPriceSold1 + self.player.sellingPriceSold2 + self.player.sellingPriceSold3 + self.player.sellingPriceSold4 + self.player.sellingPriceSold5 + self.player.sellingPriceSold6 + self.player.sellingPriceSold7 + self.player.sellingPriceSold8 + self.player.sellingPriceSold9 + self.player.sellingPriceSold10 + self.player.sellingPriceSold11 - 30)/100 def calculateTask2Earnings(self): list2 = self.participant.vars['Portfolio2'] additionalShares = 0 for stock in list2: additionalShares = additionalShares + self.getNumberShares(stock) high_fee = 0 for stock in list2: if self.getNumberShares(stock) == 2: high_fee = high_fee +1 self.player.numberHighFeeTotal = high_fee self.player.numberAdditionalShares = additionalShares self.player.numberTotalShares = self.player.numberAdditionalShares + 3 self.player.costsPurchaseTask2 = self.player.numberTotalShares * Constants.stockPrice self.player.costsFeesTask2 = self.player.numberAdditionalShares * Constants.fee + self.player.numberHighFeeTotal * (2*Constants.fee_high_diff) self.player.task2Proceeds = 0 portfolio2 = self.participant.vars['Portfolio2'] for s in portfolio2: self.player.task2Proceeds = self.player.task2Proceeds + ((self.getNumberShares(s)+1) * self.getProceedsbyName(s)) self.player.task2Totals = Constants.endowment - (self.player.numberTotalShares * Constants.stockPrice) - (self.player.numberAdditionalShares * Constants.fee) - (self.player.numberHighFeeTotal * 1) + self.player.task2Proceeds self.player.task2Earnings = self.player.task2Totals / 100 def drawPaymentTask(self): import random self.player.paymentTask = random.choice(['Investment Task 1', 'Investment Task 2']) def calculateBonusPayment(self, task): if task == 'Investment Task 1': self.player.bonusPayment = self.player.task1Earnings elif task == 'Investment Task 2': self.player.bonusPayment = self.player.task2Earnings else: self.player.bonusPayment = -99 #oTree payoff variable def payoff(self): self.participant.payoff = 4 + self.player.bonusPayment def task1Proceeds(self): self.player.task1Proceeds = (self.player.task1Earnings * 100) + 30 def task1Totals(self): self.player.task1Totals = self.player.task1Earnings * 100 def vars_for_template(self): self.calculateTask1Earnings() self.calculateTask2Earnings() self.drawPaymentTask() self.calculateBonusPayment(self.player.paymentTask) self.payoff() self.task1Proceeds() self.task1Totals() return dict( Task1Earnings = str(f'{self.player.task1Earnings:.2f}'), Task2Earnings = str(f'{self.player.task2Earnings:.2f}'), PaymentTask = self.player.paymentTask, BonusPayment = str(f'{self.player.bonusPayment:.2f}'), Task1Proceeds = str(f'{self.player.task1Proceeds:.0f}'), Task1Totals = str(f'{self.player.task1Totals:.0f}'), NumberHighTypes = self.player.number_highStocks, Task2Proceeds = str(f'{self.player.task2Proceeds:.0f}'), Task2Totals = str(f'{self.player.task2Totals:.0f}'), CostsPurchaseTask2 = str(f'{self.player.costsPurchaseTask2:.0f}'), CostsFeesTask2 = str(f'{self.player.costsFeesTask2:.0f}'), ) class Question_understanding(Page): form_model = 'player' form_fields = ['Understanding'] class Question_comments(Page): form_model = 'player' form_fields = ['Comments'] class EndPage(Page): form_model = 'player' def is_displayed(self): return (self.player.numberWrongControl1 + self.player.numberWrongControl5 + self.player.numberWrongControl3 + self.player.numberWrongControl4) == 0 def getLink(self): if self.session.label == 'to': self.player.Link = 'https://app.prolific.co/submissions/complete?cc=44196AE8' elif self.session.label == 'lj': self.player.Link = 'https://app.prolific.co/submissions/complete?cc=36A94B3E' else: self.player.Link = '' def vars_for_template(self): self.getLink() self.is_displayed() return dict( Link = self.player.Link, ) class EndPage2(Page): form_model = 'player' def is_displayed(self): return (self.player.numberWrongControl1 + self.player.numberWrongControl5 + self.player.numberWrongControl3 + self.player.numberWrongControl4) > 0 def getLink(self): if self.session.label == 'to': self.player.Link = 'https://app.prolific.co/submissions/complete?cc=44196AE8' elif self.session.label == 'lj': self.player.Link = 'https://app.prolific.co/submissions/complete?cc=36A94B3E' else: self.player.Link = '' def vars_for_template(self): self.getLink() self.is_displayed() return dict( Link = self.player.Link, ) page_sequence = [Introduction, Consent, Instructions_invest1_1, Instructions_invest1_2, Control_questions1, Control_questions5, Control_questions3, Control_questions4, Instructions_invest1_3, Period0, Question_understanding, Question_comments, EndPage, EndPage2]