experiment_chosen = extract_new_experiment(coin, algorithm, run_colab=run_in_colab) if experiment_chosen == False: break scores = build_model(experiment_chosen, settings, df, normalized=True) data_to_store = {**scores, **experiment_chosen} data_to_store['experiment'] = "experiment_1" data_to_store["experiment_date"] = settings["experiment_date"] for key, value in data_to_store.items( ): #make sure that they have the correct datatype before inserting data_to_store[key] = convert_datatype(key, value) insert_rows(coinname=settings["prediction_dataset_name"], type_update=settings['prediction_database_name'], dataset=[data_to_store]) print(f"Run finished, inserted: {data_to_store}") except KeyboardInterrupt: print("Training models interrupted") print('start adding current experiment to the list of experiments') add_cancelled_experiment(coin, algorithm, experiment_chosen) send_message_telegram( "Experiment 1", f"Experiment 1 is stopped for {socket.gethostname()}") raise TypeError("Quitting now ") #send message after experiment is finished for instance send_message_telegram( "Experiment 1", f"Experiment 1 is finished for {socket.gethostname()}")
final_model = df_cleaned.sort_values('accuracy_val', ascending=False).iloc[0] # take the window and prediction if input("Manually select window and size?? Type --> YES ").lower( ) == "yes": window = int(input("Type window value")) prediction = int(input("Type prediction ahead value")) else: window, prediction = final_model[[ 'window_size', 'time_ahead_prediction' ]] experiment_2_values = { 'window': [int(window)], 'prediction': [int(prediction)] } data_to_store = {**experiment_2_values, **values_for_hyperopt} add_update(dataset=f"{coin}_{algorithm}_experiments", updates=data_to_store, document="experiment2_settings") try: print(prepare_text_for_message(data_to_store)) send_message_telegram("init_experiment_2", prepare_text_for_message(data_to_store)) except Exception as e: # in case the highlight gives are send normal string print(e) print(str(data_to_store)) send_message_telegram("init_experiment_2", str(data_to_store)) else: print("Not correct password, finish")
if __name__ == "__main__": if input("Type Yes if you want to continue: ").lower() == 'yes': if len(sys.argv) - 1 != 2: raise TypeError( "Please give arguments. Arg 1 = coin, Arg2 = algorithm") coin = sys.argv[1].upper() algorithm = sys.argv[2].upper() os.makedirs(f"{coin}_{algorithm}", exist_ok=True) #make folder if not yet exists settings_general = retrieve_updates( dataset=f"{coin}_{algorithm}_experiments", document="experiment_general_settings") df = retrieve_data_predictors(settings_general) final_windows, dataset_prepared = correlation_tests( df, settings_general) prediction_ahead = prediction #change this upper side of the file experiment_1 = prepare_experiments(final_windows, prediction_ahead) add_update(dataset=f"{coin}_{algorithm}_experiments", updates=experiment_1, document="experiment1_settings") final_text = f""" Experiment 1 succesfully initialized for {coin} {algorithm}. windows are: {final_windows} \npredictions are: {prediction_ahead} Now run experiment 1 """ print(final_text) send_message_telegram("init_experiment_1", final_text) else: print("Not correct password, finish")
percentage_variance=0.99, type_scaler='min_max_scaler', min_cor=0.4) columns = [col for col in columns if "price_change_lag_" not in col ] #otherwise it queries the change cols if 'last_start_time' not in columns: #add last_start_time since always needed columns.append('last_start_time') if f"{coin}__ticker_info__close_price" not in columns: #add close price since always needed columns.append(f"{coin}__ticker_info__close_price") settings['columns'] = columns create_dataset(settings["prediction_dataset_name"]) make_new_table(settings["prediction_dataset_name"], settings["prediction_database_name"], schema=dataset_schema) print("Check if data needs to be updated") check_for_updates_needed( settings) # if the dataset is not updated yet do this #add settings to firestore add_update(dataset=f"{coin}_{algorithm}_experiments", updates=settings, document="experiment_general_settings") print( f"Experiment succesfully initialized for {coin} {algorithm}. Now run the file to initialize experiment 1" ) send_message_telegram( "init_experiment_general", f"{coin}_{algorithm} is initialized. Start initialize experiment 1" ) else: print("Not correct password, finish")