Beispiel #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()
Beispiel #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
Beispiel #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
Beispiel #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
	
Beispiel #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)
Beispiel #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)
Beispiel #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()
Beispiel #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()
Beispiel #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()
Beispiel #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()
Beispiel #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()
Beispiel #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
Beispiel #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()
Beispiel #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()
Beispiel #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
Beispiel #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
Beispiel #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()
Beispiel #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
Beispiel #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()
Beispiel #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
Beispiel #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()
Beispiel #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()
Beispiel #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()
Beispiel #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()
Beispiel #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()