49 lines
1.1 KiB
Python
49 lines
1.1 KiB
Python
from inspect import indentsize
|
|
import numpy as np
|
|
import math
|
|
|
|
# prints formatted price
|
|
|
|
|
|
def formatPrice(n):
|
|
return ("-$" if n < 0 else "$") + "{0:.2f}".format(abs(n))
|
|
|
|
|
|
def formatPercent(n):
|
|
return "{0:.2f}".format(n*100) + "%"
|
|
|
|
# returns the vector containing stock data from a fixed file
|
|
|
|
|
|
def getStockDataVec(data_dir, key, index=1000):
|
|
vec = []
|
|
lines = open(data_dir + key + ".csv", "r").read().splitlines()
|
|
|
|
for line in lines[1:]:
|
|
l1 = line.split(",")[4] # [1:7] --> not use by no have " "
|
|
# vec.append(float(line.split(",")[1])*volume)
|
|
vec.append(float(l1)*index)
|
|
# list1 = [float(x) for x in l1]
|
|
# print('num', float(l1)*volume)
|
|
|
|
return vec
|
|
|
|
# returns the sigmoid
|
|
|
|
|
|
def sigmoid(x):
|
|
return 1 / (1 + math.exp(-x))
|
|
|
|
# returns an an n-day state representation ending at time t
|
|
|
|
|
|
def getState(data, t, n):
|
|
d = t - n + 1
|
|
block = data[d:t + 1] if d >= 0 else -d * \
|
|
[data[0]] + data[0:t + 1] # pad with t0
|
|
res = []
|
|
for i in range(n - 1):
|
|
res.append(sigmoid(block[i + 1] - block[i]))
|
|
|
|
return np.array(res) # [res]
|