コード例 #1
0
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)
コード例 #2
0
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)
コード例 #3
0
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)
コード例 #4
0
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)
コード例 #5
0
ファイル: test_fathon.py プロジェクト: szsongyj/fathon
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)
コード例 #6
0
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)
コード例 #7
0
ファイル: test_fathon.py プロジェクト: szsongyj/fathon
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)
コード例 #8
0
ファイル: test_fathon.py プロジェクト: szsongyj/fathon
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)
コード例 #9
0
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)
コード例 #10
0
ファイル: test_fathon.py プロジェクト: szsongyj/fathon
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)
コード例 #11
0
ファイル: test_fathon.py プロジェクト: szsongyj/fathon
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)
コード例 #12
0
ファイル: test_fathon.py プロジェクト: szsongyj/fathon
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)
コード例 #13
0
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)
コード例 #15
0
ファイル: test_fathon.py プロジェクト: szsongyj/fathon
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)
コード例 #16
0
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)
コード例 #17
0
ファイル: mfdcca_example.py プロジェクト: szsongyj/fathon
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')
コード例 #18
0
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)
コード例 #19
0
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)