Пример #1
0
def findMR():
    data = loadData('/home/mage/PycharmProjects/cbTester/data/eurusd_1m_120516.csv_trimmed.csv')

    i = 0
    samples = []
    hours = np.zeros(24)
    for bar in data:
        i = i + 1
        if i < 60*6 or i > len(data) - 60*6:
            continue

        if bar[0].minute not in [29,59]:
            continue

        path = np.max(data[i-60*4:i, 4]) - np.min(data[i-60*4:i, 4])
        delta = np.abs(data[i-60*4, 4]-data[i, 4])
        if path > 0.003 and path < 0.004 and delta < 0.0005:
            samples.append(data[i-60*4:i, 4])
            hours[bar[0].hour] += 1
    print len(samples)
    plt.plot(hours)
    plt.show()
    for s in samples:
        plt.plot(np.array(s))
        plt.show()
Пример #2
0
def findLHMonthly(years, barN, showRes = True):
    data = loadData('/home/mage/PycharmProjects/cbTester/data/eurusd_1m_120516.csv_trimmed.csv')
    i = 0

    for bar in data:
        i = i + 1
        if i < 60*6 or i > len(data) - 60*6:
            continue


        if bar[0].minute not in [14,29,44,59]:
            continue

        interval = data[i-30*6:i+30*2]

        h = np.argmax(interval[:,4])
        l = np.argmin(interval[:,4])

        barh = interval[h]
        barl = interval[l]

        if get15minBarNum(barh) == get15minBarNum(data[i]):
            highs[get15minBarNum(barh)] += 1

        if get15minBarNum(barl) == get15minBarNum(data[i]):
            lows[get15minBarNum(barl)] += 1

    if showRes == True:
        plt.plot(highs, color = 'green')
        plt.plot(lows, color = 'red')
        plt.show()
    else:
        return [highs, lows]
Пример #3
0
def findStik():
    data = loadData('/home/mage/PycharmProjects/cbTester/data/eurusd_10sec_110516.csv')
    path = np.zeros(60*6-2)
    i = 0
    count = 0
    for bar in data:
        i = i + 1
        if i < 60*6:
            continue

        if bar[0].minute not in [00]:
            continue
        if bar[0].second not in [10]:
            continue

        if bar[4] - bar[1] > 0.0005:
            path += data[i-60*6:i-2, 4]
            r = np.max(data[i-60*6:i-2, 4]) - np.min(data[i-60*6:i-2, 4])
            print r
            path -= data[i-60*6, 4]
            count += 1
            print bar[0]

    path /= count
    range = path[60*6-3]-path[0]
    print range
    plot(path)
    show()
Пример #4
0
def test():
    data = loadData('/home/mage/PycharmProjects/cbTester/data/eurusd_1sec_upto06052016.csv')
    res = []
    for bar in data:
        if bar[0].day == 21 and bar[0].year == 2016 and bar[0].month == 4 and bar[0].hour == 15:
            print bar[0]
            print bar[0].utcoffset()
            res.append(bar)
    return res
Пример #5
0
def getAverageSpread():
    data = loadData('/home/mage/PycharmProjects/cbTester/data/gbpusd_10sec_upto06052016.csv')
    spread = np.zeros(24)
    spreadCount = np.zeros(24)
    i = 0
    for bar in data:
        i = i + 1
        if i < 60*6:
            continue

        if bar[0].minute not in [59]:
            continue
        spread[bar[0].hour] += bar[9]-bar[4]
        spreadCount[bar[0].hour] += 1

    for i in xrange(len(spread)):
        spread[i] /= spreadCount[i]

    return spread
Пример #6
0
def getIntradayHourProfile():
    data = loadData('/home/mage/PycharmProjects/cbTester/data/eurusd_1m_120516.csv')
    vola = np.zeros(24)
    volaCount = np.zeros(24)
    i = 0
    for bar in data:
        i = i + 1
        if i < 60*6:
            continue

        if bar[0].minute not in [59]:
            continue
        vola[bar[0].hour] += np.abs(np.max(data[i-60*6:i, 2]) - np.min(data[i-60*6:i, 3]))
        volaCount[bar[0].hour] += 1

    print volaCount
    for i in xrange(len(vola)):
        vola[i] /= volaCount[i]

    return vola
Пример #7
0
from matplotlib import pyplot as plt
import numpy as np

from quotesFromCsv import loadData
from forexSessions import *

data = loadData('c:\\eurusd_1m.csv15min')

#to15min('c:\\eurusd_1m.csv')

def get15minBarNum(time):
    return time.hour*4 + np.round(time.minute/15,0)

def getMaxMinBars(window = 8, years = 0, summerTime = 777):
    res = np.zeros(96)
    for i in range(window, len(data) - window):
        if years != 0:
            if data[i,0].year not in years:
                continue

        if summerTime != 777:
            if summerTime is True:
                if forexSessions.isSummerTimeInLondon(data[i,0]) is not True:
                    continue
            else:
                if forexSessions.isSummerTimeInLondon(data[i,0]) is True:
                    continue
        #if np.argmax(data[i-window:i+window, 2]) == window:
        if np.argmax(data[i-window:i, 2]) == window-1:
            res[get15minBarNum(data[i,0])] +=1
        #if np.argmin(data[i-window:i+window, 3]) == window:
Пример #8
0
from datetime import date

from tester import Tester
from quotesFromCsv import loadData
from instrument import Instrument
from audusdMR import MR

#engine = DukascopyEngine(['EUR/USD'], '1 Min', Mr)

data = loadData('/home/mage/PycharmProjects/cbTester/data/eurusd_1m_120516.csv_trimmed.csv')
opt = False

if opt == True:
    for opt in range(5, 25, 1):
        strategyParams = {'pOptimization': True, 'pOpt':opt}
        tester = Tester([Instrument('EUR/USD', data)], MR, strategyParams, getStat=True)
else:
    strategyParams = {'pOptimization': False}
    tester = Tester([Instrument('EUR/USD', data)], MR, strategyParams, getStat=True)
exit()
Пример #9
0
from quotesFromCsv import loadData

data = loadData("c:\\eurusd_1m_test2.csv")
Пример #10
0
from datetime import date

from tester import Tester
from quotesFromCsv import loadData
from instrument import Instrument
from mr import Mr
from testStrat import TestStrat
from dukascopyEngine import DukascopyEngine
from audnzdMRBoy import AudnzdMrBoy
from eurusdMR import MR

#engine = DukascopyEngine(['EUR/USD'], '1 Min', Mr)

data = loadData('/home/mage/PycharmProjects/cbTester/data/audnzd_upto010615.csv')
#data = loadData('/home/mage/PycharmProjects/cbTester/data/eurusd_1m_20_03_2014.csv')
opt = False

if opt == True:
    for opt in range(5, 10, 1):
        strategyParams = {'pOptimization': True, 'pOpt':opt}
        tester = Tester([Instrument('EUR/USD', data)], AudnzdMrBoy, strategyParams, getStat=True)
else:
    strategyParams = {'pOptimization': False}
    tester = Tester([Instrument('EUR/USD', data)], AudnzdMrBoy, strategyParams, getStat=True)
#tester = Tester([Instrument('USD/CAD', data)], UsdcadMr, getStat=True)
exit()