Forráskód Böngészése

[research/lotterysim] del replace background with background_with_apy in lottery.py

police 3 éve
szülő
commit
f00cc91f9a

+ 3 - 3
script/research/lotterysim/core/constants.py

@@ -12,17 +12,17 @@ F_MIN = 0.0001
 F_MAX = 0.9999
 
 REWARD_MIN = 0
-REWARD_MAX = 100
+REWARD_MAX = 1000
 
 SLOT = 90
 ONE_YEAR = 365.25*24*60*60/SLOT
 TARGET_APY = 10
 
-PRIMARY_REWARD_TARGET = 60 # ratio of staked tokens
+PRIMARY_REWARD_TARGET = 70 # ratio of staked tokens
 SECONDARY_LEAD_TARGET = 1 #number of lead per slot
 
 EPSILON = 1
-EPOCH_LENGTH = 10
+EPOCH_LENGTH = 50
 L_HP = Num(L)
 F_MIN_HP = Num(F_MIN)
 F_MAX_HP = Num(F_MAX)

+ 0 - 39
script/research/lotterysim/core/lottery.py

@@ -20,45 +20,6 @@ class DarkfiTable:
     def add_darkie(self, darkie):
         self.darkies+=[darkie]
 
-    def background(self, rand_running_time=True, debug=False, hp=True):
-        self.debug=debug
-        self.start_time=time.time()
-        feedback=0 # number leads in previous slot
-        count = 0
-        # random running time
-        rand_running_time = random.randint(1,self.running_time) if rand_running_time else self.running_time
-        self.running_time = rand_running_time
-        #if rand_running_time and debug:
-            #print("random running time: {}".format(self.running_time))
-            #print('running time: {}'.format(self.running_time))
-        while count < self.running_time:
-            winners=0
-            total_vesting_stake = 0
-            f = self.secondary_pid.pid_clipped(float(feedback),  debug)
-            #note! thread overhead is 10X slower than sequential node execution!
-            for i in range(len(self.darkies)):
-                self.darkies[i].set_sigma_feedback(self.Sigma, feedback, f, count, hp)
-                self.darkies[i].run(self.rewards, hp)
-                total_vesting_stake+=self.darkies[i].update_vesting()
-            for i in range(len(self.darkies)):
-                winners += self.darkies[i].won
-                print('reward: {}'.format(self.rewards[-1]))
-                self.darkies[i].update_stake(self.rewards[-1])
-
-            if count%EPOCH_LENGTH == 0:
-                acc = self.secondary_pid.acc()
-                reward = self.primary_pid.pid_clipped(float(self.avg_apy()), debug)
-                self.rewards += [reward]
-            feedback = winners
-            if winners==1:
-                if count >= ERC20DRK:
-                    self.Sigma += 1
-                for i in range(len(self.darkies)):
-                    self.darkies[i].finalize_stake()
-            count+=1
-        self.end_time=time.time()
-        return self.secondary_pid.acc()
-
     def background_with_apy(self, rand_running_time=True, debug=False, hp=True):
         self.debug=debug
         self.start_time=time.time()

+ 1 - 1
script/research/lotterysim/log/highest_gain.txt

@@ -1 +1 @@
-avg(acc): 0.11457085828343312, avg(apy): 0.25534075980633647, avg(reward): 59.39393939393939, avg(stake ratio): 16.24329884629891, kp: 0.06000000000000011, ki:-0.19999999999999796, kd:0.0499999999999996
+avg(acc): 0.11844586923128297, avg(apy): 1.2942975104128505, avg(reward): 40.70980392156862, avg(stake ratio): 50.98011902568952, kp: 0.2900000000000016, ki:0.4500000000000003, kd:-0.09999999999999953

+ 2 - 2
script/research/lotterysim/primary_discrete_auto_crawler.py

@@ -37,8 +37,8 @@ highest_gain = (KP_SEARCH, KI_SEARCH, KD_SEARCH)
 
 parser = ArgumentParser()
 parser.add_argument('-p', '--high-precision', action='store_true')
-parser.add_argument('-r', '--randomize-nodes', action='store_true')
-parser.add_argument('-t', '--rand-running-time', action='store_true')
+parser.add_argument('-r', '--randomize-nodes', action='store_false')
+parser.add_argument('-t', '--rand-running-time', action='store_false')
 parser.add_argument('-d', '--debug', action='store_false')
 args = parser.parse_args()
 high_precision = args.high_precision

+ 6 - 7
script/research/lotterysim/secondary_discrete_auto_crawler.py

@@ -6,17 +6,16 @@ from tqdm import tqdm
 from core.strategy import SigmoidStrategy
 import os
 
-
 AVG_LEN = 5
 
-KP_STEP=0.01
-KP_SEARCH= -0.04019999999996926
+KP_STEP=0.3
+KP_SEARCH= 0.03
 
-KI_STEP=0.01
-KI_SEARCH=-0.002299999823093906
+KI_STEP=0.3
+KI_SEARCH=1.95
 
-KD_STEP=0.01
-KD_SEARCH=0.03840000000000491
+KD_STEP=0.3
+KD_SEARCH=-0.95
 
 EPSILON=0.0001
 RUNNING_TIME=1000