def test_mfdfa_save_load(): mfdfa = fathon.MFDFA(fu.toAggregated(ts)) # save and load with empty results mfdfa.saveObject(get_object_path('mfdfa_obj')) n_load = fu.getObjectMember(get_object_path('mfdfa_obj', ext=True), 'n') F_load = fu.getObjectMember(get_object_path('mfdfa_obj', ext=True), 'F') q_list_load = fu.getObjectMember(get_object_path('mfdfa_obj', ext=True), 'qList') list_h_load = fu.getObjectMember(get_object_path('mfdfa_obj', ext=True), 'listH') assert np.array_equal(n_load, []) assert np.array_equal(F_load, []) assert np.array_equal(q_list_load, []) assert np.array_equal(list_h_load, []) #save and load with results n, F = mfdfa.computeFlucVec(fu.linRangeByStep(10, 500), fu.linRangeByStep(-1, 1)) H, I = mfdfa.fitFlucVec(100, 300) mfdfa.saveObject(get_object_path('mfdfa_obj')) n_load = fu.getObjectMember(get_object_path('mfdfa_obj', ext=True), 'n') F_load = fu.getObjectMember(get_object_path('mfdfa_obj', ext=True), 'F') q_list_load = fu.getObjectMember(get_object_path('mfdfa_obj', ext=True), 'qList') list_h_load = fu.getObjectMember(get_object_path('mfdfa_obj', ext=True), 'listH') assert np.array_equal(n_load, n) assert np.array_equal(F_load, F) assert np.array_equal(q_list_load, fu.linRangeByStep(-1, 1)) assert np.array_equal(list_h_load, H) # MFDFA from file mfdfa_2 = fathon.MFDFA(get_object_path('mfdfa_obj', ext=True)) H_2, I_2 = mfdfa_2.fitFlucVec(100, 300) assert np.array_equal(H_2, H) assert np.array_equal(I_2, I)
def test_dfa_lin_step(): pydfa = fathon.DFA(ts1) winSizes = fu.linRangeByStep(10, 200) n1, F1 = pydfa.computeFlucVec(winSizes, revSeg=True) H1, H_int1 = pydfa.fitFlucVec() assert math.isclose(H1, 0.7982194289592676)
def test_dcca(): pydcca = fathon.DCCA(ts1, ts2) winSizes = fu.linRangeByStep(10, 200, step=2) n, F = pydcca.computeFlucVec(winSizes, polOrd=2) H, H_int = pydcca.fitFlucVec() assert math.isclose(H, 0.9604004237165071)
def test_mfdfa(): pymfdfa = fathon.MFDFA(ts3) qs = np.arange(-3, 3, 1) winSizes = fu.linRangeByStep(10, 200) n2, F2 = pymfdfa.computeFlucVec(winSizes, qs, revSeg=True) H2, H_int2 = pymfdfa.fitFlucVec() assert math.isclose(H2[2], 1.1956312585360254)
def test_rho_thresholds(): np.random.seed(42) pydcca = fathon.DCCA() winSizes = fu.linRangeByStep(10, 200, step=2) n4, int1, int2 = pydcca.rhoThresholds(len(ts1), winSizes, 10, 0.95) assert math.isclose(int1[53], 0.2619278369335029) and math.isclose( int2[53], -0.41952479444776136)
def test_rho_thresholds(): np.random.seed(42) pydcca = fathon.DCCA() winSizes = fu.linRangeByStep(10, 200, step=2) n4, int1, int2 = pydcca.rhoThresholds(len(ts1), winSizes, 10, 0.95) assert math.isclose(int1[53], 0.03131478865331007) and math.isclose( int2[53], -0.05672796198121624)
def test_multifractal_crosscorr_spectrum(): pymfdcca = fathon.MFDCCA(ts1, ts3) qs = np.arange(-3, 4, 1) winSizes = fu.linRangeByStep(10, 200, step=2) n2, F2 = pymfdcca.computeFlucVec(winSizes, qs, revSeg=True) H2, H_int2 = pymfdcca.fitFlucVec() a2, m2 = pymfdcca.computeMultifractalSpectrum() assert math.isclose(m2[1], 0.9355109825234913)
def test_mfdcca(): pymfdcca = fathon.MFDCCA(ts1, ts3) qs = np.arange(-3, 4, 1) winSizes = fu.linRangeByStep(10, 200, step=2) n2, F2 = pymfdcca.computeFlucVec(winSizes, qs, revSeg=True) H2, H_int2 = pymfdcca.fitFlucVec() assert math.isclose(H2[3], 0.9702432083885226) assert math.isclose(H2[6], 0.8611368333991902)
def test_multifractal_spectrum(): pymfdfa = fathon.MFDFA(ts3) qs = np.arange(-3, 3, 1) winSizes = fu.linRangeByStep(10, 200) n2, F2 = pymfdfa.computeFlucVec(winSizes, qs, revSeg=True) H2, H_int2 = pymfdfa.fitFlucVec() a2, m2 = pymfdfa.computeMultifractalSpectrum() assert math.isclose(m2[4], 0.8445200259231695)
def test_dcca_3(): pydcca = fathon.DCCA(ts1, ts2) winSizes = fu.linRangeByStep(10, 200, step=2) n, F = pydcca.computeFlucVec(winSizes, polOrd=1, absVals=False, overlap=False, revSeg=True) assert math.isclose(F[23], 8.611065211944974)
def test_dcca_2(): pydcca = fathon.DCCA(ts1, ts2) winSizes = fu.linRangeByStep(10, 200, step=2) n, F = pydcca.computeFlucVec(winSizes, polOrd=2, absVals=False, overlap=False, revSeg=False) assert math.isclose(F[9], 0.08470236108797902)
def test_dcca_5(): pydcca = fathon.DCCA(ts1, ts2) winSizes = fu.linRangeByStep(10, 200, step=2) n, F = pydcca.computeFlucVec(winSizes, polOrd=1, absVals=True, overlap=False, revSeg=False) H, H_int = pydcca.fitFlucVec() assert math.isclose(H, 0.8259796205478073)
def test_dfa_save_load(): dfa = fathon.DFA(fu.toAggregated(ts)) # save and load with empty results dfa.saveObject(get_object_path('dfa_obj')) n_load = fu.getObjectMember(get_object_path('dfa_obj', ext=True), 'n') F_load = fu.getObjectMember(get_object_path('dfa_obj', ext=True), 'F') assert np.array_equal(n_load, []) assert np.array_equal(F_load, []) #save and load with results n, F = dfa.computeFlucVec(fu.linRangeByStep(10, 500)) H, I = dfa.fitFlucVec(100, 300) dfa.saveObject(get_object_path('dfa_obj')) n_load = fu.getObjectMember(get_object_path('dfa_obj', ext=True), 'n') F_load = fu.getObjectMember(get_object_path('dfa_obj', ext=True), 'F') assert np.array_equal(n_load, n) assert np.array_equal(F_load, F) # DFA from file dfa_2 = fathon.DFA(get_object_path('dfa_obj', ext=True)) H_2, I_2 = dfa_2.fitFlucVec(100, 300) assert H_2 == H assert I_2 == I
# symbol = sorted(symbols)[symbolIdx] # print(symbol) # quotesFileCh = os.path.join(dataFolder, quotes[symbolIdx]) # tradesFileCh = os.path.join(dataFolder, trades[symbolIdx]) # # # get common Dates # quotesDates = sorted([f.split(".csv")[0] for f in os.listdir(quotesFileCh)]) # tradesDates = sorted([f.split(".csv")[0] for f in os.listdir(tradesFileCh)]) # intersectionDates = list(set(quotesDates).intersection(tradesDates)) trades_cols = ['size', 'time', 'type', 'value'] experimentsDestination = '/media/ak/T7/MFDFA Experiments' if __name__ == '__main__': # params i need for fathon winSizes = fu.linRangeByStep(5, 50) revSeg = True qs = np.arange(-3, 4, 0.1) polOrd = 3 # load all teh dataframes at once with this start = time.time() print(start) # go through all the dataframes and take out n, f and h, h_ intercept # somehow one list comprehension blows up in memory h_dict = defaultdict(dict) symbolIdx = 2 # symbol 3 has problems symbol = sorted(symbols)[symbolIdx] print(symbol)
def test_rho_2(): pydcca = fathon.DCCA(ts1, ts2) winSizes = fu.linRangeByStep(10, 200, step=2) n3, rho = pydcca.computeRho(winSizes, overlap=False, revSeg=False) assert math.isclose(rho[28], 0.39579454461767466)
def test_rho(): pydcca = fathon.DCCA(ts1, ts2) winSizes = fu.linRangeByStep(10, 200, step=2) n3, rho = pydcca.computeRho(winSizes) assert math.isclose(rho[53], 0.48503322468665233)
import numpy as np import matplotlib.pyplot as plt import fathon from fathon import fathonUtils as fu print('This is fathon v{}'.format(fathon.__version__)) a = np.random.randn(10000) b = np.random.randn(10000) a = fu.toAggregated(a) b = fu.toAggregated(b) pymfdcca = fathon.MFDCCA(a, b) winSizes = fu.linRangeByStep(10, 2000) qs = np.arange(-3, 4, 0.1) revSeg = True polOrd = 1 n, F = pymfdcca.computeFlucVec(winSizes, qs, revSeg=revSeg, polOrd=polOrd) list_H, list_H_intercept = pymfdcca.fitFlucVec() plt.plot(np.log(n), np.log(F[0, :]), 'ro') plt.plot(np.log(n), list_H_intercept[0] + list_H[0] * np.log(n), 'k-', label='h_{:.1f} = {:.2f}'.format(qs[0], list_H[0])) half_idx = int(len(qs) / 2) plt.plot(np.log(n), np.log(F[half_idx, :]), 'co')
def test_dcca_save_load(): dcca = fathon.DCCA(fu.toAggregated(ts), fu.toAggregated(ts)) # save and load with empty results dcca.saveObject(get_object_path('dcca_obj')) n_load = fu.getObjectMember(get_object_path('dcca_obj', ext=True), 'n') F_load = fu.getObjectMember(get_object_path('dcca_obj', ext=True), 'F') n_rho_load = fu.getObjectMember(get_object_path('dcca_obj', ext=True), 'nRho') rho_load = fu.getObjectMember(get_object_path('dcca_obj', ext=True), 'rho') n_thr_load = fu.getObjectMember(get_object_path('dcca_obj', ext=True), 'nThr') conf_up_load = fu.getObjectMember(get_object_path('dcca_obj', ext=True), 'confUp') conf_down_load = fu.getObjectMember(get_object_path('dcca_obj', ext=True), 'confDown') assert np.array_equal(n_load, []) assert np.array_equal(F_load, []) assert np.array_equal(n_rho_load, []) assert np.array_equal(rho_load, []) assert np.array_equal(n_thr_load, []) assert np.array_equal(conf_up_load, []) assert np.array_equal(conf_down_load, []) #save and load with results n, F = dcca.computeFlucVec(fu.linRangeByStep(10, 200)) H, I = dcca.fitFlucVec(100, 150) dcca.saveObject(get_object_path('dcca_obj')) n_load = fu.getObjectMember(get_object_path('dcca_obj', ext=True), 'n') F_load = fu.getObjectMember(get_object_path('dcca_obj', ext=True), 'F') n_rho_load = fu.getObjectMember(get_object_path('dcca_obj', ext=True), 'nRho') rho_load = fu.getObjectMember(get_object_path('dcca_obj', ext=True), 'rho') n_thr_load = fu.getObjectMember(get_object_path('dcca_obj', ext=True), 'nThr') conf_up_load = fu.getObjectMember(get_object_path('dcca_obj', ext=True), 'confUp') conf_down_load = fu.getObjectMember(get_object_path('dcca_obj', ext=True), 'confDown') assert np.array_equal(n_load, n) assert np.array_equal(F_load, F) assert np.array_equal(n_rho_load, []) assert np.array_equal(rho_load, []) assert np.array_equal(n_thr_load, []) assert np.array_equal(conf_up_load, []) assert np.array_equal(conf_down_load, []) # DCCA from file dcca_2 = fathon.DCCA(get_object_path('dcca_obj', ext=True)) H_2, I_2 = dcca_2.fitFlucVec(100, 150) assert np.array_equal(H_2, H) assert np.array_equal(I_2, I) # rho n_rho, rho = dcca.computeRho(fu.linRangeByStep(10, 30)) dcca.saveObject(get_object_path('dcca_obj')) n_rho_load = fu.getObjectMember(get_object_path('dcca_obj', ext=True), 'nRho') rho_load = fu.getObjectMember(get_object_path('dcca_obj', ext=True), 'rho') n_thr_load = fu.getObjectMember(get_object_path('dcca_obj', ext=True), 'nThr') conf_up_load = fu.getObjectMember(get_object_path('dcca_obj', ext=True), 'confUp') conf_down_load = fu.getObjectMember(get_object_path('dcca_obj', ext=True), 'confDown') assert np.array_equal(n_load, n) assert np.array_equal(F_load, F) assert np.array_equal(n_rho_load, n_rho) assert np.array_equal(rho_load, rho) assert np.array_equal(n_thr_load, []) assert np.array_equal(conf_up_load, []) assert np.array_equal(conf_down_load, []) # thresholds n_thr, conf_up, conf_down = dcca.rhoThresholds(len(ts), fu.linRangeByStep(10, 30), 10, 0.95) dcca.saveObject(get_object_path('dcca_obj')) n_thr_load = fu.getObjectMember(get_object_path('dcca_obj', ext=True), 'nThr') conf_up_load = fu.getObjectMember(get_object_path('dcca_obj', ext=True), 'confUp') conf_down_load = fu.getObjectMember(get_object_path('dcca_obj', ext=True), 'confDown') assert np.array_equal(n_load, n) assert np.array_equal(F_load, F) assert np.array_equal(n_rho_load, n_rho) assert np.array_equal(rho_load, rho) assert np.array_equal(n_thr_load, n_thr) assert np.array_equal(conf_up_load, conf_up) assert np.array_equal(conf_down_load, conf_down)
import numpy as np import matplotlib.pyplot as plt import fathon from fathon import fathonUtils as fu print('This is fathon v{}'.format(fathon.__version__)) a = np.random.randn(10000) b = np.random.randn(10000) a = fu.toAggregated(a) b = fu.toAggregated(b) pydcca = fathon.DCCA(a, b) winSizes = fu.linRangeByStep(20, 1000, step=50) polOrd = 1 n, F = pydcca.computeFlucVec(winSizes, polOrd=polOrd) H, H_intercept = pydcca.fitFlucVec() plt.plot(np.log(n), np.log(F), 'ro') plt.plot(np.log(n), H_intercept + H * np.log(n), 'k-', label='H = {:.2f}'.format(H)) plt.xlabel('ln(n)', fontsize=14) plt.ylabel('ln(F(n))', fontsize=14) plt.title('DCCA', fontsize=14) plt.legend(loc=0, fontsize=14)