Exemplo n.º 1
0
def runStrategy(prices, front):
	
	#prices = SqliteDB().getAllPrices(table)
	ps = [p['close'] for p in prices]
	
	pool = StrategyPool(100)
	
	doMaTrade(pool, prices, ps, front, 'MA', 6, 9, 35)
	pool.showStrategies()
	return
	
	for i in range(2, 9):
		for j in range(4, 20):
			if i >= j: continue
			doMaTrade(pool, prices, ps, front, 'MA', i, j)
			doMaTrade(pool, prices, ps, front, 'EMA', i, j)
			doMaTrade(pool, prices, ps, front, 'SMA', i, j)
			
			log.debug(' ========= ' + str(i) + ',' + str(j) + ' ===========')
			for k in range(6, 40):
				if j >= k: continue
				doMaTrade(pool, prices, ps, front, 'MA', i, j, k)
				doMaTrade(pool, prices, ps, front, 'EMA', i, j, k)
				doMaTrade(pool, prices, ps, front, 'SMA', i, j, k)
				
				continue
				for l in range(8, 60):
					if k >= l: continue
					doMaTrade(pool, prices, ps, front, 'MA', i, j, k, l)
					doMaTrade(pool, prices, ps, front, 'EMA', i, j, k, l)
					doMaTrade(pool, prices, ps, front, 'SMA', i, j, k, l)
	
	pool.showStrategies()
Exemplo n.º 2
0
def runStrategy(in_prices):
	global prices, ps, phs, pls, rsis
	
	log.debug('beginning s5 strategy ...')
	
	prices = in_prices
	ps = [p['close'] for p in prices]
	phs = [p['high'] for p in prices]
	pls = [p['low'] for p in prices]
	rsis = rsi.calc_rsi(prices, 14)
	
	pool = StrategyPool(50)
	doTrade(pool, 1, 180, 12, 0.5, -0.6)
	pool.showStrategies()
	return
	
	direction = 1
	starttime = time.time() 
	for i in range(30, 150)[::10]:
		for j in range(2, 30)[::5]:
			if i < j: continue
			elapsed = long(time.time() - starttime)
			log.debug('== ' + str(elapsed) + ', ' + str(i) + ',' + str(j) + ' ==')
			for kp in [0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.1, 1.2, 1.3]:
				for kl in [0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.1, 1.2, 1.3]:
					doTrade(pool, direction, i, j, kp, -kl)
	
	pool.showStrategies()
	
	return
Exemplo n.º 3
0
def runStrategy_2(in_prices):
    global mas, emas, smas, std, prices
    log.debug('beginning first 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] = round(
                np.std(ps[i - period + 1:i + 1], dtype=np.float64, ddof=0), 3)

    mas = [0] * 61
    emas = [0] * 61
    smas = [0] * 61
    for period in range(2, 61):
        mas[period] = ma.calc_ma(ps, period)
        emas[period] = ma.calc_ema(ps, period)
        smas[period] = ma.calc_sma(ps, period)

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

    strat_as = [
        ['MA', 7, 'SMA', 10, 'SMA', 12],
        ['MA', 7, 'SMA', 14, 'EMA', 33],
        ['MA', 7, 'SMA', 16, 'EMA', 27],
    ]
    strat_bs = [
        ['SMA', 7, 'MA', 12, 'MA', 12],
        ['SMA', 7, 'MA', 12, 'MA', 36],
        ['MA', 7, 'SMA', 14, 'EMA', 33],
    ]

    pool = StrategyPool(100)

    for stdPeriod in [25]:
        stdGuage = 1.3
        while stdGuage <= 1.3:
            elapsed = (datetime.datetime.now() - starttime).seconds
            log.debug('== ' + str(elapsed) + ',' + str(stdPeriod) + ',' +
                      str(stdGuage) + ' ==')

            for sa in strat_as:
                for sb in strat_bs:
                    doTrade(pool, stdPeriod, stdGuage, sa[0], sa[1], sa[2],
                            sa[3], sa[4], sa[5], sb[0], sb[1], sb[2], sb[3],
                            sb[4], sb[5])

            stdGuage += 0.02

    pool.showStrategies()

    return
Exemplo n.º 4
0
def runStrategy_2(in_prices):
	global mas, emas, smas, std, prices
	log.debug('beginning first 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] = round(np.std(ps[i-period+1 : i+1], dtype=np.float64, ddof=0), 3)
		
	mas = [0] * 61
	emas = [0] * 61
	smas = [0] * 61
	for period in range(2, 61):
		mas[period] = ma.calc_ma(ps, period)
		emas[period] = ma.calc_ema(ps, period)
		smas[period] = ma.calc_sma(ps, period)
	
	log.debug('running first strategy ...')
	starttime = datetime.datetime.now() 
	
	strat_as = [
['MA',7,'SMA',10,'SMA',12],
['MA',7,'SMA',14,'EMA',33],
['MA',7,'SMA',16,'EMA',27],
]
	strat_bs = [
['SMA',7,'MA',12,'MA',12 ],
['SMA',7,'MA',12,'MA',36 ],
['MA',7,'SMA',14,'EMA',33],
]
	
	pool = StrategyPool(100)
	
	for stdPeriod in [25]:
		stdGuage = 1.3
		while stdGuage <= 1.3:
			elapsed = (datetime.datetime.now() - starttime).seconds
			log.debug('== ' + str(elapsed) + ',' + str(stdPeriod) + ',' + str(stdGuage) + ' ==')
			
			for sa in strat_as:
				for sb in strat_bs:
					doTrade(pool, stdPeriod, stdGuage, sa[0], sa[1], sa[2], sa[3], sa[4], sa[5], sb[0], sb[1], sb[2], sb[3], sb[4], sb[5])
			
			stdGuage += 0.02
		
	pool.showStrategies()
	
	return
	
Exemplo n.º 5
0
def runStrategy(prices):
    logs.info('STRATEGY,BUY TIMES, SELL TIMES, FINAL EQUITY')

    #prices = SqliteDB().getAllPrices(table)
    ps = [p['close'] for p in prices]
    pool = StrategyPool(100)

    doRSITrade(pool, prices, 14, 70, 30)
    pool.showStrategies()
    return

    for i in range(3, 30):
        for j in range(70, 100):
            for k in range(1, 31):
                doRSITrade(pool, prices, i, j, k)
Exemplo n.º 6
0
def runStrategy(prices):
	logs.info('STRATEGY,BUY TIMES, SELL TIMES, FINAL EQUITY')
	
	#prices = SqliteDB().getAllPrices(table)
	ps = [p['close'] for p in prices]
	pool = StrategyPool(100)
	
	doRSITrade(pool, prices, 14, 70, 30)
	pool.showStrategies()
	return
	
	for i in range(3, 30):
		for j in range(70, 100):
			for k in range(1, 31):
				doRSITrade(pool, prices, i, j, k)
Exemplo n.º 7
0
def runStrategy(prices):
	log.debug('beginning l4 strategy ...')
	
	ps = [p['close'] for p in prices]
	
	pool = StrategyPool(50)
	#doTrade(pool, prices, ps, 3, 9)
	#pool.showStrategies()
	#return
	
	for i in range(5, 40)[::2]:
		for j in range(3, 30)[::2]:
			doTrade(pool, prices, ps, i, j)
				
	pool.showStrategies()
Exemplo n.º 8
0
def runStrategy(prices):
	log.debug('beginning l3 strategy ...')
	
	ps = [p['close'] for p in prices]
	
	pool = StrategyPool(50)
	#doTrade(pool, prices, ps, 3, 9)
	#pool.showStrategies()
	#return
	
	for i in range(5, 40)[::2]:
		for j in range(3, 30)[::2]:
			doTrade(pool, prices, ps, i, j)
				
	pool.showStrategies()
Exemplo n.º 9
0
def runStrategy(prices):
	logs.info('STRATEGY,BUY TIMES, SELL TIMES, FINAL EQUITY')
	
	#prices = SqliteDB().getAllPrices(table)
	ps = [p['close'] for p in prices]
	pool = StrategyPool(100)
	
	#doBollingTrade(pool, prices, ps, 12, 2.4)
	#pool.showStrategies()
	#return
	
	for i in range(2, 40):
		j = 0
		log.debug(i)
		while j <= 5:
			doBollingTrade(pool, prices, ps, i, j)
			j += 0.1
	
	pool.showStrategies()
Exemplo n.º 10
0
def runStrategy(prices):
    log.debug('beginning l2 strategy ...')

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

    pool = StrategyPool(50)
    #doTrade(pool, prices, ps, 14, 21, 14)
    #pool.showStrategies()
    #return

    for i in range(5, 20)[::2]:
        for j in range(12, 50)[::2]:
            if i >= j: continue
            for k in range(10, 40)[::3]:
                for l in [20, 30, 40, 50, 60, 70]:
                    doTrade(pool, prices, ps, i, j, k, l)
                #doMacdTrade(pool, prices, ps, i, j, k)

    pool.showStrategies()
Exemplo n.º 11
0
def runStrategy(prices):
    logs.info('STRATEGY,BUY TIMES, SELL TIMES, FINAL EQUITY')

    #prices = SqliteDB().getAllPrices(table)
    ps = [p['close'] for p in prices]
    pool = StrategyPool(100)

    #doBollingTrade(pool, prices, ps, 12, 2.4)
    #pool.showStrategies()
    #return

    for i in range(2, 40):
        j = 0
        log.debug(i)
        while j <= 5:
            doBollingTrade(pool, prices, ps, i, j)
            j += 0.1

    pool.showStrategies()
Exemplo n.º 12
0
def runStrategy(in_prices):
    log.debug("beginning s3 strategy ...")

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

    pool = StrategyPool(50)
    doTrade(pool, prices, ps, 90, 17, 45)
    pool.showStrategies()
    return

    for i in range(10, 100)[::10]:
        for j in range(2, 30)[::5]:
            log.debug("== " + str(i) + " , " + str(j) + " ==")
            for k in range(5, 100)[::20]:
                doTrade(pool, prices, ps, i, j, k)

    pool.showStrategies()

    return
Exemplo n.º 13
0
def runStrategy(prices):
	log.debug('beginning l2 strategy ...')
	
	ps = [p['close'] for p in prices]
	
	
	pool = StrategyPool(50)
	#doTrade(pool, prices, ps, 14, 21, 14)
	#pool.showStrategies()
	#return
	
	
	for i in range(5, 20)[::2]:
		for j in range(12, 50)[::2]:
			if i >= j: continue
			for k in range(10, 40)[::3]:
				for l in [20, 30, 40, 50, 60, 70]:
					doTrade(pool, prices, ps, i, j, k, l)
				#doMacdTrade(pool, prices, ps, i, j, k)
				
	pool.showStrategies()
Exemplo n.º 14
0
def runStrategy(prices, front):

    #prices = SqliteDB().getAllPrices(table)
    ps = [p['close'] for p in prices]

    pool = StrategyPool(100)

    doMaTrade(pool, prices, ps, front, 'MA', 6, 9, 35)
    pool.showStrategies()
    return

    for i in range(2, 9):
        for j in range(4, 20):
            if i >= j: continue
            doMaTrade(pool, prices, ps, front, 'MA', i, j)
            doMaTrade(pool, prices, ps, front, 'EMA', i, j)
            doMaTrade(pool, prices, ps, front, 'SMA', i, j)

            log.debug(' ========= ' + str(i) + ',' + str(j) + ' ===========')
            for k in range(6, 40):
                if j >= k: continue
                doMaTrade(pool, prices, ps, front, 'MA', i, j, k)
                doMaTrade(pool, prices, ps, front, 'EMA', i, j, k)
                doMaTrade(pool, prices, ps, front, 'SMA', i, j, k)

                continue
                for l in range(8, 60):
                    if k >= l: continue
                    doMaTrade(pool, prices, ps, front, 'MA', i, j, k, l)
                    doMaTrade(pool, prices, ps, front, 'EMA', i, j, k, l)
                    doMaTrade(pool, prices, ps, front, 'SMA', i, j, k, l)

    pool.showStrategies()
Exemplo n.º 15
0
def runStrategy(in_prices):
    global prices, ps, phs, pls, rsis

    log.debug('beginning s5 strategy ...')

    prices = in_prices
    ps = [p['close'] for p in prices]
    phs = [p['high'] for p in prices]
    pls = [p['low'] for p in prices]
    rsis = rsi.calc_rsi(prices, 14)

    pool = StrategyPool(50)
    doTrade(pool, 1, 180, 12, 0.5, -0.6)
    pool.showStrategies()
    return

    direction = 1
    starttime = time.time()
    for i in range(30, 150)[::10]:
        for j in range(2, 30)[::5]:
            if i < j: continue
            elapsed = long(time.time() - starttime)
            log.debug('== ' + str(elapsed) + ', ' + str(i) + ',' + str(j) +
                      ' ==')
            for kp in [0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.1, 1.2, 1.3]:
                for kl in [0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.1, 1.2, 1.3]:
                    doTrade(pool, direction, i, j, kp, -kl)

    pool.showStrategies()

    return
Exemplo n.º 16
0
def runStrategy(in_prices):
	global prices, ps, phs, pls
	log.debug('beginning s4 strategy ...')
	
	prices = in_prices
	ps = [p['close'] for p in prices]
	phs = [p['high'] for p in prices]
	pls = [p['low'] for p in prices]
	
	pool = StrategyPool(100)
	doTrade(pool, 110, 17, 17)
	pool.showStrategies()
	return
	
	starttime = time.time() 
	for i in range(10, 250)[::10]:
		for j in range(2, 50)[::5]:
			if i < j: continue
			elapsed = long(time.time() - starttime)
			log.debug('== ' + str(elapsed) + ', ' + str(i) + ',' + str(j) + ' ==')
			for k in range (2, 50)[::5]:
				if i < k: continue
				doTrade(pool, i, j, k)
	
	pool.showStrategies()
	
	return
Exemplo n.º 17
0
def runStrategy(in_prices):
	global mas, emas, smas, lwmas, prices
	log.debug('beginning ma strategy ...')
	
	prices = in_prices
	ps = [p['close'] for p in prices]
	
	log.debug('generating mas ...')
	mas = [0] * 61
	emas = [0] * 61
	smas = [0] * 61
	lwmas = [0] * 61
	for period in range(2, 61):
		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)
	
	pool = StrategyPool(20)
	doMaTrade(pool, 'SMA', 19, 'MA', 40, 'LWMA', 60)
	pool.showStrategies()
	return
	
	log.debug('running ma strategy ...')
	starttime = datetime.datetime.now() 
	matypes = ['MA', 'EMA', 'SMA', 'LWMA']
	pool = StrategyPool(100)
	
	for ft, f in [(matype, period) for matype in matypes for period in range(2, 10)]:
		for s1t, s1 in [(matype, period) for matype in matypes for period in range(4, 21)]:
			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 range(0, 41)]:
				if s2 != 0 and s2 <= s1: continue
				if s2 == 0 and (s2t == 'EMA' or s2t == 'SMA' or s2t == 'LWMA'): continue
				doMaTrade(pool, ft, f, s1t, s1, s2t, s2)
	
	pool.showStrategies()
Exemplo n.º 18
0
def runStrategy(in_prices):
    log.debug('beginning s3 strategy ...')

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

    pool = StrategyPool(50)
    doTrade(pool, prices, ps, 90, 17, 45)
    pool.showStrategies()
    return

    for i in range(10, 100)[::10]:
        for j in range(2, 30)[::5]:
            log.debug('== ' + str(i) + ' , ' + str(j) + ' ==')
            for k in range(5, 100)[::20]:
                doTrade(pool, prices, ps, i, j, k)

    pool.showStrategies()

    return
Exemplo n.º 19
0
def runStrategy(prices):
	logs.info('STRATEGY,BUY TIMES, SELL TIMES, FINAL EQUITY')
	
	ps = [p['close'] for p in prices]
	
	pool = StrategyPool(100)
	
	doMacdTrade(pool, prices, ps, 12, 26, 9)
	
	pool.showStrategies()
	return
	
	
	for i in range(5, 20):
		for j in range(12, 50):
			if i >= j: continue
			for k in range(2, 20):
				doMacdTrade(pool, prices, ps, i, j, k)
				
	pool.showStrategies()
Exemplo n.º 20
0
def runStrategy_1(in_prices):
    global mas, emas, smas, std, prices
    log.debug("beginning first 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] = round(np.std(ps[i - period + 1 : i + 1], dtype=np.float64, ddof=0), 3)

    mas = [0] * 61
    emas = [0] * 61
    smas = [0] * 61
    for period in range(2, 61):
        mas[period] = ma.calc_ma(ps, period)
        emas[period] = ma.calc_ema(ps, period)
        smas[period] = ma.calc_sma(ps, period)

    log.debug("running first strategy ...")
    starttime = datetime.datetime.now()

    strat_as = [
        ["MA", 6, "SMA", 14, "EMA", 39],
        ["MA", 7, "SMA", 10, "SMA", 12],
        ["MA", 7, "SMA", 12, "EMA", 18],
        ["MA", 7, "SMA", 12, "MA", 27],
        ["MA", 7, "SMA", 12, "SMA", 12],
        ["MA", 7, "SMA", 14, "EMA", 27],
        ["MA", 7, "SMA", 14, "EMA", 30],
        ["MA", 7, "SMA", 14, "EMA", 33],
        ["MA", 7, "SMA", 14, "EMA", 45],
        ["MA", 7, "SMA", 14, "MA", 27],
        ["MA", 7, "SMA", 14, "SMA", 15],
        ["MA", 7, "SMA", 14, "SMA", 30],
        ["MA", 7, "SMA", 16, "EMA", 24],
        ["MA", 7, "SMA", 16, "EMA", 27],
        ["MA", 7, "SMA", 16, "EMA", 30],
        ["MA", 7, "SMA", 16, "MA", 30],
    ]
    strat_bs = [
        ["EMA", 3, "EMA", 16, "MA", 42],
        ["EMA", 3, "EMA", 16, "MA", 45],
        ["EMA", 6, "SMA", 6, "MA", 30],
        ["EMA", 7, "MA", 4, "EMA", 51],
        ["MA", 6, "SMA", 16, "EMA", 45],
        ["MA", 6, "SMA", 18, "MA", 36],
        ["MA", 6, "SMA", 20, "MA", 36],
        ["MA", 6, "SMA", 20, "MA", 39],
        ["MA", 7, "EMA", 18, "EMA", 45],
        ["MA", 7, "SMA", 12, "EMA", 42],
        ["MA", 7, "SMA", 12, "SMA", 21],
        ["MA", 7, "SMA", 14, "EMA", 42],
        ["MA", 7, "SMA", 14, "MA", 45],
        ["MA", 7, "SMA", 14, "SMA", 21],
        ["SMA", 2, "EMA", 16, "MA", 42],
        ["SMA", 4, "MA", 4, "EMA", 51],
        ["SMA", 5, "MA", 4, "MA", 15],
        ["SMA", 5, "MA", 6, "MA", 42],
        ["SMA", 6, "EMA", 10, "MA", 36],
        ["SMA", 6, "MA", 12, "MA", 12],
        ["SMA", 7, "MA", 12, "EMA", 18],
        ["SMA", 7, "MA", 12, "EMA", 27],
        ["SMA", 7, "MA", 12, "EMA", 36],
        ["SMA", 7, "MA", 12, "EMA", 45],
        ["SMA", 7, "MA", 12, "EMA", 48],
        ["SMA", 7, "MA", 12, "MA", 12],
        ["SMA", 7, "MA", 12, "MA", 18],
        ["SMA", 7, "MA", 12, "MA", 33],
        ["SMA", 7, "MA", 12, "MA", 36],
        ["SMA", 7, "MA", 12, "MA", 51],
        ["SMA", 7, "MA", 12, "SMA", 15],
    ]

    pool = StrategyPool(100)
    for stdPeriod in [5, 8, 10, 12, 15, 18, 19, 20, 21, 22, 25, 30, 32, 34, 38, 40]:
        stdGuage = 0.6
        while stdGuage <= 2:
            elapsed = (datetime.datetime.now() - starttime).seconds
            log.debug("== " + str(elapsed) + "," + str(stdPeriod) + "," + str(stdGuage) + " ==")

            for sa in strat_as:
                for sb in strat_bs:
                    doTrade(
                        pool,
                        stdPeriod,
                        stdGuage,
                        sa[0],
                        sa[1],
                        sa[2],
                        sa[3],
                        sa[4],
                        sa[5],
                        sb[0],
                        sb[1],
                        sb[2],
                        sb[3],
                        sb[4],
                        sb[5],
                    )

            stdGuage += 0.1

    pool.showStrategies()

    return
Exemplo n.º 21
0
def runStrategy(in_prices):
	global mas, emas, smas, std, prices
	log.debug('beginning first 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] = round(np.std(ps[i-period+1 : i+1], dtype=np.float64, ddof=0), 3)
		
	mas = [0] * 61
	emas = [0] * 61
	smas = [0] * 61
	for period in range(2, 61):
		mas[period] = ma.calc_ma(ps, period)
		emas[period] = ma.calc_ema(ps, period)
		smas[period] = ma.calc_sma(ps, period)
		
	pool = StrategyPool(100)
	#t = doTrade(pool, 25, 1.0, 'MA', 7, 'SMA', 12, 'EMA', 31, 'SMA', 7, 'MA', 12, 'MA', 13)
	t = doTrade(pool, 25, 1.3, 'MA', 7, 'SMA', 13, 'EMA', 31, 'SMA', 7, 'MA', 12, 'MA', 13)
	#t = doTrade(pool, 25, 1.0, 'MA', 7, 'SMA', 13, 'EMA', 26, 'SMA', 7, 'MA', 12, 'MA', 13)
	#t = doTrade(pool, 25, 1.0, 'MA', 7, 'SMA', 12, 'EMA', 26, 'SMA', 7, 'MA', 12, 'MA', 13)
	#
	#t = doTrade(pool, 25, 1.1, 'MA', 7, 'SMA', 12, 'EMA', 31, 'SMA', 7, 'MA', 12, 'MA', 13)
	#t = doTrade(pool, 25, 1.1, 'MA', 7, 'SMA', 13, 'EMA', 31, 'SMA', 7, 'MA', 12, 'MA', 13)
	#t = doTrade(pool, 25, 1.1, 'MA', 7, 'SMA', 13, 'EMA', 26, 'SMA', 7, 'MA', 12, 'MA', 13)
	#t = doTrade(pool, 25, 1.1, 'MA', 7, 'SMA', 12, 'EMA', 26, 'SMA', 7, 'MA', 12, 'MA', 13)
	#
	#t = doTrade(pool, 25, 1.2, 'MA', 7, 'SMA', 12, 'EMA', 31, 'SMA', 7, 'MA', 12, 'MA', 13)
	#t = doTrade(pool, 25, 1.2, 'MA', 7, 'SMA', 13, 'EMA', 31, 'SMA', 7, 'MA', 12, 'MA', 13)
	#t = doTrade(pool, 25, 1.2, 'MA', 7, 'SMA', 13, 'EMA', 26, 'SMA', 7, 'MA', 12, 'MA', 13)
	#t = doTrade(pool, 25, 1.2, 'MA', 7, 'SMA', 12, 'EMA', 26, 'SMA', 7, 'MA', 12, 'MA', 13)
	#
	#t = doTrade(pool, 25, 1.3, 'MA', 7, 'SMA', 12, 'EMA', 31, 'SMA', 7, 'MA', 12, 'MA', 13)
	#t = doTrade(pool, 25, 1.3, 'MA', 7, 'SMA', 13, 'EMA', 31, 'SMA', 7, 'MA', 12, 'MA', 13)
	#t = doTrade(pool, 25, 1.3, 'MA', 7, 'SMA', 13, 'EMA', 26, 'SMA', 7, 'MA', 12, 'MA', 13)
	#t = doTrade(pool, 25, 1.3, 'MA', 7, 'SMA', 12, 'EMA', 26, 'SMA', 7, 'MA', 12, 'MA', 13)
	#t = doTrade(pool, 25, 1.0, 'MA', 7, 'SMA', 13, 'EMA', 26, 'SMA', 7, 'MA', 12, 'MA', 12)
	pool.showStrategies()
		
	return 
	
	log.debug('running first strategy ...')
	starttime = datetime.datetime.now() 
	matypes = ['MA', 'EMA', 'SMA']
	
	#farr = [2, 3, 4, 5, 6, 7, ]
	#s1arr = [4, 6, 8, 10, 12, 14, 16, 18, 20, ]
	#s2arr = [0, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, ]
	
	farr = [2,]
	s1arr = [4, ]
	s2arr = [0, ]
	
	pool = StrategyPool(100)
	for stdPeriod in [20, ]:
		stdGuage = 0.5
		for stdGuage in [1.3, ]:
			maxAEquity = maxBEquity = 0
			poola = StrategyPool(5)
			poolb = StrategyPool(5)
			
			for ft, f in [(matype, period) for matype in matypes for period in farr]:
				for s1t, s1 in [(matype, period) for matype in matypes for period in s1arr]:
					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 s2arr]:
						if s2 != 0 and s2 < s1: continue
						if s2 == 0 and (s2t == 'EMA' or s2t == 'SMA'): continue
						
						t = doTrade(poola, stdPeriod, stdGuage, ft, f, s1t, s1, s2t, s2, '', 0, '', 0, '', 0)
						
						if t.equity > maxAEquity:
							maxAEquity = t.equity
							maxEAs = [ft, f, s1t, s1, s2t, s2]
						
			elapsed = (datetime.datetime.now() - starttime).seconds
			log.info('find A time: ' + str(elapsed) + ' ')
			#poola.showStrategies()
			
			for ft, f in [(matype, period) for matype in matypes for period in farr]:
				for s1t, s1 in [(matype, period) for matype in matypes for period in s1arr]:
					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 s2arr]:
						if s2 != 0 and s2 < s1: continue
						if s2 == 0 and (s2t == 'EMA' or s2t == 'SMA'): continue
						
						t = doTrade(poolb, stdPeriod, stdGuage, '', 0, '', 0, '', 0, ft, f, s1t, s1, s2t, s2)
						
						if t.equity > maxBEquity:
							maxBEquity = t.equity
							maxEBs = [ft, f, s1t, s1, s2t, s2]
						
			elapsed = (datetime.datetime.now() - starttime).seconds
			log.info('find B time: ' + str(elapsed) + ' ')
			#poolb.showStrategies()
			
			logb.info(str(stdPeriod) + ',' + str(stdGuage) + ',' + str(maxAEquity) + ',' + str(maxBEquity))
			logb.info(str(maxEAs))
			logb.info(str(maxEBs))
			
			for i in range(5):
				sa = poola.strategies[i]
				sb = poolb.strategies[i]
				t = doTrade(pool, stdPeriod, stdGuage, sa[0].args[2], sa[0].args[3], sa[0].args[4], sa[0].args[5], sa[0].args[6], sa[0].args[7], sb[0].args[8], sb[0].args[9], sb[0].args[10], sb[0].args[11], sb[0].args[12], sb[0].args[13])
				t.generateGraph()
				#pool.estimate(t)
				
			#stdGuage += 0.1
	
	pool.showStrategies()
Exemplo n.º 22
0
def runStrategy_0(in_prices):
    global mas, emas, smas, std, prices
    log.debug('beginning first 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] = round(
                np.std(ps[i - period + 1:i + 1], dtype=np.float64, ddof=0), 3)

    mas = [0] * 61
    emas = [0] * 61
    smas = [0] * 61
    for period in range(2, 61):
        mas[period] = ma.calc_ma(ps, period)
        emas[period] = ma.calc_ema(ps, period)
        smas[period] = ma.calc_sma(ps, period)

    log.debug('running first strategy ...')
    starttime = datetime.datetime.now()
    matypes = ['MA', 'EMA', 'SMA']

    farr = [
        2,
        3,
        4,
        5,
        6,
        7,
    ]
    s1arr = [
        4,
        6,
        8,
        10,
        12,
        14,
        16,
        18,
        20,
    ]
    s2arr = [
        0,
        6,
        9,
        12,
        15,
        18,
        21,
        24,
        27,
        30,
        33,
        36,
        39,
        42,
        45,
        48,
        51,
    ]

    pool = StrategyPool(100)

    for stdPeriod in [20, 30, 40]:
        stdGuage = 1.0
        while stdGuage <= 1.3:
            maxAEquity = maxBEquity = 0
            poola = StrategyPool(5)
            poolb = StrategyPool(5)

            for ft, f in [(matype, period) for matype in matypes
                          for period in farr]:
                for s1t, s1 in [(matype, period) for matype in matypes
                                for period in s1arr]:
                    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 s2arr]:
                        if s2 != 0 and s2 < s1: continue
                        if s2 == 0 and (s2t == 'EMA' or s2t == 'SMA'): continue

                        t = doTrade(poola, stdPeriod, stdGuage, ft, f, s1t, s1,
                                    s2t, s2, '', 0, '', 0, '', 0)

                        if t.equity > maxAEquity:
                            maxAEquity = t.equity
                            maxEAs = [ft, f, s1t, s1, s2t, s2]

            elapsed = (datetime.datetime.now() - starttime).seconds
            log.info('find A time: ' + str(elapsed) + ' ')
            poola.showStrategies()

            for ft, f in [(matype, period) for matype in matypes
                          for period in farr]:
                for s1t, s1 in [(matype, period) for matype in matypes
                                for period in s1arr]:
                    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 s2arr]:
                        if s2 != 0 and s2 < s1: continue
                        if s2 == 0 and (s2t == 'EMA' or s2t == 'SMA'): continue

                        t = doTrade(poolb, stdPeriod, stdGuage, '', 0, '', 0,
                                    '', 0, ft, f, s1t, s1, s2t, s2)

                        if t.equity > maxBEquity:
                            maxBEquity = t.equity
                            maxEBs = [ft, f, s1t, s1, s2t, s2]

            elapsed = (datetime.datetime.now() - starttime).seconds
            log.info('find B time: ' + str(elapsed) + ' ')
            poolb.showStrategies()

            logb.info(
                str(stdPeriod) + ',' + str(stdGuage) + ',' + str(maxAEquity) +
                ',' + str(maxBEquity))
            logb.info(str(maxEAs))
            logb.info(str(maxEBs))

            for i in range(5):
                sa = poola.strategies[i]
                sb = poolb.strategies[i]
                t = doTrade(pool, stdPeriod, stdGuage, sa[0].args[2],
                            sa[0].args[3], sa[0].args[4], sa[0].args[5],
                            sa[0].args[6], sa[0].args[7], sb[0].args[8],
                            sb[0].args[9], sb[0].args[10], sb[0].args[11],
                            sb[0].args[12], sb[0].args[13])
                t.generateGraph()
                pool.estimate(t)

            stdGuage += 0.1

    pool.showStrategies()
Exemplo n.º 23
0
def runStrategy(in_prices):
	global mas, emas, smas, lwmas, std, prices
	log.debug('beginning one strategy ...')
	
	prices = in_prices
	ps = [p['close'] for p in prices]
	
	std = [0] * 51
	l = len(prices)
	for period in range(20, 21):
		std[period] = [0] * l
		for i in range(period - 1, l):
			std[period][i] = round(np.std(ps[i-period+1 : i+1], dtype=np.float64, ddof=0), 3)
	
	mas = [0] * 181
	emas = [0] * 181
	smas = [0] * 181
	lwmas = [0] * 181
	for period in range(2, 181):
		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)
		
	
	#pool = StrategyPool(100)
	#t = doTrade(pool, 20, 0.1, 0.2, 'SMA', 20, 'SMA', 34, 'LWMA', 40, 'SMA', 20, 'SMA', 34, 'LWMA', 120)
	#pool.showStrategies()
	#return 
	
	log.debug('running first strategy ...')
	starttime = time.time() 
	matypes = ['MA', 'EMA', 'SMA', 'LWMA']
	
	#farr = [2, 3, 4, 5, 6, 7, ]
	#s1arr = [4, 6, 8, 10, 12, 14, 16, 18, 20, ]
	#s2arr = [0, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, ]
	#farr = [20,]
	#s1arr = [40, ]
	#s2arr = [0, ]
	farr = range(40, 41)[::3]
	s1arr = range(4, 121)[::6]
	s2arr = range(0, 181)[::15]
	
	stdGuage1, stdGuage2 = 0.1, 0.2
	pool = StrategyPool(50)
	poola = StrategyPool(10)
	poolb = StrategyPool(10)
	
	for stdPeriod in [20, ]:
		for no in ['A', 'B', ]:
			for ft, f in [(matype, period) for matype in matypes for period in farr]:
				for s1t, s1 in [(matype, period) for matype in matypes for period in s1arr]:
					if s1 < f: continue
					elapsed = long(time.time() - starttime)
					log.debug('== ' + str(elapsed) + ',' + ft + '_' + str(f) + ',' + s1t + '_' + str(s1) + ' ==')
					for s2t, s2 in [(matype, period) for matype in matypes for period in s2arr]:
						if s2 != 0 and s2 <= s1: continue
						if s2 == 0 and (s2t == 'EMA' or s2t == 'SMA' or s2t == 'LWMA'): continue
						if no == 'A':
							doTrade(poola, stdPeriod, stdGuage1, stdGuage2, ft, f, s1t, s1, s2t, s2, '', 0, '', 0, '', 0)
						elif no == 'B':
							doTrade(poolb, stdPeriod, stdGuage1, stdGuage2, '', 0, '', 0, '', 0, ft, f, s1t, s1, s2t, s2)
			elapsed = long(time.time() - starttime)
			log.info('find ' + no + ' time: ' + str(elapsed) + ' ')
		
		for i in range(10):
			sa = poola.strategies[i]
			sb = poolb.strategies[i]
			t = doTrade(pool, stdPeriod, stdGuage1, stdGuage2, sa[0].args[0], sa[0].args[1], sa[0].args[2], sa[0].args[3], sa[0].args[4], sa[0].args[5], sb[0].args[6], sb[0].args[7], sb[0].args[8], sb[0].args[9], sb[0].args[10], sb[0].args[11])
			#t.generateGraph()
	
	pool.showStrategies()
Exemplo n.º 24
0
def runStrategy_0(in_prices):
    global mas, emas, smas, std, prices
    log.debug("beginning first 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] = round(np.std(ps[i - period + 1 : i + 1], dtype=np.float64, ddof=0), 3)

    mas = [0] * 61
    emas = [0] * 61
    smas = [0] * 61
    for period in range(2, 61):
        mas[period] = ma.calc_ma(ps, period)
        emas[period] = ma.calc_ema(ps, period)
        smas[period] = ma.calc_sma(ps, period)

    log.debug("running first strategy ...")
    starttime = datetime.datetime.now()
    matypes = ["MA", "EMA", "SMA"]

    farr = [2, 3, 4, 5, 6, 7]
    s1arr = [4, 6, 8, 10, 12, 14, 16, 18, 20]
    s2arr = [0, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51]

    pool = StrategyPool(100)

    for stdPeriod in [20, 30, 40]:
        stdGuage = 1.0
        while stdGuage <= 1.3:
            maxAEquity = maxBEquity = 0
            poola = StrategyPool(5)
            poolb = StrategyPool(5)

            for ft, f in [(matype, period) for matype in matypes for period in farr]:
                for s1t, s1 in [(matype, period) for matype in matypes for period in s1arr]:
                    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 s2arr]:
                        if s2 != 0 and s2 < s1:
                            continue
                        if s2 == 0 and (s2t == "EMA" or s2t == "SMA"):
                            continue

                        t = doTrade(poola, stdPeriod, stdGuage, ft, f, s1t, s1, s2t, s2, "", 0, "", 0, "", 0)

                        if t.equity > maxAEquity:
                            maxAEquity = t.equity
                            maxEAs = [ft, f, s1t, s1, s2t, s2]

            elapsed = (datetime.datetime.now() - starttime).seconds
            log.info("find A time: " + str(elapsed) + " ")
            poola.showStrategies()

            for ft, f in [(matype, period) for matype in matypes for period in farr]:
                for s1t, s1 in [(matype, period) for matype in matypes for period in s1arr]:
                    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 s2arr]:
                        if s2 != 0 and s2 < s1:
                            continue
                        if s2 == 0 and (s2t == "EMA" or s2t == "SMA"):
                            continue

                        t = doTrade(poolb, stdPeriod, stdGuage, "", 0, "", 0, "", 0, ft, f, s1t, s1, s2t, s2)

                        if t.equity > maxBEquity:
                            maxBEquity = t.equity
                            maxEBs = [ft, f, s1t, s1, s2t, s2]

            elapsed = (datetime.datetime.now() - starttime).seconds
            log.info("find B time: " + str(elapsed) + " ")
            poolb.showStrategies()

            logb.info(str(stdPeriod) + "," + str(stdGuage) + "," + str(maxAEquity) + "," + str(maxBEquity))
            logb.info(str(maxEAs))
            logb.info(str(maxEBs))

            for i in range(5):
                sa = poola.strategies[i]
                sb = poolb.strategies[i]
                t = doTrade(
                    pool,
                    stdPeriod,
                    stdGuage,
                    sa[0].args[2],
                    sa[0].args[3],
                    sa[0].args[4],
                    sa[0].args[5],
                    sa[0].args[6],
                    sa[0].args[7],
                    sb[0].args[8],
                    sb[0].args[9],
                    sb[0].args[10],
                    sb[0].args[11],
                    sb[0].args[12],
                    sb[0].args[13],
                )
                t.generateGraph()
                pool.estimate(t)

            stdGuage += 0.1

    pool.showStrategies()
Exemplo n.º 25
0
def runStrategy(in_prices):
    global mas, emas, smas, lwmas, std, prices
    log.debug('beginning one strategy ...')

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

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

    mas = [0] * 181
    emas = [0] * 181
    smas = [0] * 181
    lwmas = [0] * 181
    for period in range(2, 181):
        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)

    #pool = StrategyPool(100)
    #t = doTrade(pool, 20, 0.1, 0.2, 'SMA', 20, 'SMA', 34, 'LWMA', 40, 'SMA', 20, 'SMA', 34, 'LWMA', 120, 'MA', 20, 'SMA', 34, 'LWMA', 120)
    #pool.showStrategies()
    #return

    log.debug('running first strategy ...')
    starttime = time.time()
    matypes = ['MA', 'EMA', 'SMA', 'LWMA']

    #farr = [2, 3, 4, 5, 6, 7, ]
    #s1arr = [4, 6, 8, 10, 12, 14, 16, 18, 20, ]
    #s2arr = [0, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, ]
    #farr = [20,]
    #s1arr = [40, ]
    #s2arr = [0, ]
    farr = range(40, 41)[::3]
    s1arr = range(4, 121)[::6]
    s2arr = range(0, 181)[::15]

    stdGuage1, stdGuage2 = 0.1, 0.2
    pool = StrategyPool(50)
    poola = StrategyPool(10)
    poolb = StrategyPool(10)
    poolc = StrategyPool(10)

    for stdPeriod in [
            20,
    ]:
        for no in ['A', 'B', 'C']:
            for ft, f in [(matype, period) for matype in matypes
                          for period in farr]:
                for s1t, s1 in [(matype, period) for matype in matypes
                                for period in s1arr]:
                    if s1 < f: continue
                    elapsed = long(time.time() - starttime)
                    log.debug('== ' + str(elapsed) + ',' + ft + '_' + str(f) +
                              ',' + s1t + '_' + str(s1) + ' ==')

                    for s2t, s2 in [(matype, period) for matype in matypes
                                    for period in s2arr]:
                        if s2 != 0 and s2 <= s1: continue
                        if s2 == 0 and (s2t == 'EMA' or s2t == 'SMA'
                                        or s2t == 'LWMA'):
                            continue
                        if no == 'A':
                            doTrade(poola, stdPeriod, stdGuage1, stdGuage2, ft,
                                    f, s1t, s1, s2t, s2, '', 0, '', 0, '', 0,
                                    '', 0, '', 0, '', 0)
                        elif no == 'B':
                            doTrade(poolb, stdPeriod, stdGuage1, stdGuage2, '',
                                    0, '', 0, '', 0, ft, f, s1t, s1, s2t, s2,
                                    '', 0, '', 0, '', 0)
                        elif no == 'C':
                            doTrade(poolc, stdPeriod, stdGuage1, stdGuage2, '',
                                    0, '', 0, '', 0, '', 0, '', 0, '', 0, ft,
                                    f, s1t, s1, s2t, s2)
            elapsed = long(time.time() - starttime)
            log.info('find ' + no + ' time: ' + str(elapsed) + ' ')

        for i in range(10):
            sa = poola.strategies[i]
            sb = poolb.strategies[i]
            sc = poolc.strategies[i]
            t = doTrade(pool, stdPeriod, stdGuage1, stdGuage2, sa[0].args[0],
                        sa[0].args[1], sa[0].args[2], sa[0].args[3],
                        sa[0].args[4], sa[0].args[5], sb[0].args[6],
                        sb[0].args[7], sb[0].args[8], sb[0].args[9],
                        sb[0].args[10], sb[0].args[11], sc[0].args[12],
                        sc[0].args[13], sc[0].args[14], sc[0].args[15],
                        sc[0].args[16], sc[0].args[17])
            #t.generateGraph()

    pool.showStrategies()