def reply_handler(msg): if msg.typeName == 'realtimeBar' or msg.typeName == 'updateMktDepth' or msg.typeName == 'tickPrice' or msg.typeName == 'tickSize' or msg.typeName == 'tickString': msgarray = (str(msg)).split() reqid=(msgarray[1]).split('=')[1].replace(',','') sym=symTickerIddict[reqid] onerow = (str(msg)).split(',') timenow= datetime.now().time().isoformat() ticktime = timenow.replace(':','').replace('.','') if msg.typeName == 'realtimeBar': fname = DataDown+ today + '.' + sym +'.rtimebar.' + ticktime+'.txt' cleanonerow = Mod_TicksUtile.clean_RTTick5secBars(onerow,sym) rpu_rp.WriteArrayToCsvfile(fname,[cleanonerow]) rpu_rp.WriteArrayToCsvfile(DataDown +today+'.'+sym+ '.RTtickslastquote.csv',[cleanonerow]) elif msg.typeName == 'updateMktDepth': fname = DataDown+ today + '.' + sym +'.rtDOMbar.' + ticktime+'.txt' cleanonerow = Mod_TicksUtile.clean_rtDOMbar(onerow,sym) rpu_rp.WriteArrayToCsvfile(fname,[cleanonerow]) rpu_rp.WriteStringsToFileAppend(TMP +'replys.RTticks',str(msg)) elif msg.typeName == 'tickPrice' or msg.typeName == 'tickSize' : fname = DataDown+ today + '.' + sym +'.rtTICKbar.' + ticktime+'.txt' cleanonerow = Mod_TicksUtile.clean_rtTICKbar(onerow,sym) rpu_rp.WriteArrayToCsvfile(fname,[cleanonerow]) rpu_rp.WriteStringsToFileAppend(TMP +'replys.RTticks',str(msg)) elif msg.typeName == 'tickString' : ## fname = DataDown+ today + '.' + sym +'.rtTICKStringsbar.' + ticktime+'.txt' ## cleanonerow = Mod_TicksUtile.clean_rtTICKbar(onerow,sym) ## rpu_rp.WriteArrayToCsvfile(fname,[cleanonerow]) rpu_rp.WriteStringsToFileAppend(TMP +'replys.RTticksStrings',str(msg)) else: print str(msg) ## still need the TickString and Generic typeNames rpu_rp.WriteStringsToFileAppend(TMP +'replys.RTticks',str(msg))
def create_viewfiles(tarray): oldfile = viewsdir + 'list_' + oldword + '.html' oldfilev = viewsdir + 'view_' + oldword + '.html' print oldfile for tname in tarray: newword = tname newfile = viewsdir + 'list_' + newword + '.html' newwordplural = newword + 's' oldwordplural = oldword + 's' print 'foundoone', newfile newfile = viewsdir + 'list_' + newword + '.html' newfilev = viewsdir + 'view_' + newword + '.html' if os.path.isfile(newfile): os.remove(newfile) if os.path.isfile(newfilev): os.remove(newfilev) lines = rpu_rp.TxtToLines(oldfile) for line in lines: newline = line.replace(oldwordplural, newwordplural).replace(oldword, newword) rpu_rp.WriteStringsToFileAppend(newfile, newline) linesv = rpu_rp.TxtToLines(oldfilev) for line in lines: newline = line.replace(oldwordplural, newwordplural).replace(oldword, newword) rpu_rp.WriteStringsToFileAppend(newfilev, newline)
def reply_handler(msg): if msg.typeName == 'historicalData': pass elif 'connection is OK' in str(msg): pass else: rpu_rp.WriteStringsToFileAppend(replyfname, str(msg))
def historical_data_handler(msg): global newDataList fname = DataDown + today + '.' + sym + '.' + bar.replace( ' ', '') + '.ddload.csv' if ('finished' in str(msg.date)) == False: ### keep building the list ## print (int(msg.date)) fstring = "%Y-%m-%d %H:%M:%S" dateold = localtime(int(msg.date)) tdate = strftime(fstring, dateold) if bar == '1 day': tdate = (str((int(msg.date))))[0:4] + '-' + str( (int(msg.date)))[4:6] + '-' + str( (int(msg.date)))[6:8] + ' 23:59:58' ## print tdate ## print msg.date dataStr = '%s, %s, %s, %s, %s, %s, %s' % ( sym, tdate, msg.open, msg.high, msg.low, msg.close, msg.volume) newDataList = newDataList + [dataStr] else: print 'next list' rpu_rp.WriteStringsToFile(fname, '') #flush the file for a in newDataList: if len(a) > 2: rpu_rp.WriteStringsToFileAppend(fname, a) newDataList = []
def localreply_handler(msg): if msg.typeName == 'nextValidId': nextorderID = msg.orderId rpu_rp.WriteStringsToFile(TMP + 'OrderIdsSavedlocalsigcreate.csv', str(nextorderID) + ',') rpu_rp.WriteStringsToFileAppend(TMP + 'entryreplys', str(msg)) print str(msg)
def localreply_handler(msg): if msg.typeName == 'nextValidId': nextorderID = msg.orderId rpu_rp.WriteStringsToFile(TMP +'OrderIdsSavedlocalsigcreate.csv',str(nextorderID)+ ',') if msg.typeName == 'tickPrice' and 'field=1,' in str(msg) : rpu_rp.WriteStringsToFile(TMP +'pricenow',str(float(msg.price)) +',') rpu_rp.WriteStringsToFileAppend(TMP + 'FillScanner.replys',str(msg))
def reply_handler(msg): if msg.typeName == 'realtimeBar': msgarray = (str(msg)).split() ## print msgarray, 'rawmessg' reqid = (msgarray[1]).split('=')[1].replace(',', '') ## fieldnum = (msgarray[2]).split('=')[1].replace(',','') sym = symTickerIddict[reqid] onerow = (str(msg)).split(',') ## print onerow,'onerow split by comma' timenow = datetime.now().time().isoformat() ## print msg.typeName, sym, timenow if msg.typeName == 'realtimeBar': cleanonerow = TicksUtile.clean_RTTick5secBars(onerow, sym) rpu_rp.WriteArrayToCsvfileAppend( DataDown + today + '.' + sym + '.RTticks.csv', [cleanonerow]) rpu_rp.WriteArrayToCsvfile( DataDown + today + '.' + sym + '.RTtickslastquote.csv', [cleanonerow]) ######## elif msg.typeName == 'tickString' or msg.typeName == 'tickSize' or msg.typeName == 'tickPrice' : ######## onerow.append(timenow) ######## rpu_rp.WriteArrayToCsvfileAppend(DataDown +today+'.'+sym+ '.RTtickData.csv',[onerow]) ######## elif msg.typeName == 'updateMktDepth': ######## onerow.append(timenow) ######## rpu_rp.WriteArrayToCsvfileAppend(DataDown +today+'.'+sym+ '.RTMktDepth.csv',[onerow]) else: print str(msg) rpu_rp.WriteStringsToFileAppend(TMP + 'replys.RTticks', str(msg))
def RTDepth_reply_handler(msg): depthpricearray = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] depthsizearray = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] if msg.typeName == 'updateMktDepth' or msg.typeName == 'tickString' or msg.typeName == 'tickSize' or msg.typeName == 'tickPrice': current_time = datetime.now().time() timenow = current_time.isoformat() reqid = (((str(msg)).split()[1]).split('=')[1]).replace(',', '') sym = symTickerIddict[reqid] onerow = (str(msg)).split(',') onerow.append(timenow) if msg.typeName == 'updateMktDepth': ## print msg ## print onerow domprice = onerow[4].replace(' price=', '') domsize = onerow[5].replace(' size=', '').replace('>', '') domposition = int(onerow[1].replace(' position=', '')) depthpricearray[domposition] = domprice depthsizearray[domposition] = domsize print depthpricearray print depthsizearray rpu_rp.WriteArrayToCsvfileAppend( DataDown + today + '.' + sym + '.RTMktDepth.csv', [onerow]) elif msg.typeName == 'tickString' or msg.typeName == 'tickSize' or msg.typeName == 'tickPrice': rpu_rp.WriteArrayToCsvfileAppend( DataDown + today + '.' + sym + '.RTtickData.csv', [onerow]) ## elif msg.typeName == 'tickString': if msg.tickType == 48: else: print str(msg) current_time = datetime.now().time() timenow = current_time.isoformat() rpu_rp.WriteStringsToFileAppend(TMP + 'replys.RTtickDOMs', str(msg)) if msg.typeName == 'tickString': ## print str(msg) pass
def reply_handler(msg): if msg.typeName == 'nextValidId': nextorderID = msg.orderId rpu_rp.WriteStringsToFile('OrderIdsSaved.csv',str(nextorderID)+ ',') if msg.typeName == 'tickPrice' and 'field=1,' in str(msg) : rpu_rp.WriteStringsToFile('pricenow',str(float(msg.price)) +',') ## print "Server Response: %s, %s" % (msg.typeName, msg) rpu_rp.WriteStringsToFileAppend('replys',str(msg))
def localreply_handler(msg): if msg.typeName == 'nextValidId': nextorderID = msg.orderId rpu_rp.WriteStringsToFile(TMP +'OrderIdsSavedlocalsigcreate.csv',str(nextorderID)+ ',') if msg.typeName == 'tickPrice' and 'field=1,' in str(msg) : rpu_rp.WriteStringsToFile(TMP +'pricenow',str(float(msg.price)) +',') ## print 'writing realtime price to pricenow file' ## print "Server Response: %s, %s" % (msg.typeName, msg) rpu_rp.WriteStringsToFileAppend(TMP + 'replys',str(msg))
def create_utilmodel(tarray): oldfile = modelsdir + 'utils.py' bupfile = oldfile + 'bu' if oldfile: print 'foundoone' shutil.copy(oldfile, bupfile) os.remove(oldfile) st1 = 'def url(f,args=[]): return URL(r=request,f=f,args=args)' st2 = 'def button(text,action,args=[]):' st3 = '\treturn SPAN(\'[\',A(text,_href=URL(r=request,f=action,args=args)),\']\') ' strings = st1 + '\n' + st2 + '\n' + st3 + '\n' rpu_rp.WriteStringsToFileAppend(oldfile, strings) for tname in tarray: ## tname = 'orgs' st1 = 'def link_' + tname + '(' + tname + '):' st2 = '\treturn A(' + tname + '.id,_href=url(\'view_' + tname + '\',' + tname + '.id))' st3 = '\t' strings = st1 + '\n' + st2 + '\n' + st3 + '\n' rpu_rp.WriteStringsToFileAppend(oldfile, strings)
def RTBar_reply_handler(msg): if msg.typeName == 'realtimeBar': reqid=(((str(msg)).split()[1]).split('=')[1]).replace(',','') sym=symTickerIddict[reqid] onerow = (str(msg)).split(',') cleanonerow = TicksUtile.clean_RTTick5secBars(onerow,sym) rpu_rp.WriteArrayToCsvfileAppend(DataDown +today+'.'+sym+ '.RTticks.csv',[cleanonerow]) rpu_rp.WriteArrayToCsvfile(DataDown +today+'.'+sym+ '.RTtickslastquote.csv',[cleanonerow]) else: print str(msg) rpu_rp.WriteStringsToFileAppend(TMP +'replys.RTticks',str(msg))
def copyfiles(oldword, newword): newwordplural = newword + 's' oldwordplural = oldword + 's' oldfile = viewssugardir + 'list_' + oldword + '.html' newfile = viewsdir + 'list_' + newword + '.html' lines = rpu_rp.TxtToLines(oldfile) os.system('rm ' + newfile) for line in lines: newline = line.replace(oldword, newword).replace(oldwordplural, newwordplural) rpu_rp.WriteStringsToFileAppend(newfile, newline)
def create_layouts(tname): modulename = tname modulenameupperone = modulename.capitalize() modulenameplural = modulename # +'s' viewslist = ['create_', 'view_', 'import_', 'create_fromVcard_'] for view in viewslist: layoutname = view + modulenameplural + '.html' controllername = view + modulenameplural + '.txt' rpu_rp.WriteStringsToFile(layoutname, '') ## print view, modulenameplural, layoutname textblob = '{{extend \'layout.html\'}}' + '\n' + '<h1>Edit Company Info</h1>' + '\n' + '{{=form}}' + '\n' controllertext = 'def ' + view + modulenameplural + '()' + '\n' + '\t' + 'return dict()' rpu_rp.WriteStringsToFileAppend(layoutname, textblob)
def grapmercpages(startnum,endnum): pagesfile = 'mercenary_pages.' + startnum + '.to.'+ endnum + '.txt' webbase = 'http://www.mercenarytrader.net/page/' def Connect2Web(webpage): aResp = urllib2.urlopen(webpage); web_pg = aResp.read(); return web_pg ############################# fname = pagesfile i= startnum while i < endnum : webpage = webbase + str(i) +'/' print i newpage = Connect2Web(webpage) rpu_rp.WriteStringsToFileAppend(fname,newpage) i+=1
def historical_data_handler(msg): global newDataList fname = today + '.' + sym + '.' + duration + bar + '.csv' ## print msg.reqId if ('finished' in str(msg.date)) == False: ### keep building the list dataStr = '%s, %s, %s, %s, %s, %s, %s' % ( sym, strftime("%Y-%m-%d %H:%M:%S", localtime(int(msg.date))), msg.open, msg.high, msg.low, msg.close, msg.volume) newDataList = newDataList + [dataStr] else: print 'next list' rpu_rp.WriteStringsToFile(fname, '') ## rpu_rp.WriteStringsToFile(fname,newDataList) for a in newDataList: ## print a rpu_rp.WriteStringsToFileAppend(fname, a) newDataList = []
def reply_handler(msg): if msg.typeName == 'realtimeBar': reqid = (((str(msg)).split()[1]).split('=')[1]).replace(',', '') sym = symTickerIddict[reqid] onerow = (str(msg)).split(',') cleanonerow = TicksUtile.format_RTTickoneline_to_5secBars(onerow, sym) rpu_rp.WriteArrayToCsvfileAppend( DataDown + today + '.' + sym + '.RTticks.csv', [cleanonerow]) rpu_rp.WriteArrayToCsvfile( DataDown + today + '.' + sym + '.RTtickslastquote.csv', [cleanonerow]) else: if 'connection is OK' in str(msg): pass else: print str(msg) rpu_rp.WriteStringsToFileAppend(replyfname, str(msg))
def reply_handler(msg): if msg.typeName == 'realtimeBar': msgarray = (str(msg)).split() reqid = (msgarray[1]).split('=')[1].replace(',', '') sym = symTickerIddict[reqid] onerow = (str(msg)).split(',') timenow = datetime.now().time().isoformat() ticktime = timenow.replace(':', '').replace('.', '') fname = DataDown + today + '.' + sym + '.rtimebar.' + ticktime + '.txt' cleanonerow = Mod_TicksUtile.clean_RTTick5secBars(onerow, sym) rpu_rp.WriteArrayToCsvfile(fname, [cleanonerow]) rpu_rp.WriteArrayToCsvfile( DataDown + today + '.' + sym + '.RTtickslastquote.csv', [cleanonerow]) else: print str(msg) rpu_rp.WriteStringsToFileAppend(TMP + 'replys.RTticks', str(msg))
def local_reply_handler(msg): value = 'empty' fnum = 45 if msg.typeName == 'tickString': fnum = msg.tickType value = msg.value if msg.typeName == 'tickPrice': fnum = msg.field value = msg.price quotearray[5] = symTickerIddict[msg.tickerId] if msg.typeName == 'tickSize': fnum = msg.field value =msg.size quotearray[int(fielddict[str(fnum)])] = value if msg.typeName == 'tickSnapshotEnd': sym = quotearray[5] quotearray[6] = today quotearray[0] = datetime.now().time().isoformat() linearray = [] linearray.append(quotearray) rpu_rp.WriteArrayToCsvfileAppend(DataDown +today+'.'+sym+ '.ticksnaps.csv',linearray) rpu_rp.WriteStringsToFileAppend(TMP +'replys.snapshots',str(msg))
def historical_data_handler(msg): global newDataList fname = DataDown + today + '.' + sym + '.' + bar.replace( ' ', '') + '.ddload.csv' if ('finished' in str(msg.date)) == False: ### keep building the list ## print (int(msg.date)) fstring = "%Y-%m-%d %H:%M:%S" dateold = localtime(int(msg.date)) tdate = strftime(fstring, dateold) if bar == '1 day': tdate = str((int(msg.date))) + ' 23:59:58' dataStr = '%s, %s, %s, %s, %s, %s, %s' % ( sym, tdate, msg.open, msg.high, msg.low, msg.close, msg.volume) newDataList = newDataList + [dataStr] else: print 'next list' if os.path.isfile(fname): os.remove(fname) #flush the file ## rpu_rp.WriteArrayToCsvfile(fname,newDataList) for a in newDataList: rpu_rp.WriteStringsToFileAppend(fname, a) newDataList = []
def RTDepth_reply_handler(msg): if msg.typeName == 'tickString' or msg.typeName == 'tickSize' or msg.typeName == 'tickPrice': ## current_time = datetime.now().time() ## timenow=current_time.isoformat() timenow = datetime.now().time().isoformat() reqid = (((str(msg)).split()[1]).split('=')[1]).replace(',', '') sym = symTickerIddict[reqid] onerow = (str(msg)).split(',') onerow.append(timenow) rpu_rp.WriteArrayToCsvfileAppend( DataDown + today + '.' + sym + '.RTtickData.csv', [onerow]) elif msg.typeName == 'updateMktDepth': ## current_time = datetime.now().time() timenow = datetime.now().time().isoformat() reqid = (((str(msg)).split()[1]).split('=')[1]).replace(',', '') sym = symTickerIddict[reqid] onerow = (str(msg)).split(',') onerow.append(timenow) rpu_rp.WriteArrayToCsvfileAppend( DataDown + today + '.' + sym + '.RTMktDepth.csv', [onerow]) else: print str(msg) rpu_rp.WriteStringsToFileAppend(TMP + 'replys.RTtickDOMs', str(msg))
def localreply_handler(msg): rpu_rp.WriteStringsToFileAppend(TMP + 'portfolio.replys',str(msg))
def reply_handler(msg): print "Server Response: %s, %s" % (msg.typeName, msg) rpu_rp.WriteStringsToFileAppend('ibreplys', str(msg))
orderstring = str(order_id) + ',' + tside + ',' + str(tsize) + ',' + sym + ',' + str(pricenow) print orderstring entryorder = ibutiles.create_order('LMT', tsize, tside, pricenow,True,pricenow,pricenow,'entry') profitorder = ibutiles.create_order('LMT', tsize, flipside, profprice,True,profprice,profprice,'profit') trailamount = onetick * 8.0 profitTrailSTP = ibutiles.create_order('TRAIL', tsize, flipside, profprice,True,trailamount,profprice,'trailrp') if mode == 'notrade': print 'flag said do not place!!!!!' else: if sigid != prevsigid: tws_conn.placeOrder(order_id, symcontract, entryorder) tws_conn.placeOrder(order_id+1, symcontract, profitTrailSTP) prevsigid = sigid rpu_rp.WriteStringsToFileAppend('entryorderssent',orderstring) ## check_for_entry_fills(profitorder,order_id) print 'placing order' else: print 'dupe order, nothing done..' sleep(5) print 'disconnecting.. done..' tws_conn.disconnect() ####reqGlobalCancel() ## enter a trailstop as profit order... ## tws_conn.reqPositions(62,1) ## tws_conn.reqExecutions(3,) ## tws_conn.reqAllOpenOrders() ## tws_conn.cancelOrder(order_id)
################################## pricenow = limitprice ######################## treverseside = 'SELL' if tside == 'SELL': treverseside = 'BUY' entrybuffer = addamt else: entrybuffer = addamt * int(-1) entryprice = pricenow + entrybuffer ################################# tranflag = False ### <<<<<<<<<this needs to be flipped for transmits.....!!!!!! ################################# orderstring = str(order_id) + ',' + tside + ',' + str( tsize) + ',' + sym + ',' + str(entryprice) rpu_rp.WriteStringsToFileAppend(TMP + 'Entry.orders.Sent.csv', orderstring) entryorder = ibutiles.create_order('LMT', tsize, tside, entryprice, tranflag, entryprice, entryprice, 'entry') bracketorder = ibutiles.create_bracket_order( 'LMT', tsize, treverseside, entryprice + 1.0, tranflag, entryprice, entryprice, 'entry', order_id) bracketorderSTP = ibutiles.create_bracket_order( 'STP', tsize, treverseside, entryprice + 1.0, tranflag, entryprice - 2, entryprice - 2, 'entry', order_id) if testmode == 'online': tws_conn.placeOrder(order_id, symcontract, entryorder) tws_conn.placeOrder(order_id + 1, symcontract, bracketorder) tws_conn.placeOrder(order_id + 2, symcontract, bracketorderSTP) print 'placing order', orderstring order_id = order_id + 3
def rule_tester(currentstates, rule, curprice, sym): ## print currentstates, 'arrayin' [' 2015-09-18', '17.3051', 'pos', '8.3948', 'slopeup', ## rule = ['mcross','5mins','stringtest','neg',fnum,maxval,minval,'SELL'] ## print rule flag = 'nomatch' rind = rule[0] rdur = rule[1] rinddur = rind + rdur rinddursym = rind + rdur + sym ## print rule ##ROC,15mins,value,NA,1,.80% rtype = rule[2] ## print rtype percenttest = float(rule[5]) rstring = rule[3] fnum = int(rule[4]) rsignbase = rule[7] rulename = rind + rdur + rtype + rstring + rsignbase ## print indsMIDdict midpoint = float(indsMIDdict[rinddursym]) sloperule = indsVALNORMALdict[rinddursym] PCompare = indsSTRINGNORMALdict[rinddursym] maxpoint = float(indsMAXdict[rinddursym]) rulerange = (maxpoint - midpoint) * 2 midvalue = maxpoint - midpoint trigger = percenttest * midvalue hitrigger = midpoint + trigger lotrigger = midpoint - trigger svalall = '' normal = 'normal' stime = ' 2016-01-08 16:00:00' sigprice = 0.0 for l in currentstates: ## print l if flag == 'passedrule': pass else: #keep looking if len(l) > 0: ## [' 2016-01-11 13:54:00', '-0.1704', 'neg', '-0.0549', 'slopedn', 'mcross', 'ES', 'nocross', '1min', '1918.75', '1918.25', '1918.5', '24'] ##[' 2016-01-11 13:54:00', '-0.49', 'neg', '-0.0299', 'slopedn', 'mcross', 'ES', 'nocross', '3mins', '1918.75', '1918.25', '1918.5', '7'] sind = l[5] sslope = l[4] ssign = l[2] sdur = l[8] sstring = l[7] sindsdur = sind + sdur stime = l[0] sigprice = l[11] if rtype == 'value' or rtype == 'priceCompare': sval = float(l[fnum]) else: sval = l[fnum] svalall = svalall + str(sval) if '1min' in str(l): stime = l[0] sigprice = l[11] if sind == rind and sdur == rdur: ## print sind,sdur,rstring,sstring if rtype == 'string': if 'slope' in rstring: ## print sloperule if sloperule == 'slopenormal' and sval == 'slopedn': flag = 'SELL' else: flag = 'BUY' else: if sval == 'pos' and rsignbase == 'signbased': ## this is for signs generally...to show a state for mcross for inst flag = 'BUY' elif sval == 'neg' and rsignbase == 'signbased': flag = 'SELL' elif rstring in sstring and sstring == 'poscrxx': flag = 'BUY' ## print l elif rstring in sstring and sstring == 'negcrxx': flag = 'SELL' ## print l else: pass ################ elif rtype == 'priceCompare': ## print 'pricecompare',curprice,'must be', PCompare, sval, 'on', sdur pass if PCompare == 'BELOW' and sval > float(curprice): print 'price is below level,so sell on klower', sval flag = 'SELL' elif PCompare == 'ABOVE' and sval < float(curprice): flag = 'BUY' else: pass ####################### elif rtype == 'value': if sval > hitrigger: if normal == normal: flag = 'SELL' else: flag == 'BUY' elif sval < lotrigger: if normal == normal: flag = 'BUY' else: flag == 'SELL' else: flag = 'nomatch' else: flag = 'nomatch' if flag != 'nomatch' and rtype != 'xxvalue': ## print 'match on...',sym,sind,sdur,sval,hitrigger, lotrigger, rstring,rtype, flag,sigprice ## matchline = 'Signal.' + sym + ' ' + sind + ' ' + sdur + ' ' + rstring +' ' + flag +' ' + str(sigprice) formatl = ' %5s %7.2f %9s %9s %5s %s SIGNAL' matchline = (formatl % (flag, float(sigprice), sind, sdur, sym, rsignbase)) print matchline print sval, hitrigger, lotrigger indns = ['ROC', 'mcross'] for indn in indns: symn = 'ES' durn = '5mins' ## rpInd.ShowLastBarofInd(symn,durn,indn) rpu_rp.WriteStringsToFileAppend( EXE + 'sigsrecent.' + sdur + '.csv', matchline) return flag, rulename, stime, sigprice, sval
modulename = 'contact' modulenameupperone = modulename.capitalize() modulenameplural = modulename + 's' viewslist = ['create_', 'view_', 'import_', 'create_fromVcard_'] for view in viewslist: layoutname = view + modulenameplural + '.html' controllername = view + modulenameplural + '.txt' rpu_rp.WriteStringsToFile(layoutname, '') print view, modulenameplural, layoutname textblob = '{{extend \'layout.html\'}}' + '\n' + '<h1>Edit Company Info</h1>' + '\n' + '{{=form}}' + '\n' controllertext = 'def ' + view + modulenameplural + '()' + '\n' + '\t' + 'return dict()' rpu_rp.WriteStringsToFileAppend(layoutname, textblob) rpu_rp.WriteStringsToFile(controllername, controllertext) ''' give a name of module and then create the following for it: 4 layouts....list,showone,edit,create [add export and print layout] 1 controller for each layout in cut paste text for default controller 1 model line with 3 default fields menu lines for model/menu.py import fileinput fnames = ['name','role'] for line in fileinput.input('newtablelist'): tname = line.strip()
def rule_tester(currentstates,rule,curprice,sym): ## rule = ['mcross','5mins','stringtest','neg',fnum,maxval,minval,'SELL'] flag = 'nomatch' ## print rule rind = rule[0] rdur = rule[1] rinddur = rind + rdur rinddursym = rind + rdur + sym rtype = rule[2] percenttest = float(rule[5]) rulestdvalue = float(rule[8]) rstring = rule[3] fnum = int(rule[4]) rsignbase = rule[7] rulename = rind+rdur+rtype+rstring+rsignbase ## print indsMIDdict midpoint = float(indsMIDdict[rinddursym]) sloperule = indsVALNORMALdict[rinddursym] PCompare = indsSTRINGNORMALdict[rinddursym] maxpoint = round(float(indsMAXdict[rinddursym]),4)## not used right now..could do for extreme sigs... std1value = 2* round(float(indsStdValuedict[rinddursym]),4) ## stdpoint = std1value * rulestdvalue ## rulerange = (stdpoint - midpoint)*2 ## midvalue = stdpoint - midpoint ## trigger = percenttest * midvalue ## hitrigger = midpoint + trigger ## lotrigger = midpoint - trigger svalall ='' normal = 'normal' stime = ' 2016-01-08 16:00:00' sigprice = 0.0 for l in currentstates: if flag == 'passedrule': pass else: #keep looking if len(l) > 0: sind = l[5] sslope = l[4] ssign = l[2] sdur = l[8] sstring = l[7] sindsdur = sind+sdur stime = l[0] sigprice = l[11] crossage = l[12] ## std1value = round(float(l[13]),4) stdpoint = std1value * rulestdvalue rulerange = (stdpoint - midpoint)*2 midvalue = stdpoint - midpoint trigger = percenttest * midvalue hitrigger = midpoint + trigger lotrigger = midpoint - trigger if rtype == 'value' or rtype == 'priceCompare': sval = float(l[fnum]) else: sval = l[fnum] svalall = svalall + str(sval) if '1min' in str(l): stime = l[0] sigprice = l[11] if sind == rind and sdur == rdur : if rtype == 'string': if 'slope' in rstring: ## print sloperule if sloperule == 'slopenormal' and sval == 'slopedn': flag = 'SELL' else: flag = 'BUY' else: if sval == 'pos' and rsignbase == 'signbased': ## this is for signs generally...to show a state for mcross for inst flag = 'BUY' elif sval == 'neg' and rsignbase == 'signbased': flag = 'SELL' elif rstring in sstring and sstring == 'poscrxx' : flag = 'BUY' ## print l elif rstring in sstring and sstring == 'negcrxx' : flag = 'SELL' ## print l else: pass ################ elif rtype == 'priceCompare': ## print 'pricecompare',curprice,'must be', PCompare, sval, 'on', sdur pass if PCompare == 'BELOW' and sval > float(curprice): print 'price is below level,so sell on klower',sval flag = 'SELL' elif PCompare == 'ABOVE' and sval < float(curprice) : flag = 'BUY' else: pass ####################### elif rtype == 'value' : if sval > hitrigger: if normal == normal: flag = 'SELL' else: flag == 'BUY' elif sval < lotrigger: if normal == normal: flag = 'BUY' else: flag == 'SELL' else: flag = 'nomatch' else: flag = 'nomatch' if flag != 'nomatch' and rtype != 'xxvalue': formatl = 'SIGNAL > %s %5s %6.2f %5s %4s %s %s %4.2f %5.3f' matchline = (formatl % (sym,flag,float(sigprice),sind,sdur,rsignbase,stime,sval,trigger)) print matchline rpu_rp.WriteStringsToFileAppend(sigarea+ 'sigsrecentfromRengine.' + sdur + '.csv',matchline) return flag,rulename,stime,sigprice,sval
def lable_adder(labelname,labelstring): lableline = '$app_strings[\''+labelname+'\'] = \''+labelstring +'\';' print lableline rpu_rp.WriteStringsToFileAppend(labelsfile,lableline)