def get_test_data(interval): mongo = _mongo() redis = _redis() # redis.lpush('testing_date') # price_data = redis.get_list('testing_data') # print(len(price_data)) # if len(price_data) == 0: # price_data = mongo.get_testing_price_data() # price_data = list(map(lambda p: Price.from_origin(p).to_dict(), price_data)) # [redis.lpush('testing_data', Price.from_dict(p).to_json()) for p in price_data] # else: # price_data = map(lambda p: Price.from_json(p).to_dict(), price_data) price_data = mongo.get_testing_price_data() price_data = list(map(lambda p: Price.from_origin(p).to_dict(), price_data)) print(price_data[0]) df = pd.DataFrame(price_data) df['time'] = pd.to_datetime(df['time']) df = df.set_index('time') df_resampled = df['ask'].resample(interval).ohlc() df_resampled['date'] = df_resampled.index.to_series() df_resampled['volume'] = 0 # df_bid = df['bid'].resample(interval).ohlc() # df_resampled = pd.concat([df_ask, df_bid], axis=1, keys=['ask', 'bid']) df_resampled.fillna(method='ffill', inplace=True) # print(df_resampled.tail()) df_resampled = df_resampled.reset_index(drop=True) # del df_resampled['time'] # x = df_resampled[['date', 'open', 'high', 'low', 'close', 'volume']] print("interval", interval, "len", len(df_resampled)) return df_resampled
def get_testing_data(interval): mongo = _mongo() redis = _redis() # redis.lpush('testing_date') price_data = redis.get_list('testing_data') print(len(price_data)) if len(price_data) == 0: price_data = mongo.get_testing_price_data() price_data = list( map(lambda p: Price.from_origin(p).to_dict(), price_data)) [ redis.lpush('testing_data', Price.from_dict(p).to_json()) for p in price_data ] else: price_data = map(lambda p: Price.from_json(p).to_dict(), price_data) df = pd.DataFrame(price_data) df['time'] = pd.to_datetime(df['time']) df = df.set_index('time') df_resampled = df['ask'].resample(interval).ohlc() # df_bid = df['bid'].resample(interval).ohlc() # df_resampled = pd.concat([df_ask, df_bid], axis=1, keys=['ask', 'bid']) df_resampled.fillna(method='ffill', inplace=True) # print(df_resampled.tail()) print("interval", interval, "len", len(df_resampled.index)) return df_resampled
import pandas as pd import sys from Trader import Trader from Types import Price from Types import PreOrder from Constants import env from Constants import trd from Stategy.DefaultScalp import get_trade from _rabbit import _rabbit from _redis import _redis from _time import _time module_name = "TradeMaker" rabbit = _rabbit() redis = _redis() # trader = Trader(*Trader.get_dependencies()) trader = Trader(*Trader.get_dependencies_bt()) price_list = [] def callback(ch, method, properties, body): # start timer. t0 = _time.time() # trading configurables. position_size, take_profit_pips, stop_loss_pips, time_in_force = 50, 0.0001, 0.0005, "GTC" price = Price.from_json(body) print(module_name, price.time, price.instrument, price.ask, price.bid)