launch_financial_batch_process_randomized

Description

Enterprise users only.

Launches a collection of financial processes with randomly chosen parameters.

Simple Example

def StartBatchProcesses(api_key,eids,params_template,total_processes,total_running,prefix,netDefOverride,netDefManual=None,codeString=None):
        pq = FinancialBatchOptimizer.pq 
        param_list =[]
        netDefLoaded = {}
        if not netDefManual == None:
            for netdef in netDefManual:
                param_list.append(netdef['strategy']['dependencies']['input'])
                netDefLoaded = netdef # Populate the default network definition

        eids_to_add = eids
        for eid in eids_to_add:
            arrdl = pq.download_experiment({ 'api_key' : api_key,'experiment_id':eid},remote=False)
            netDefLoaded = FinancialBatchOptimizer.getSettings(arrdl)
            codeString = FinancialBatchOptimizer.getFinancialCode(arrdl)
            #print(netDefLoaded)
            param_list.append( netDefLoaded['strategy']['dependencies']['input'] )
            import pprint
            print('')
            print(eid)
            pprint.pprint(netDefLoaded['strategy']['dependencies']['input'] )

        assert len(netDefLoaded) > 0
        assert len(codeString) > 0

        factor = 1.0
        count_batch_processes = total_processes/len(param_list)
        count_batch_running = total_running/len(param_list)
        batch_eids = []
        for pars_found in param_list:
            selected_keys = []
            for k in params_template:
                selected_keys.append({'key':k,'location':params_template[k]['location']})

            params_new = {}
            for k in params_template:
                dev = params_template[k]['deviation']
                val = float(pars_found[k])
                if dev > (params_template[k]['max'] - params_template[k]['min'])/2:
                    dev = (params_template[k]['max']-params_template[k]['min'])/2

                if float(dev + val)  > params_template[k]['max']:
                    val = val - (float(dev +val) - params_template[k]['max'])

                if  val - dev  < params_template[k]['min']:
                    val = val + (params_template[k]['min'] - (val - dev) )

                params_new[k] = {'value':val,'deviation':dev,'max':params_template[k]['max'],'min':params_template[k]['min'],}

            params = params_new
            netDefLoaded.update(netDefOverride)
            print('OVERRIDE')
            print(netDefOverride)

            q = {'api_key' : api_key,
                 'name_prefix' : prefix,
                 'process_settings' : {},
                'launch_settings' : {},
                 'experiment_params':params,
                 'experiment_count':int(count_batch_processes),
                 'experiment_keys':selected_keys,
                 'network_def' : netDefLoaded,
                 'max_running':int(count_batch_running),
                 'batch_sleep':15,
                 'code' : codeString}
            #import pprint
            #pprint.pprint(q)

            dat = pq.launch_financial_batch_process_randomized(q,remote=False)
            print(dat)
            eid = dat['experiment_id']     
            batch_eids.append(eid)
            print(eid)
        return [batch_eids,codeString]

Simple Example Output

Failure Examples

Failure Examples Output

Three Examples

Three Examples Output