#!/usr/bin/env python # coding: utf-8 # This notebook is designed for ray integrations for signals # # lets load askbid candlesticks file. # In[20]: import market_trade.constants import market_trade.dataloader candlesticks_filepaths = [filepath for filepath in market_trade.constants.CANDLESTICK_DATASETS_PATH.iterdir()] candlesticks_filepath = candlesticks_filepaths[0] duka_interface = market_trade.dataloader.DukaMTInterface(candlesticks_filepath) duka_interface.bid_candlesticks # Let's test signal. # In[21]: import market_trade.signals.Signal1 bid_candlesticks_df = duka_interface.bid_candlesticks[:10000] ind_params = {'MeanType': 'SMA', 'window': 5, 'valueType': 'low', 'kDev': 2} indEl1 = { 'df': bid_candlesticks_df, 'params': ind_params, 'needFig': False, 'showOnlyIndex': False, 'drawFig': True } signal_result = market_trade.signals.Signal1.SignalBollingerBands1({'BB': indEl1}) signal_result.analiz # Now let's design ray trainable. # In[22]: def trainable(config): ind_params = {'MeanType': 'SMA', 'window': config['window'], 'valueType': config['value_type'], 'kDev': config['k_dev']} indEl1 = { 'df': bid_candlesticks_df, 'params': ind_params, 'needFig': False, 'showOnlyIndex': False, 'drawFig': True } signal_result = market_trade.signals.Signal1.SignalBollingerBands1({'BB': indEl1}) tune.report(accuracy=signal_result.analiz["toch"]) # Let's create config space. # In[23]: from ray import tune config = { 'window': tune.qrandint(5,100,5), 'value_type': tune.choice(['open', 'low', 'high', 'close']), 'k_dev': tune.uniform(1,4) } # Let's run ray tune # In[24]: analysis = tune.run(trainable, config=config, num_samples=100, mode='max', metric='accuracy') # Let's see who was the best # In[31]: analysis.best_config