Sample codes and details

Input:

Weight Generator

  • Weight Part

import pandas as pd
import numpy as np
import itertools

def generate_weights_with_constraints_25(num_weights, num_simulation=70):
    possible_values = [0, 0.25, 0.5, 0.75, 1]
    simulations = []
    
    # Generate all possible combinations
    all_combinations = list(itertools.product(possible_values, repeat=num_weights))
    valid_combinations = [combo for combo in all_combinations if np.isclose(sum(combo), 1)]
    
    simulations = np.random.choice(len(valid_combinations), num_simulation, replace=False)
    simulations = [valid_combinations[i] for i in simulations]

    return simulations

# For 0.25 interval, total number of simulation are 70
num_weights = 5
num_simulation = 70

simulations = generate_weights_with_constraints_25(num_weights, num_simulation)
simulations = pd.DataFrame(simulations
  • Allocation Part

  • Data Combination

Simulation Configurations Input:

  • funding rate weights input

  • allocation weights input

Historical Funding Rates Data:

Creating feasible DataFrame

Math functions & formulas:

  • Token Scores Function:

    'token_score_func(symbol, simulations_id, model_num)'

  • Simulation Realized APR Function:

    'simulation_apr_func(Tokens_names, simulations_id, model_num)'

Output

  • Funding rate weight and Portfolio allocation configurations for monitor

max_realized_apr

Last updated