コード例 #1
0
            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()}")
コード例 #2
0
        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")
コード例 #3
0
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")
コード例 #4
0
                                          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")