Beispiel #1
0
def runStrategy(in_prices):
	global prices, mas, emas, smas, lwmas, vmas, vemas, vsmas, vlwmas
	log.debug('beginning vma strategy ...')
	prices = in_prices
	
	vols = [p['vol'] for p in prices]
	
	vmalength = const.VMA_MAX + 1
	vmas = [0] * vmalength
	vemas = [0] * vmalength
	vsmas = [0] * vmalength
	vlwmas = [0] * vmalength
	for period in range(1, vmalength):
		vmas[period] = ma.calc_ma(vols, period)
		vemas[period] = ma.calc_ema(vols, period)
		vsmas[period] = ma.calc_sma(vols, period)
		vlwmas[period] = ma.calc_lwma(vols, period)
		
	ps = [p['close'] for p in prices]
	
	malength = const.MA_MAX + 1
	mas = [0] * malength
	emas = [0] * malength
	smas = [0] * malength
	lwmas = [0] * malength
	for period in range(1, malength):
		mas[period] = ma.calc_ma(ps, period)
		emas[period] = ma.calc_ema(ps, period)
		smas[period] = ma.calc_sma(ps, period)
		lwmas[period] = ma.calc_lwma(ps, period)
	
	log.debug('running ma strategy ...')
	starttime = datetime.datetime.now()
	
	pool = Pool(const.POOL_SIZE)
	
	for vft, vf in [(matype, period) for matype in const.VMA_TYPES for period in const.VMA_FAST]:
		for vst, vs in [(matype, period) for matype in const.VMA_TYPES for period in const.VMA_SLOW]:
			if vs != 0 and vs <= vf: continue
			poola = Pool(const.POOL_SIZE)
			poolb = Pool(const.POOL_SIZE)
			
			for ft, f in [(matype, period) for matype in const.MA_TYPES for period in const.MA_FAST]:
				for s1t, s1 in [(matype, period) for matype in const.MA_TYPES for period in const.MA_SLOW1]:
					if s1 != 0 and s1 <= f: continue
					elapsed = (datetime.datetime.now() - starttime).seconds
					log.debug('== ' + str(elapsed) + ',' + vft + '_' + str(vf) + ',' + vst + '_' + str(vs) + ',' + ft + '_' + str(f) + ',' + s1t + '_' + str(s1) + ' ==')
					
					doTrade(poola, vft, vf, vst, vs, ft, f, s1t, s1, '', 0, '', 0)
					doTrade(poolb, vft, vf, vst, vs, '', 0, '', 0, ft, f, s1t, s1)
			
			for ia in range(len(poola.strategies)):
				for ib in range(len(poolb.strategies)):
					sa = poola.strategies[ia]
					sb = poolb.strategies[ib]
					if sa[0] == 0 or sb[0] == 0: continue
					t = doTrade(pool, vft, vf, vst, vs, sa[0].args[0], sa[0].args[1], sa[0].args[2], sa[0].args[3], sb[0].args[4], sb[0].args[5], sb[0].args[6], sb[0].args[7])
				
	pool.showStrategies()
	return pool.strategies[0][0]
Beispiel #2
0
def calc_macd(prices, fast = 12, slow = 26, sign = 9):
	ps = [p['close'] for p in prices]
	macds = {}
	macds['fast'] = ma.calc_ema(ps, fast)
	macds['slow'] = ma.calc_ema(ps, slow)
	macds['diff'] = list(map(lambda f,s: round(f - s, 5), macds['fast'], macds['slow']))
	macds['dea'] = ma.calc_ema(macds['diff'], sign)
	macds['macd'] = list(map(lambda f,s: round(f - s, 5), macds['diff'], macds['dea']))
	
	return macds
Beispiel #3
0
def getMas(matype, period, ps):
    if matype == 'MA':
        return ma.calc_ma(ps, period)
    elif matype == 'EMA':
        return ma.calc_ema(ps, period)
    elif matype == 'SMA':
        return ma.calc_sma(ps, period)
    elif matype == 'LWMA':
        return ma.calc_lwma(ps, period)
    else:
        return None
Beispiel #4
0
def getMas(matype, period, ps):
	if matype == 'MA':
		return ma.calc_ma(ps, period)
	elif matype == 'EMA':
		return ma.calc_ema(ps, period)
	elif matype == 'SMA':
		return ma.calc_sma(ps, period)
	elif matype == 'LWMA':
		return ma.calc_lwma(ps, period)
	else:
		return None
Beispiel #5
0
def getMas(matype, period, ps):
    if matype == "MA":
        return ma.calc_ma(ps, period)
    elif matype == "EMA":
        return ma.calc_ema(ps, period)
    elif matype == "SMA":
        return ma.calc_sma(ps, period)
    elif matype == "LWMA":
        return ma.calc_lwma(ps, period)
    else:
        return None
Beispiel #6
0
def runStrategy(in_prices):
    global mas, emas, smas, lwmas, std, prices
    log.debug('beginning ma strategy ...')

    prices = in_prices
    ps = [p['close'] for p in prices]

    std = [0] * 51
    l = len(prices)
    for period in range(2, 51):
        std[period] = [0] * l
        for i in range(period - 1, l):
            std[period][i] = np.std(ps[i - period + 1:i + 1],
                                    dtype=np.float64,
                                    ddof=0)

    malength = const.MA_MAX + 1
    mas = [0] * malength
    emas = [0] * malength
    smas = [0] * malength
    lwmas = [0] * malength
    for period in range(1, malength):
        mas[period] = ma.calc_ma(ps, period)
        emas[period] = ma.calc_ema(ps, period)
        smas[period] = ma.calc_sma(ps, period)
        lwmas[period] = ma.calc_lwma(ps, period)

    log.debug('running ma strategy ...')
    starttime = datetime.datetime.now()

    matypes = ['MA', 'EMA', 'SMA', 'LWMA']

    pool = Pool(const.POOL_SIZE)
    for ft, f in [(matype, period) for matype in matypes
                  for period in const.MA_FAST]:
        for s1t, s1 in [(matype, period) for matype in matypes
                        for period in const.MA_SLOW1]:
            if s1 != 0 and s1 <= f: continue
            elapsed = (datetime.datetime.now() - starttime).seconds
            log.debug('== ' + str(elapsed) + ',' + ft + '_' + str(f) + ',' +
                      s1t + '_' + str(s1) + ' ==')
            for s2t, s2 in [(matype, period) for matype in matypes
                            for period in const.MA_SLOW2]:
                if s2 != 0 and s2 <= s1: continue
                #run
                doTrade(pool, ft, f, s1t, s1, s2t, s2)

    pool.showStrategies()
    return pool.strategies[0][0]
Beispiel #7
0
def runStrategy(in_prices):
	global mas, emas, smas, lwmas, std, prices
	log.debug('beginning ma strategy ...')
	
	prices = in_prices
	ps = [p['close'] for p in prices]
	
	std = [0] * 51
	l = len(prices)
	for period in range(2, 51):
		std[period] = [0] * l
		for i in range(period - 1, l):
			std[period][i] = np.std(ps[i-period+1 : i+1], dtype=np.float64, ddof=0)
	
	malength = const.MA_MAX + 1
	mas = [0] * malength
	emas = [0] * malength
	smas = [0] * malength
	lwmas = [0] * malength
	for period in range(1, malength):
		mas[period] = ma.calc_ma(ps, period)
		emas[period] = ma.calc_ema(ps, period)
		smas[period] = ma.calc_sma(ps, period)
		lwmas[period] = ma.calc_lwma(ps, period)
	
	log.debug('running ma strategy ...')
	starttime = datetime.datetime.now()
	
	matypes = ['MA', 'EMA', 'SMA', 'LWMA']
	
	pool = Pool(const.POOL_SIZE)
	for ft, f in [(matype, period) for matype in matypes for period in const.MA_FAST]:
		for s1t, s1 in [(matype, period) for matype in matypes for period in const.MA_SLOW1]:
			if s1 != 0 and s1 <= f: continue
			elapsed = (datetime.datetime.now() - starttime).seconds
			log.debug('== ' + str(elapsed) + ',' + ft + '_' + str(f) + ',' + s1t + '_' + str(s1) + ' ==')
			for s2t, s2 in [(matype, period) for matype in matypes for period in const.MA_SLOW2]:
				if s2 != 0 and s2 <= s1: continue
				#run 
				doTrade(pool, ft, f, s1t, s1, s2t, s2)
				
	pool.showStrategies()
	return pool.strategies[0][0]
Beispiel #8
0
def runStrategy(in_prices):
    global prices, mas, emas, smas, lwmas, vmas, vemas, vsmas, vlwmas
    log.debug('beginning vma strategy ...')
    prices = in_prices

    vols = [p['vol'] for p in prices]

    vmalength = const.VMA_MAX + 1
    vmas = [0] * vmalength
    vemas = [0] * vmalength
    vsmas = [0] * vmalength
    vlwmas = [0] * vmalength
    for period in range(1, vmalength):
        vmas[period] = ma.calc_ma(vols, period)
        vemas[period] = ma.calc_ema(vols, period)
        vsmas[period] = ma.calc_sma(vols, period)
        vlwmas[period] = ma.calc_lwma(vols, period)

    ps = [p['close'] for p in prices]

    malength = const.MA_MAX + 1
    mas = [0] * malength
    emas = [0] * malength
    smas = [0] * malength
    lwmas = [0] * malength
    for period in range(1, malength):
        mas[period] = ma.calc_ma(ps, period)
        emas[period] = ma.calc_ema(ps, period)
        smas[period] = ma.calc_sma(ps, period)
        lwmas[period] = ma.calc_lwma(ps, period)

    log.debug('running ma strategy ...')
    starttime = datetime.datetime.now()

    pool = Pool(const.POOL_SIZE)

    for vft, vf in [(matype, period) for matype in const.VMA_TYPES
                    for period in const.VMA_FAST]:
        for vst, vs in [(matype, period) for matype in const.VMA_TYPES
                        for period in const.VMA_SLOW]:
            if vs != 0 and vs <= vf: continue
            poola = Pool(const.POOL_SIZE)
            poolb = Pool(const.POOL_SIZE)

            for ft, f in [(matype, period) for matype in const.MA_TYPES
                          for period in const.MA_FAST]:
                for s1t, s1 in [(matype, period) for matype in const.MA_TYPES
                                for period in const.MA_SLOW1]:
                    if s1 != 0 and s1 <= f: continue
                    elapsed = (datetime.datetime.now() - starttime).seconds
                    log.debug('== ' + str(elapsed) + ',' + vft + '_' +
                              str(vf) + ',' + vst + '_' + str(vs) + ',' + ft +
                              '_' + str(f) + ',' + s1t + '_' + str(s1) + ' ==')

                    doTrade(poola, vft, vf, vst, vs, ft, f, s1t, s1, '', 0, '',
                            0)
                    doTrade(poolb, vft, vf, vst, vs, '', 0, '', 0, ft, f, s1t,
                            s1)

            for ia in range(len(poola.strategies)):
                for ib in range(len(poolb.strategies)):
                    sa = poola.strategies[ia]
                    sb = poolb.strategies[ib]
                    if sa[0] == 0 or sb[0] == 0: continue
                    t = doTrade(pool, vft, vf, vst, vs, sa[0].args[0],
                                sa[0].args[1], sa[0].args[2], sa[0].args[3],
                                sb[0].args[4], sb[0].args[5], sb[0].args[6],
                                sb[0].args[7])

    pool.showStrategies()
    return pool.strategies[0][0]