原文地址 http://blog.csdn.net/gitchat/article/details/78588732
当我们提到 TensorFlow 的时候,我们仅仅只会关注它是一个很好的神经网络和深度学习的库。
但是,其实 TensorFlow 具有 tf.cond( https://www.tensorflow.org/api_docs/python/tf/cond ) 和 tf.while_loop( https://www.tensorflow.org/api_docs/python/tf/while_loop ) 函数,前者可以处理判断语句,后者可以处理循环语句,所以它也具有一般编程语言相同的表达式。
简单的说,我们可以用 C 语言或者 Python 语言实现的排序和搜索算法都可以在 TensorFlow 图中实现。
在本文中,我们就是要介绍 TensorFlow 的另一面,它的一般编程语言表达方式。我们利用 TensorFlow 图实现了一些简单算法,诸如 FizzBuzz 问题,线性搜索,冒泡排序 等等。
cond( pred, true_fn=None, false_fn=None, strict=False, name=None, fn1=None, fn2=None)
tf.cond(...)
是一个等效于 if 语句的节点。根据其中的参数 pred
返回的布尔值来判断返回什么值,比如当参数 pred
为 true
值时,节点返回参数 true_fn
的值,当参数 pred
为 false
时,节点返回参数 false_fn
的值。但是,其中的参数 true_fn
和参数 false_fn
都是需要是 lambda 或者函数。比如:
z = tf.multiply(a, b)result = tf.cond(x < y, lambda: tf.add(x, z), lambda: tf.square(y))
当 x < y 是 true 时,节点就会去执行 tf.add 操作。当 x < y 是 false 时,节点就会去执行 tf.square 操作。
接下来,我们来看一个完整的例子,如下:
x = tf.constant(2)y = tf.constant(5)def f1(): return tf.multiply(x, 17)def f2(): return tf.add(y, 23)r = tf.cond(tf.less(x, y), f1, f2)with tf.Session() as sess: print(sess.run(r))
请注意:API 中的某些参数被忽略了,因为它们将在以后的版本中被删除。
tf.cond — TensorFlow API r1.3(https://www.tensorflow.org/api_docs/python/tf/cond)
while_loop( cond, # Condition body, # Process to be executed when cond is True loop_vars, # Argument to body shape_invariants=None, parallel_iterations=10, back_prop=True, swap_memory=False, name=None)
tf.while_loop(...)
是一个等效于 while 语句的节点。根据其中的参数 cond
的布尔值来判断是否将循环继续,比如当参数 pred
为 true
值时,节点去执行 body
中的语句,当参数 pred
为 false
时,那么退出这个函数。比如:
i = tf.constant(0)c = lambda i: tf.less(i, 10)b = lambda i: tf.add(i, 1)r = tf.while_loop(c, b, [i])
当 i < 10 时,cond 返回的值是 true,所以节点会去执行 body 中的语句。当 i == 10 时,cond 返回的值是 false,那么节点就会退出。这种执行方式和一般语言中的 while 非常像。
我们也可以将循环式表达成如下:
while(cond(loop_vars)){ loop_vars = body(loop_vars); }
接下来,我们来看一个完整的例子,如下:
import tensorflow as tfimport numpy as npdef body(x): a = tf.random_uniform(shape=[2, 2], dtype=tf.int32, maxval=100) b = tf.constant(np.array([[1, 2], [3, 4]]), dtype=tf.int32) c = a + b return tf.nn.relu(x + c)def condition(x): return tf.reduce_sum(x) < 100x = tf.Variable(tf.constant(0, shape=[2, 2]))with tf.Session(): tf.initialize_all_variables().run() result = tf.while_loop(condition, body, [x]) print(result.eval())
tf.while_loop — TensorFlow API r1.3(https://www.tensorflow.org/api_docs/python/tf/while_loop)
请依次打印从1至100的整数,在该数能被3整除的时候,打印”Fizz”,能被5整除的时候打印”Buzz”,如果既能被3又能被5整除的时候,打印”FizzBuzz”。
import tensorflow as tfclass FizzBuzz(): def __init__(self, length=30): self.length = length # 程序需要执行的序列长度 self.array = tf.Variable([str(i) for i in range(1, length+1)], dtype=tf.string, trainable=False) # 最后程序返回的结果 self.graph = tf.while_loop(self.cond, self.body, [1, self.array],) # 对每一个值进行循环判断 def run(self): with tf.Session() as sess: tf.global_variables_initializer().run() return sess.run(self.graph) def cond(self, i, _): return (tf.less(i, self.length+1)) # 判断是否是最后一个值 def body(self, i, _): flow = tf.cond( tf.equal(tf.mod(i, 15), 0), # 如果值能被 15 整除,那么就把该位置赋值为 FizzBuzz lambda: tf.assign(self.array[i - 1], 'FizzBuzz'), lambda: tf.cond(tf.equal(tf.mod(i, 3), 0), # 如果值能被 3 整除,那么就把该位置赋值为 Fizz lambda: tf.assign(self.array[i - 1], 'Fizz'), lambda: tf.cond(tf.equal(tf.mod(i, 5), 0), # 如果值能被 5 整除,那么就把该位置赋值为 Buzz lambda: tf.assign(self.array[i - 1], 'Buzz'), lambda: self.array # 最后返回的结果 ) ) ) return (tf.add(i, 1), flow)if __name__ == '__main__': fizzbuzz = FizzBuzz(length=50) ix, array = fizzbuzz.run() print(array)
输出结果:
['1' '2' 'Fizz' '4' 'Buzz' 'Fizz' '7' '8' 'Fizz' 'Buzz' '11' 'Fizz' '13' '14' 'FizzBuzz' '16' '17' 'Fizz' '19' 'Buzz' 'Fizz' '22' '23' 'Fizz' 'Buzz' '26' 'Fizz' '28' '29' 'FizzBuzz' '31' '32' 'Fizz' '34' 'Buzz' 'Fizz' '37' '38' 'Fizz' 'Buzz' '41' 'Fizz' '43' '44' 'FizzBuzz' '46' '47' 'Fizz' '49' 'Buzz']
var zn1701_data = { 'code':'zn1701.shf', 'total':811, 'data': [ {'close':15250,'date':41659,'markup':-0.00196335078534031}, {'close':15220,'date':41660,'markup':-0.00262123197903014}, {'close':15315,'date':41661,'markup':0.00525106662290778}, {'close':15255,'date':41662,'markup':-0.00228907782864617}, {'close':15190,'date':41663,'markup':-0.00556464811783961}, {'close':15070,'date':41666,'markup':-0.0101806239737274}, {'close':15075,'date':41667,'markup':-0.00297619047619048}, {'close':15065,'date':41668,'markup':-0.00066334991708126}, {'close':15020,'date':41669,'markup':-0.00232480903354367}, {'close':15045,'date':41677,'markup':0.00166444740346205}, {'close':15150,'date':41680,'markup':0.00597609561752988}, {'close':15045,'date':41681,'markup':-0.0043017868960953}, {'close':15080,'date':41682,'markup':-0.000662690523525514}, {'close':15080,'date':41683,'markup':0.00166057788110262}, {'close':15090,'date':41684,'markup':0.000331455087835598}, {'close':15200,'date':41687,'markup':0.00829187396351575}, {'close':15155,'date':41688,'markup':-0.00164690382081686}, {'close':15260,'date':41689,'markup':0.00560131795716639}, {'close':15210,'date':41690,'markup':-0.00131319763624425}, {'close':15225,'date':41691,'markup':-0.000656383327863472}, {'close':15065,'date':41694,'markup':-0.00888157894736842}, {'close':15075,'date':41695,'markup':-0.00099403578528827}, {'close':15150,'date':41696,'markup':0.00364359059291156}, {'close':15130,'date':41697,'markup':0.000992391663910023}, {'close':15135,'date':41698,'markup':-0.000330250990752972}, {'close':15080,'date':41701,'markup':-0.00330469266358229}, {'close':15140,'date':41702,'markup':0.00198544010589014}, {'close':15290,'date':41703,'markup':0.0129181848294137}, {'close':15200,'date':41704,'markup':-0.00523560209424084}, {'close':15170,'date':41705,'markup':-0.0023018743834265}, {'close':14775,'date':41708,'markup':-0.0263591433278418}, {'close':14920,'date':41709,'markup':0.00336247478143914}, {'close':14885,'date':41710,'markup':0.000672268907563025}, {'close':14795,'date':41711,'markup':-0.00269632625547691}, {'close':14765,'date':41712,'markup':-0.00505390835579515}, {'close':14655,'date':41715,'markup':-0.00879269529928982}, {'close':14700,'date':41716,'markup':-0.00169779286926995}, {'close':14755,'date':41717,'markup':0.00408302143586254}, {'close':14780,'date':41718,'markup':0.00203389830508475}, {'close':14785,'date':41719,'markup':0.00339328130302002}, {'close':14770,'date':41722,'markup':0.00101660454083362}, {'close':14805,'date':41723,'markup':0.00304878048780488}, {'close':14875,'date':41724,'markup':0.00574712643678161}, {'close':14805,'date':41725,'markup':-0.00269450993600539}, {'close':14855,'date':41726,'markup':0.00202360876897133}, {'close':14800,'date':41729,'markup':-0.00269541778975741}, {'close':14815,'date':41730,'markup':-0.00168463611859838}, {'close':14840,'date':41731,'markup':0.00134952766531714}, {'close':14845,'date':41732,'markup':0.00270178993583249}, {'close':14860,'date':41733,'markup':0.00236087689713322}, {'close':14905,'date':41737,'markup':0.00404176490400808}, {'close':14930,'date':41738,'markup':0.00268636668905306}, {'close':14940,'date':41739,'markup':0.000669792364367046}, {'close':15000,'date':41740,'markup':0.00569896077774053}, {'close':14980,'date':41743,'markup':0.000668002672010688}, {'close':14975,'date':41744,'markup':0.00167224080267559}, {'close':14990,'date':41745,'markup':-0.000333444481493831}, {'close':15040,'date':41746,'markup':0.00602006688963211}, {'close':15075,'date':41747,'markup':0.00232712765957447}, {'close':15065,'date':41750,'markup':0.00066423115244105}, {'close':15070,'date':41751,'markup':0.000664010624169987}, {'close':15190,'date':41752,'markup':0.00863213811420983}, {'close':15195,'date':41753,'markup':0.0019782393669634}, {'close':15215,'date':41754,'markup':0.00429042904290429}, {'close':15135,'date':41757,'markup':-0.0032927230819888}, {'close':15065,'date':41758,'markup':-0.00561056105610561}, {'close':15070,'date':41759,'markup':-0.00330687830687831}, {'close':15130,'date':41764,'markup':0.00498173364330787}, {'close':15135,'date':41765,'markup':0.00132318888521336}, {'close':15160,'date':41766,'markup':0.00330906684315023}, {'close':15075,'date':41767,'markup':-0.00429326287978864}, {'close':15110,'date':41768,'markup':0.00132538104705103}, {'close':15205,'date':41771,'markup':0.00828912466843501}, {'close':15250,'date':41772,'markup':0.00693298118190822}, {'close':15240,'date':41773,'markup':0}, {'close':15250,'date':41774,'markup':0.00262984878369494}, {'close':15170,'date':41775,'markup':-0.00557194362504097}, {'close':15250,'date':41778,'markup':0.00394996708360764}, {'close':15255,'date':41779,'markup':0.0029585798816568}, {'close':15205,'date':41780,'markup':-0.00262381108560184}, {'close':15190,'date':41781,'markup':-0.00131492439184747}, {'close':15215,'date':41782,'markup':0.00263591433278418}, {'close':15235,'date':41785,'markup':0.00164365548980934}, {'close':15205,'date':41786,'markup':-0.00164149704530532}, {'close':15260,'date':41787,'markup':0.00295760762405521}, {'close':15125,'date':41788,'markup':-0.00754593175853018}, {'close':15150,'date':41789,'markup':-0.00230490615739216}, {'close':15185,'date':41793,'markup':0.00330360092500826}, {'close':15175,'date':41794,'markup':-0.000987491770901909}, {'close':15195,'date':41795,'markup':0.000988142292490119}, {'close':15200,'date':41796,'markup':0.001977587343441}, {'close':15335,'date':41799,'markup':0.00954575378538512}, {'close':15395,'date':41800,'markup':0.00884665792922674}, {'close':15630,'date':41801,'markup':0.017246989912138}, {'close':15500,'date':41802,'markup':-0.00577293136626042}, {'close':15365,'date':41803,'markup':-0.0137997432605905}, {'close':15360,'date':41806,'markup':-0.00227346541084768}, {'close':15450,'date':41807,'markup':0.0048780487804878}, {'close':15500,'date':41808,'markup':0.00518806744487678}, {'close':15525,'date':41809,'markup':0.000644537544311956}, {'close':15715,'date':41810,'markup':0.0122383252818035}, {'close':15765,'date':41813,'markup':0.00638365783593999}, {'close':15670,'date':41814,'markup':-0.00571065989847716}, {'close':15715,'date':41815,'markup':-0.000318066157760814}, {'close':15795,'date':41816,'markup':0.00829875518672199}, {'close':15770,'date':41817,'markup':0.00190597204574333}, {'close':15945,'date':41820,'markup':0.00981633945535149}, {'close':16040,'date':41821,'markup':0.0123067213632061}, {'close':15775,'date':41822,'markup':-0.01437050921587}, {'close':16210,'date':41823,'markup':0.0256248022777602}, {'close':16230,'date':41824,'markup':0.00526478786001858}, {'close':16040,'date':41827,'markup':-0.00926497838171711}, {'close':16390,'date':41828,'markup':0.018961765620143}, {'close':16385,'date':41829,'markup':0.00644963144963145}, {'close':16320,'date':41830,'markup':-0.00214001834301437}, {'close':16250,'date':41831,'markup':-0.00306748466257669}, {'close':16410,'date':41834,'markup':0.00922509225092251}, {'close':16615,'date':41835,'markup':0.0128009753124048}, {'close':16610,'date':41836,'markup':0.00850030358227079}, {'close':16615,'date':41837,'markup':-0.00150240384615385}, {'close':16575,'date':41838,'markup':-0.00210716435881999}, {'close':16705,'date':41841,'markup':0.00300210147102972}, {'close':16945,'date':41842,'markup':0.0189416716776909}, {'close':17175,'date':41843,'markup':0.0126768867924528}, {'close':17100,'date':41844,'markup':0.00263852242744063}, {'close':17370,'date':41845,'markup':0.0157894736842105}, {'close':17380,'date':41848,'markup':0.00841311285175515}, {'close':17370,'date':41849,'markup':0.00201903663109316}, {'close':16810,'date':41850,'markup':-0.0327963176064442}, {'close':16860,'date':41851,'markup':-0.00295683027794205}, {'close':16815,'date':41852,'markup':-0.00502958579881657}, {'close':16830,'date':41855,'markup':0.00178571428571429}, {'close':17045,'date':41856,'markup':0.0139797739440809}, {'close':16875,'date':41857,'markup':-0.0114235500878735}, {'close':16960,'date':41858,'markup':0.00236406619385343}, {'close':16640,'date':41859,'markup':-0.016548463356974}, {'close':16640,'date':41862,'markup':-0.00952380952380952}, {'close':16760,'date':41863,'markup':0.00630441308916241}, {'close':16580,'date':41864,'markup':-0.00718562874251497}, {'close':16440,'date':41865,'markup':-0.0146838477674558}, {'close':16455,'date':41866,'markup':-0.000303766707168894}, {'close':16450,'date':41869,'markup':0.000912686340127776}, {'close':16555,'date':41870,'markup':0.00699513381995134}, {'close':16745,'date':41871,'markup':0.0136198547215496}, {'close':16830,'date':41872,'markup':0.0108108108108108}, {'close':16870,'date':41873,'markup':0.00327088908712459}, {'close':16740,'date':41876,'markup':-0.00770598695909899}, {'close':16915,'date':41877,'markup':0.00985074626865672}, {'close':16845,'date':41878,'markup':0.00477184610796302}, {'close':16830,'date':41879,'markup':-0.00473092844470727}, {'close':16725,'date':41880,'markup':-0.00741839762611276}, {'close':16715,'date':41883,'markup':0.00119796346211441}, {'close':17010,'date':41884,'markup':0.0137067938021454}, {'close':16930,'date':41885,'markup':0.00296208530805687}, {'close':17150,'date':41886,'markup':0.00586510263929619}, {'close':17210,'date':41887,'markup':0.00997652582159624}, {'close':16720,'date':41891,'markup':-0.027058481233634}, {'close':16415,'date':41892,'markup':-0.0252375296912114}, {'close':16270,'date':41893,'markup':-0.00762427569380909}, {'close':16420,'date':41894,'markup':0.00152485513876182}, {'close':16330,'date':41897,'markup':0.000919399325773828}, {'close':16255,'date':41898,'markup':-0.00459277403551745}, {'close':16425,'date':41899,'markup':0.00859686828369665}, {'close':16250,'date':41900,'markup':-0.0058121749770572}, {'close':16295,'date':41901,'markup':-0.000306748466257669}, {'close':15935,'date':41904,'markup':-0.0241886099203919}, {'close':16090,'date':41905,'markup':-0.00402352212937171}, {'close':16345,'date':41906,'markup':0.0180629087511679}, {'close':16385,'date':41907,'markup':0.00830769230769231}, {'close':16440,'date':41908,'markup':0.00182815356489945}, {'close':16430,'date':41911,'markup':0.00213479719426654}, {'close':16800,'date':41912,'markup':0.0237659963436929}, {'close':16800,'date':41920,'markup':0.00870609426598619}, {'close':16915,'date':41921,'markup':0.00505050505050505}, {'close':16645,'date':41922,'markup':-0.00952097590002975}, {'close':16805,'date':41925,'markup':-0.000297441998810232}, {'close':16805,'date':41926,'markup':0.00448296473401076}, {'close':16705,'date':41927,'markup':-0.00624628197501487}, {'close':16290,'date':41928,'markup':-0.0265909769943233}, {'close':16170,'date':41929,'markup':-0.0155251141552511}, {'close':16265,'date':41932,'markup':0.00525339925834363}, {'close':16150,'date':41933,'markup':-0.00980993255671367}, {'close':16355,'date':41934,'markup':0.00894509561998766}, {'close':16615,'date':41935,'markup':0.0187001839362354}, {'close':16640,'date':41936,'markup':0.0109356014580802}, {'close':16555,'date':41939,'markup':-0.0036111947035811}, {'close':16530,'date':41940,'markup':-0.00361663652802893}, {'close':16565,'date':41941,'markup':-0.000301750150875075}, {'close':16590,'date':41942,'markup':0.00393343419062027}, {'close':16880,'date':41943,'markup':0.0119904076738609}, {'close':16775,'date':41946,'markup':0.00298953662182362}, {'close':16935,'date':41947,'markup':0.00623885918003565}, {'close':16380,'date':41948,'markup':-0.0307692307692308}, {'close':16390,'date':41949,'markup':-0.0105644431029279}, {'close':16555,'date':41950,'markup':0.00914355379457482}, {'close':16760,'date':41953,'markup':0.0182260024301337}, {'close':16700,'date':41954,'markup':0.00119904076738609}, {'close':16715,'date':41955,'markup':-0.00149342891278375}, {'close':16745,'date':41956,'markup':0.00029868578255675}, {'close':16590,'date':41957,'markup':-0.0104384133611691}, {'close':16705,'date':41960,'markup':0.0036046860919195}, {'close':16780,'date':41961,'markup':0.00509134471398622}, {'close':16665,'date':41962,'markup':-0.00299132515704457}, {'close':16685,'date':41963,'markup':0.000899820035992801}, {'close':16855,'date':41964,'markup':0.00867743865948534}, {'close':16875,'date':41967,'markup':0.00686157517899761}, {'close':16990,'date':41968,'markup':0.000294377391816309}, {'close':16805,'date':41969,'markup':-0.00650310375406444}, {'close':16855,'date':41970,'markup':-0.000889152341434499}, {'close':16740,'date':41971,'markup':-0.0053475935828877}, {'close':16365,'date':41974,'markup':-0.0235680190930788}, {'close':16530,'date':41975,'markup':0.0070057873895827}, {'close':16515,'date':41976,'markup':-0.00241618846270009}, {'close':16690,'date':41977,'markup':0.0121285627653123}, {'close':16705,'date':41978,'markup':0.00814725407362704}, {'close':16625,'date':41981,'markup':-0.00449101796407186}, {'close':16570,'date':41982,'markup':-0.00748727163821503}, {'close':16600,'date':41983,'markup':0.000602772754671489}, {'close':16400,'date':41984,'markup':-0.0129401143544989}, {'close':16465,'date':41985,'markup':0.000911854103343465}, {'close':16565,'date':41988,'markup':0.00760340632603406}, {'close':16390,'date':41989,'markup':-0.00786924939467312}, {'close':16255,'date':41990,'markup':-0.0121543603767852}, {'close':15905,'date':41991,'markup':-0.025130248237818}, {'close':16190,'date':41992,'markup':0.00309789343246592}, {'close':16340,'date':41995,'markup':0.0152221186703945}, {'close':16370,'date':41996,'markup':0.00398650720637841}, {'close':16400,'date':41997,'markup':0.00428658909981629}, {'close':16380,'date':41998,'markup':-0.00061012812690665}, {'close':16350,'date':41999,'markup':-0.00030571690614491}, {'close':16430,'date':42002,'markup':0.000913798355162961}, {'close':16400,'date':42003,'markup':-0.000304785126485827}, {'close':16780,'date':42004,'markup':0.0247328244274809}, {'close':16720,'date':42009,'markup':0.00390273191233864}, {'close':16740,'date':42010,'markup':-0.000298596595998806}, {'close':16630,'date':42011,'markup':-0.00299760191846523}, {'close':16465,'date':42012,'markup':-0.012001200120012}, {'close':16455,'date':42013,'markup':-0.0036330608537693}, {'close':16410,'date':42016,'markup':-0.00515307668990603}, {'close':16255,'date':42017,'markup':-0.0139520776463452}, {'close':15630,'date':42018,'markup':-0.042572741194487}, {'close':15870,'date':42019,'markup':0.00316055625790139}, {'close':15810,'date':42020,'markup':-0.00157878118092832}, {'close':16065,'date':42023,'markup':0.0142045454545455}, {'close':16035,'date':42024,'markup':0.00564440263405456}, {'close':16155,'date':42025,'markup':0.0096875}, {'close':16360,'date':42026,'markup':0.0145736434108527}, {'close':16235,'date':42027,'markup':-0.00398773006134969}, {'close':16115,'date':42030,'markup':-0.0122586576769844}, {'close':16275,'date':42031,'markup':0.0111835973904939}, {'close':16335,'date':42032,'markup':0.00307031010132023}, {'close':16090,'date':42033,'markup':-0.0116707616707617}, {'close':16020,'date':42034,'markup':-0.00958268933539413}, {'close':16200,'date':42037,'markup':0.00934579439252336}, {'close':16280,'date':42038,'markup':0.00680272108843537}, {'close':16330,'date':42039,'markup':0.00523237919359803}, {'close':16270,'date':42040,'markup':-0.00671550671550672}, {'close':16390,'date':42041,'markup':0.00613873542050338}, {'close':16355,'date':42044,'markup':0.00306654400490647}, {'close':16355,'date':42045,'markup':-0.000305623471882641}, {'close':16200,'date':42046,'markup':-0.0103848503359805}, {'close':16235,'date':42047,'markup':0.00092478421701603}, {'close':16350,'date':42048,'markup':0.0111317254174397}, {'close':16405,'date':42051,'markup':0.00582464745554874}, {'close':16320,'date':42052,'markup':-0.00366300366300366}, {'close':16080,'date':42060,'markup':-0.0174152153987168}, {'close':16025,'date':42061,'markup':-0.00280024891101431}, {'close':16050,'date':42062,'markup':0.00187265917602996}, {'close':16145,'date':42065,'markup':0.0059190031152648}, {'close':15960,'date':42066,'markup':-0.00869565217391304}, {'close':15875,'date':42067,'markup':-0.00997817274711568}, {'close':15815,'date':42068,'markup':-0.00628338045868677}, {'close':15725,'date':42069,'markup':-0.00819930621255125}, {'close':15740,'date':42072,'markup':-0.00253485424588086}, {'close':15750,'date':42073,'markup':0.000317561130517625}, {'close':15695,'date':42074,'markup':-0.00538656527249683}, {'close':15720,'date':42075,'markup':0.000318167356029271}, {'close':15730,'date':42076,'markup':0.00479080166081124}, {'close':15815,'date':42079,'markup':0.00764574705320166}, {'close':15690,'date':42080,'markup':-0.00412567438908283}, {'close':15615,'date':42081,'markup':-0.00731087094723458}, {'close':15625,'date':42082,'markup':-0.00223499361430396}, {'close':15650,'date':42083,'markup':0.00224143451809158}, {'close':15855,'date':42086,'markup':0.0124521072796935}, {'close':15910,'date':42087,'markup':0.00505369551484523}, {'close':15910,'date':42088,'markup':-0.00188205771643664}, {'close':15965,'date':42089,'markup':0.00219711236660389}, {'close':15945,'date':42090,'markup':-0.00156543519098309}, {'close':15965,'date':42093,'markup':-0.000625978090766823}, {'close':15985,'date':42094,'markup':0.000625978090766823}, {'close':15975,'date':42095,'markup':-0.00405236907730673}, {'close':16000,'date':42096,'markup':0.0028204324663115}, {'close':16160,'date':42097,'markup':0.0106316447779862}, {'close':16215,'date':42101,'markup':0.00558139534883721}, {'close':16190,'date':42102,'markup':-0.000308737264587836}, {'close':16165,'date':42103,'markup':-0.0036979969183359}, {'close':16360,'date':42104,'markup':0.0117501546072975}, {'close':16450,'date':42107,'markup':0.0110633066994468}, {'close':16330,'date':42108,'markup':-0.00396462336078073}, {'close':16425,'date':42109,'markup':0.00366636113657195}, {'close':16560,'date':42110,'markup':0.0112977099236641}, {'close':16620,'date':42111,'markup':0.00514061082552162}, {'close':16475,'date':42114,'markup':-0.00961827472197175}, {'close':16420,'date':42115,'markup':-0.00875339571385451}, {'close':16555,'date':42116,'markup':0.00791476407914764}, {'close':16590,'date':42117,'markup':0.00393343419062027}, {'close':16595,'date':42118,'markup':0.000602954476936991}, {'close':16810,'date':42121,'markup':0.0157099697885196}, {'close':17015,'date':42122,'markup':0.0149120190873844}, {'close':16860,'date':42123,'markup':-0.00794351279788173}, {'close':17000,'date':42124,'markup':0.00265408434090239}, {'close':17210,'date':42128,'markup':0.012948793407887}, {'close':17070,'date':42129,'markup':-0.00640279394644936}, {'close':17370,'date':42130,'markup':0.0151957919345412}, {'close':17185,'date':42131,'markup':-0.010650546919977}, {'close':17105,'date':42132,'markup':-0.00869313242538395}, {'close':17095,'date':42135,'markup':-0.00262543757292882}, {'close':16870,'date':42136,'markup':-0.00968594071030232}, {'close':17140,'date':42137,'markup':0.0139012126589766}, {'close':17000,'date':42138,'markup':-0.00234741784037559}, {'close':16935,'date':42139,'markup':-0.00440917107583774}, {'close':16875,'date':42142,'markup':-0.0014792899408284}, {'close':16865,'date':42143,'markup':0.00267538644470868}, {'close':16630,'date':42144,'markup':-0.0121770121770122}, {'close':16620,'date':42145,'markup':-0.002999400119976}, {'close':16615,'date':42146,'markup':0.00211097708082027}, {'close':16520,'date':42149,'markup':-0.00571772494733674}, {'close':16525,'date':42150,'markup':0.0018187329493786}, {'close':16630,'date':42151,'markup':0}, {'close':16835,'date':42152,'markup':0.0138512496236073}, {'close':16850,'date':42153,'markup':0.00717274357441721}, {'close':16615,'date':42156,'markup':-0.0121878715814507}, {'close':16540,'date':42157,'markup':-0.00809595202398801}, {'close':16345,'date':42158,'markup':-0.0111917725347852}, {'close':16405,'date':42159,'markup':-0.0048528965726418}, {'close':16210,'date':42160,'markup':-0.0106805004577357}, {'close':16275,'date':42163,'markup':-0.00214592274678112}, {'close':16330,'date':42164,'markup':0.00337941628264209}, {'close':16420,'date':42165,'markup':0.00551132884262094}, {'close':16285,'date':42166,'markup':-0.00852359208523592}, {'close':16130,'date':42167,'markup':-0.0125497398224671}, {'close':16090,'date':42170,'markup':-0.00648348255634455}, {'close':16095,'date':42171,'markup':-0.00463821892393321}, {'close':15900,'date':42172,'markup':-0.0121155638397018}, {'close':15885,'date':42173,'markup':-0.00749765698219306}, {'close':15695,'date':42174,'markup':-0.0119609694680516}, {'close':15595,'date':42178,'markup':-0.0101555061885116}, {'close':15790,'date':42179,'markup':0.0108834827144686}, {'close':15630,'date':42180,'markup':-0.00350653490596111}, {'close':15625,'date':42181,'markup':-0.00318979266347687}, {'close':15400,'date':42184,'markup':-0.0147152911068458}, {'close':15220,'date':42185,'markup':-0.018381167365366}, {'close':15230,'date':42186,'markup':-0.00749429781687846}, {'close':15575,'date':42187,'markup':0.0226526592252134}, {'close':15520,'date':42188,'markup':0.00226025185663545}, {'close':15145,'date':42191,'markup':-0.0254182754182754}, {'close':15215,'date':42192,'markup':-0.00294888597640891}, {'close':14560,'date':42193,'markup':-0.0461840812315755}, {'close':15195,'date':42194,'markup':0.0294715447154472}, {'close':15290,'date':42195,'markup':0.0172987358616101}, {'close':15245,'date':42198,'markup':-0.00457068233757754}, {'close':15470,'date':42199,'markup':0.0157583716349311}, {'close':15695,'date':42200,'markup':0.0112757731958763}, {'close':15760,'date':42201,'markup':0.0112287455887071}, {'close':15665,'date':42202,'markup':-0.00191143676330041}, {'close':15550,'date':42205,'markup':-0.00734120651133099}, {'close':15580,'date':42206,'markup':-0.000320821302534488}, {'close':15205,'date':42207,'markup':-0.0215572715572716}, {'close':15250,'date':42208,'markup':-0.00909681611435997}, {'close':14985,'date':42209,'markup':-0.0128458498023715}, {'close':14750,'date':42212,'markup':-0.0218832891246684}, {'close':14835,'date':42213,'markup':-0.00201816347124117}, {'close':15100,'date':42214,'markup':0.0219966159052453}, {'close':14850,'date':42215,'markup':-0.0152519893899204}, {'close':14885,'date':42216,'markup':-0.0040147206423553}, {'close':14585,'date':42219,'markup':-0.0191661062542031}, {'close':14735,'date':42220,'markup':0.00067911714770798}, {'close':14735,'date':42221,'markup':0.00717703349282297}, {'close':14625,'date':42222,'markup':-0.00746521886664404}, {'close':14410,'date':42223,'markup':-0.0153741031773147}, {'close':14530,'date':42226,'markup':0.00762829403606103}, {'close':14680,'date':42227,'markup':0.0162686050536518}, {'close':14805,'date':42228,'markup':0.00920245398773006}, {'close':14980,'date':42229,'markup':0.0242735042735043}, {'close':14870,'date':42230,'markup':-0.00501840080294413}, {'close':14905,'date':42233,'markup':-0.000335345405767941}, {'close':14690,'date':42234,'markup':-0.0144246897014425}, {'close':14695,'date':42235,'markup':-0.00642325895875592}, {'close':14740,'date':42236,'markup':0.00820793433652531}, {'close':14700,'date':42237,'markup':-0.00203665987780041}, {'close':14325,'date':42240,'markup':-0.0337268128161889}, {'close':14360,'date':42241,'markup':-0.00931355639875819}, {'close':14445,'date':42242,'markup':0.00382209867963864}, {'close':14470,'date':42243,'markup':-0.00206896551724138}, {'close':14700,'date':42244,'markup':0.0208333333333333}, {'close':14655,'date':42247,'markup':0.000682826903379993}, {'close':14680,'date':42248,'markup':-0.00339443312966735}, {'close':14810,'date':42249,'markup':0.00851208716377256}, {'close':14770,'date':42254,'markup':0.00203527815468114}, {'close':14630,'date':42255,'markup':-0.0084717045069468}, {'close':14905,'date':42256,'markup':0.0201916495550992}, {'close':14915,'date':42257,'markup':0.00403904409289801}, {'close':14935,'date':42258,'markup':0.00403361344537815}, {'close':14695,'date':42261,'markup':-0.0124327956989247}, {'close':14380,'date':42262,'markup':-0.0267343485617597}, {'close':14440,'date':42263,'markup':-0.00241796200345423}, {'close':14455,'date':42264,'markup':0.00416811392844738}, {'close':14310,'date':42265,'markup':-0.0100311310965064}, {'close':13685,'date':42268,'markup':-0.0483310152990264}, {'close':13530,'date':42269,'markup':-0.0220455366823274}, {'close':13625,'date':42270,'markup':0.00147004777655274}, {'close':13820,'date':42271,'markup':0.0233246945575713}, {'close':13705,'date':42272,'markup':0.00109569028487947}, {'close':13450,'date':42275,'markup':-0.0253623188405797}, {'close':13435,'date':42276,'markup':-0.00921828908554572}, {'close':13820,'date':42277,'markup':0.0313432835820895}, {'close':13625,'date':42285,'markup':-0.00219699743683632}, {'close':14295,'date':42286,'markup':0.0407717510010921}, {'close':14690,'date':42289,'markup':0.0433238636363636}, {'close':14565,'date':42290,'markup':-0.000343170899107756}, {'close':14455,'date':42291,'markup':-0.0020711080428029}, {'close':14530,'date':42292,'markup':0.00241462573301138}, {'close':14395,'date':42293,'markup':-0.0113324175824176}, {'close':14255,'date':42296,'markup':-0.0158784949948222}, {'close':14230,'date':42297,'markup':-0.0093978419770275}, {'close':14225,'date':42298,'markup':0.00105559465165377}, {'close':14020,'date':42299,'markup':-0.0164854437039635}, {'close':14195,'date':42300,'markup':0.0150160886664283}, {'close':14170,'date':42303,'markup':0.00283085633404105}, {'close':14225,'date':42304,'markup':0.00672328379334749}, {'close':14105,'date':42305,'markup':-0.00423579244617014}, {'close':14130,'date':42306,'markup':-0.00141342756183746}, {'close':13730,'date':42307,'markup':-0.0283085633404105}, {'close':13765,'date':42310,'markup':-0.00649584987369181}, {'close':13695,'date':42311,'markup':-0.00182215743440233}, {'close':13780,'date':42312,'markup':0.00327630141973062}, {'close':13530,'date':42313,'markup':-0.00987925356750823}, {'close':13560,'date':42314,'markup':-0.00840950639853748}, {'close':13525,'date':42317,'markup':0.00259451445515196}, {'close':13225,'date':42318,'markup':-0.0218195266272189}, {'close':12800,'date':42319,'markup':-0.0350546551074256}, {'close':13030,'date':42320,'markup':0.00773395204949729}, {'close':12955,'date':42321,'markup':0.00193348801237432}, {'close':12900,'date':42324,'markup':-0.00501349787890474}, {'close':12615,'date':42325,'markup':-0.0303612605687932}, {'close':12450,'date':42326,'markup':-0.0181388012618297}, {'close':12040,'date':42327,'markup':-0.0368}, {'close':12525,'date':42328,'markup':0.0274815422477441}, {'close':12355,'date':42331,'markup':0.014367816091954}, {'close':12825,'date':42332,'markup':0.0342741935483871}, {'close':12815,'date':42333,'markup':0.0256102440976391}, {'close':13130,'date':42334,'markup':0.0213924542979385}, {'close':12960,'date':42335,'markup':-0.00537221795855718}, {'close':12800,'date':42338,'markup':-0.0187811422000767}, {'close':12745,'date':42339,'markup':-0.00312866640594447}, {'close':12550,'date':42340,'markup':-0.0172278778386844}, {'close':12460,'date':42341,'markup':-0.0200550530869052}, {'close':12590,'date':42342,'markup':0.00318725099601594}, {'close':12830,'date':42345,'markup':0.0239425379090184}, {'close':12540,'date':42346,'markup':-0.00908731726590281}, {'close':12650,'date':42347,'markup':0}, {'close':12565,'date':42348,'markup':0.000398089171974522}, {'close':12900,'date':42349,'markup':0.0173501577287066}, {'close':12900,'date':42352,'markup':0.016548463356974}, {'close':12725,'date':42353,'markup':-0.00934215648112106}, {'close':12630,'date':42354,'markup':-0.0152046783625731}, {'close':12550,'date':42355,'markup':-0.00986193293885602}, {'close':12645,'date':42356,'markup':0.000791452314998021}, {'close':12865,'date':42359,'markup':0.0246913580246914}, {'close':12815,'date':42360,'markup':0.00707269155206287}, {'close':12905,'date':42361,'markup':0.00428015564202335}, {'close':12985,'date':42362,'markup':0.0124756335282651}, {'close':13140,'date':42363,'markup':0.00999231360491929}, {'close':12930,'date':42366,'markup':-0.0110898661567878}, {'close':13140,'date':42367,'markup':0.00574052812858783}, {'close':13385,'date':42368,'markup':0.0300115429011158}, {'close':13440,'date':42369,'markup':0.00674157303370787}, {'close':13165,'date':42373,'markup':-0.0197319434102755}, {'close':13335,'date':42374,'markup':0.00717522658610272}, {'close':13070,'date':42375,'markup':-0.0124669437098602}, {'close':12885,'date':42376,'markup':-0.0194063926940639}, {'close':12885,'date':42377,'markup':-0.00808314087759815}, {'close':12840,'date':42380,'markup':0}, {'close':12375,'date':42381,'markup':-0.0388349514563107}, {'close':12490,'date':42382,'markup':-0.0106930693069307}, {'close':12620,'date':42383,'markup':0.0124348174889691}, {'close':12530,'date':42384,'markup':-0.00199123855037834}, {'close':12690,'date':42387,'markup':0.0019739439399921}, {'close':12830,'date':42388,'markup':0.0154333201424614}, {'close':12720,'date':42389,'markup':-0.00235294117647059}, {'close':12625,'date':42390,'markup':-0.0121283255086072}, {'close':12785,'date':42391,'markup':0.00788332676389436}, {'close':12760,'date':42394,'markup':0.000392003136025088}, {'close':12795,'date':42395,'markup':0.00156555772994129}, {'close':13095,'date':42396,'markup':0.0250489236790607}, {'close':12980,'date':42397,'markup':-0.00345489443378119}, {'close':13080,'date':42398,'markup':0.00345224395857307}, {'close':13140,'date':42401,'markup':0.012326656394453}, {'close':13340,'date':42402,'markup':0.0175438596491228}, {'close':13490,'date':42403,'markup':0.0173453996983409}, {'close':13945,'date':42404,'markup':0.0410600970511385}, {'close':13835,'date':42405,'markup':0.00581606688476917}, {'close':13815,'date':42415,'markup':-0.00216684723726977}, {'close':13660,'date':42416,'markup':-0.0144300144300144}, {'close':13555,'date':42417,'markup':-0.011666059059424}, {'close':13615,'date':42418,'markup':0.000735023888276369}, {'close':13915,'date':42419,'markup':0.0239146431199411}, {'close':14220,'date':42422,'markup':0.0311820159535896}, {'close':14140,'date':42423,'markup':0.00212615166548547}, {'close':13955,'date':42424,'markup':-0.0162143108917871}, {'close':14070,'date':42425,'markup':0.005}, {'close':13945,'date':42426,'markup':-0.015183615819209}, {'close':14050,'date':42429,'markup':0.00608664518438955}, {'close':14100,'date':42430,'markup':0.00177619893428064}, {'close':14370,'date':42431,'markup':0.0213219616204691}, {'close':14420,'date':42432,'markup':0.00945047252362618}, {'close':14480,'date':42433,'markup':0.00590482806530045}, {'close':14420,'date':42436,'markup':-0.00586004825922096}, {'close':14290,'date':42437,'markup':-0.0168558651530788}, {'close':14090,'date':42438,'markup':-0.0184604667363288}, {'close':14065,'date':42439,'markup':0.000355618776671408}, {'close':14160,'date':42440,'markup':0.000706713780918728}, {'close':14180,'date':42443,'markup':0.00746003552397869}, {'close':14060,'date':42444,'markup':-0.0105559465165376}, {'close':13970,'date':42445,'markup':-0.010272759475735}, {'close':14170,'date':42446,'markup':0.0172290021536253}, {'close':14405,'date':42447,'markup':0.0245376955903272}, {'close':14400,'date':42450,'markup':0.00139082058414465}, {'close':14440,'date':42451,'markup':0.0013869625520111}, {'close':14385,'date':42452,'markup':-0.00656077348066298}, {'close':14200,'date':42453,'markup':-0.0155979202772964}, {'close':14250,'date':42454,'markup':-0.000350754121360926}, {'close':14205,'date':42457,'markup':0.00247000705716302}, {'close':14180,'date':42458,'markup':-0.00700280112044818}, {'close':14140,'date':42459,'markup':-0.00911002102312544}, {'close':14140,'date':42460,'markup':-0.00246913580246914}, {'close':14445,'date':42461,'markup':0.0194071983062809}, {'close':14460,'date':42465,'markup':0.00801673056814221}, {'close':14240,'date':42466,'markup':-0.0162348877374784}, {'close':14185,'date':42467,'markup':-0.0101186322400558}, {'close':13955,'date':42468,'markup':-0.0200140449438202}, {'close':14055,'date':42471,'markup':0.00536480686695279}, {'close':14115,'date':42472,'markup':0.00141894288754878}, {'close':14775,'date':42473,'markup':0.0497335701598579}, {'close':14865,'date':42474,'markup':0.0181506849315068}, {'close':14925,'date':42475,'markup':-0.00367156208277704}, {'close':14990,'date':42478,'markup':0.00637797918764686}, {'close':15140,'date':42479,'markup':0.00497842681712579}, {'close':15130,'date':42480,'markup':0.00132362673726009}, {'close':15325,'date':42481,'markup':0.0108839050131926}, {'close':15050,'date':42482,'markup':-0.0108445612882024}, {'close':15120,'date':42485,'markup':0.00498504486540379}, {'close':14790,'date':42486,'markup':-0.0247279920870425}, {'close':14925,'date':42487,'markup':-0.0030060120240481}, {'close':14900,'date':42488,'markup':-0.00234348844994978}, {'close':15290,'date':42489,'markup':0.0282447881640888}, {'close':15345,'date':42493,'markup':0.0138751238850347}, {'close':14925,'date':42494,'markup':-0.0219528178243775}, {'close':14900,'date':42495,'markup':-0.0109525389976767}, {'close':14865,'date':42496,'markup':-0.00734557595993322}, {'close':14745,'date':42499,'markup':-0.00539629005059022}, {'close':14715,'date':42500,'markup':-0.0107563025210084}, {'close':14905,'date':42501,'markup':0.0177534994878798}, {'close':15180,'date':42502,'markup':0.0267162664863037}, {'close':15020,'date':42503,'markup':-0.00562727573651109}, {'close':15105,'date':42506,'markup':0.00868113522537563}, {'close':15190,'date':42507,'markup':0.0079628400796284}, {'close':15005,'date':42508,'markup':-0.00793388429752066}, {'close':14945,'date':42509,'markup':-0.0102649006622517}, {'close':15010,'date':42510,'markup':0.000333222259246918}, {'close':14825,'date':42513,'markup':-0.00636729222520107}, {'close':14465,'date':42514,'markup':-0.0304959785522788}, {'close':14525,'date':42515,'markup':-0.00819392284055992}, {'close':14920,'date':42516,'markup':0.0236706689536878}, {'close':15005,'date':42517,'markup':0.0197077811756711}, {'close':15045,'date':42520,'markup':0.00736524941412789}, {'close':15095,'date':42521,'markup':0.00532800532800533}, {'close':14970,'date':42522,'markup':-0.00465425531914894}, {'close':15580,'date':42523,'markup':0.0341851974775971}, {'close':15590,'date':42524,'markup':0.00938815150534154}, {'close':15750,'date':42527,'markup':0.015146632291331}, {'close':15755,'date':42528,'markup':0.000952986022871665}, {'close':15625,'date':42529,'markup':-0.00825134877816566}, {'close':15860,'date':42534,'markup':0.0186255619781631}, {'close':15705,'date':42535,'markup':-0.011953444479396}, {'close':15725,'date':42536,'markup':-0.00726010101010101}, {'close':15595,'date':42537,'markup':-0.0028772378516624}, {'close':15645,'date':42538,'markup':-0.00286806883365201}, {'close':15590,'date':42541,'markup':0.00386349001931745}, {'close':15655,'date':42542,'markup':0.00610539845758355}, {'close':15770,'date':42543,'markup':0.00477859190825104}, {'close':15790,'date':42544,'markup':0.00605288308378464}, {'close':15495,'date':42545,'markup':-0.0171265461465271}, {'close':15685,'date':42548,'markup':0.00319795330988168}, {'close':15900,'date':42549,'markup':0.017274472168906}, {'close':16210,'date':42550,'markup':0.0301874801398157}, {'close':16450,'date':42551,'markup':0.0182606004333024}, {'close':16545,'date':42552,'markup':0.0109990834097159}, {'close':16755,'date':42555,'markup':0.0188507145028884}, {'close':16450,'date':42556,'markup':-0.0193740685543964}, {'close':16420,'date':42557,'markup':-0.00514995455922448}, {'close':16395,'date':42558,'markup':-0.00213024954351795}, {'close':16465,'date':42559,'markup':0.00274056029232643}, {'close':16805,'date':42562,'markup':0.025320317266626}, {'close':16770,'date':42563,'markup':0.0078125}, {'close':16905,'date':42564,'markup':0.00985663082437276}, {'close':16990,'date':42565,'markup':-0.00205580029368576}, {'close':17055,'date':42566,'markup':0.00917159763313609}, {'close':16940,'date':42569,'markup':-0.00176782557454331}, {'close':17290,'date':42570,'markup':0.0143737166324435}, {'close':17205,'date':42571,'markup':0.00262237762237762}, {'close':17380,'date':42572,'markup':0.00958466453674121}, {'close':17285,'date':42573,'markup':0.00523407967432393}, {'close':17425,'date':42576,'markup':0.00172463351537798}, {'close':17165,'date':42577,'markup':-0.00809014735625542}, {'close':17015,'date':42578,'markup':-0.0141946697566628}, {'close':16880,'date':42579,'markup':-0.0117096018735363}, {'close':16930,'date':42580,'markup':0.00415183867141162}, {'close':17430,'date':42583,'markup':0.0249926492208174}, {'close':17440,'date':42584,'markup':0.0127758420441347}, {'close':17320,'date':42585,'markup':-0.00345224395857307}, {'close':17310,'date':42586,'markup':-0.00688468158347676}, {'close':17435,'date':42587,'markup':0.00605885747259088}, {'close':17535,'date':42590,'markup':0.010371650821089}, {'close':17325,'date':42591,'markup':-0.00545350172215844}, {'close':17790,'date':42592,'markup':0.0206540447504303}, {'close':17655,'date':42593,'markup':0.00770547945205479}, {'close':17495,'date':42594,'markup':-0.0118610561988139}, {'close':17115,'date':42597,'markup':-0.0250640843064654}, {'close':17335,'date':42598,'markup':0.00347322720694645}, {'close':17250,'date':42599,'markup':-0.00346620450606586}, {'close':17550,'date':42600,'markup':0.015625}, {'close':17505,'date':42601,'markup':0.00372706422018349}, {'close':17385,'date':42604,'markup':-0.00628751071734781}, {'close':17565,'date':42605,'markup':0.00486270022883295}, {'close':17595,'date':42606,'markup':0.00342172797262618}, {'close':17505,'date':42607,'markup':-0.00483229107447413}, {'close':17940,'date':42608,'markup':0.0274914089347079}, {'close':17965,'date':42611,'markup':0.00813692480359147}, {'close':17865,'date':42612,'markup':-0.0055663790704147}, {'close':17955,'date':42613,'markup':0.00391389432485323}, {'close':18345,'date':42614,'markup':0.0183180682764363}, {'close':18515,'date':42615,'markup':0.0189873417721519}, {'close':18400,'date':42618,'markup':-0.000543183052688756}, {'close':18285,'date':42619,'markup':-0.0084056399132321}, {'close':18235,'date':42620,'markup':-0.00409612233752048}, {'close':18045,'date':42621,'markup':-0.00878879428728371}, {'close':18155,'date':42622,'markup':0.000826901874310915}, {'close':17720,'date':42625,'markup':-0.0207239568941697}, {'close':17770,'date':42626,'markup':-0.00615212527964206}, {'close':17570,'date':42627,'markup':-0.0112549240292628}, {'close':17525,'date':42632,'markup':-0.00539160045402951}, {'close':17915,'date':42633,'markup':0.0219623502567028}, {'close':17935,'date':42634,'markup':0.00645342312008979}, {'close':17910,'date':42635,'markup':-0.00527631213551791}, {'close':17950,'date':42636,'markup':0.00279329608938547}, {'close':17660,'date':42639,'markup':-0.0161559888579387}, {'close':18020,'date':42640,'markup':0.0172170476996895}, {'close':18040,'date':42641,'markup':0.0112107623318386}, {'close':18180,'date':42642,'markup':0.00887902330743618}, {'close':18255,'date':42643,'markup':0.00412541254125413}, {'close':18390,'date':42653,'markup':0.00905349794238683}, {'close':18170,'date':42654,'markup':-0.00656096227446692}, {'close':17790,'date':42655,'markup':-0.0233324183365358}, {'close':17750,'date':42656,'markup':-0.00420757363253857}, {'close':17825,'date':42657,'markup':-0.000560695262125035}, {'close':17990,'date':42660,'markup':0.0143783478996335}, {'close':18210,'date':42661,'markup':0.0147673446642519}, {'close':18160,'date':42662,'markup':0.00553709856035437}, {'close':18275,'date':42663,'markup':0.00522552255225523}, {'close':18200,'date':42664,'markup':-0.00109769484083425}, {'close':18175,'date':42667,'markup':-0.0016478989288657}, {'close':19010,'date':42668,'markup':0.0479603087100331}, {'close':18885,'date':42669,'markup':0.00908362276248998}, {'close':18875,'date':42670,'markup':-0.00052952078369076}, {'close':19095,'date':42671,'markup':0.0140732873074881}, {'close':19320,'date':42674,'markup':0.0163072067332983}, {'close':19755,'date':42675,'markup':0.0281030444964871}, {'close':19380,'date':42676,'markup':-0.0192307692307692}, {'close':19640,'date':42677,'markup':0.00460358056265985}, {'close':19760,'date':42678,'markup':0.0151554071410223}, {'close':20070,'date':42681,'markup':0.0136363636363636}, {'close':19865,'date':42682,'markup':0.000755667506297229}, {'close':19840,'date':42683,'markup':-0.00576296667501879}, {'close':20845,'date':42684,'markup':0.04225}, {'close':20910,'date':42685,'markup':0.0234948604992658}, {'close':21275,'date':42688,'markup':0.0267857142857143}, {'close':21115,'date':42689,'markup':0.0127098321342926}, {'close':21255,'date':42690,'markup':-0.0100139729855612}, {'close':20570,'date':42691,'markup':-0.0360824742268041}, {'close':20890,'date':42692,'markup':0.0045684058667949}, {'close':21365,'date':42695,'markup':0.0328740633309161}, {'close':21800,'date':42696,'markup':0.0326859308384652}, {'close':21590,'date':42697,'markup':0.00301974448315912}, {'close':22570,'date':42698,'markup':0.0458758109360519}, {'close':23045,'date':42699,'markup':0.0354976409795552}, {'close':24410,'date':42702,'markup':0.0699101468332238}, {'close':23780,'date':42703,'markup':0.00358725469508335}, {'close':22590,'date':42704,'markup':-0.0682614972159208}, {'close':22940,'date':42705,'markup':-0.00585048754062839}, {'close':22350,'date':42706,'markup':-0.0210249671484888}, {'close':22710,'date':42709,'markup':0.00287039081474939}, {'close':22905,'date':42710,'markup':0.0189056939501779}, {'close':23310,'date':42711,'markup':0.0112798264642082}, {'close':22850,'date':42712,'markup':-0.0144489971964632}, {'close':22615,'date':42713,'markup':-0.0218425605536332}, {'close':22370,'date':42716,'markup':-0.00621945801865837}, {'close':22600,'date':42717,'markup':-0.00308778120864579}, {'close':22485,'date':42718,'markup':-0.000222321031569586}, {'close':22930,'date':42719,'markup':0.0232039268183847}, {'close':22615,'date':42720,'markup':-0.00505939287285526}, {'close':21550,'date':42723,'markup':-0.0525390195647395}, {'close':20990,'date':42724,'markup':-0.0542915070961928}, {'close':21320,'date':42725,'markup':0.00994789199431549}, {'close':20830,'date':42726,'markup':-0.0218361117633247}, {'close':21260,'date':42727,'markup':0.00877817319098458}, {'close':19805,'date':42730,'markup':-0.0638147010163082}, {'close':20265,'date':42731,'markup':-0.00539877300613497}, {'close':20650,'date':42732,'markup':0.0332749562171629}, {'close':21095,'date':42733,'markup':0.0185900531144375}, {'close':21045,'date':42734,'markup':0.00142755174875089}, {'close':21045,'date':42738,'markup':0.00717875089734386}, {'close':21180,'date':42739,'markup':0.0021291696238467}, {'close':21355,'date':42740,'markup':0.0181168057210965}, {'close':21215,'date':42741,'markup':-0.0100326644890341}, {'close':21775,'date':42744,'markup':0.0187134502923977}, {'close':22555,'date':42745,'markup':0.0507803400885162}, {'close':22485,'date':42746,'markup':0.0160415725259828}, {'close':22430,'date':42747,'markup':-0.00576241134751773}, {'close':22405,'date':42748,'markup':-0.00111457868925546}, {'close':22770,'date':42751,'markup':0.0108768035516093}, {'close':22050,'date':42752,'markup':-0.0341655716162943}, {'close':22395,'date':42753,'markup':0.00111756817165847}, {'close':22300,'date':42754,'markup':-0.00134348410210479}, {'close':22145,'date':42755,'markup':-0.0113839285714286}, {'close':22815,'date':42758,'markup':0.0205770521136211}, {'close':22760,'date':42759,'markup':0.00596685082872928}, {'close':22830,'date':42760,'markup':0.00417857928304377}, {'close':23205,'date':42761,'markup':0.0148698884758364}, {'close':22645,'date':42769,'markup':-0.00940507436570429}, {'close':22420,'date':42772,'markup':-0.01623519087319}, {'close':22675,'date':42773,'markup':0.00265310634534601}, {'close':22945,'date':42774,'markup':0.0148164528969483}, {'close':22980,'date':42775,'markup':0.00349344978165939}, {'close':23415,'date':42776,'markup':0.0147345612134345}, {'close':24000,'date':42779,'markup':0.0338143441740254}, {'close':23890,'date':42780,'markup':-0.0033375052148519}, {'close':23655,'date':42781,'markup':-0.00942211055276382}, {'close':23340,'date':42782,'markup':-0.0116451408003388}, {'close':23280,'date':42783,'markup':-0.0120942075111394}, {'close':23005,'date':42786,'markup':-0.0143530419880034}, {'close':23440,'date':42787,'markup':0.0229107571459743}, {'close':23170,'date':42788,'markup':-0.0113078728397696}, {'close':22985,'date':42789,'markup':-0.0128838307923556}, {'close':22925,'date':42790,'markup':-0.0120663650075415}, {'close':22780,'date':42793,'markup':0.00021953896816685}, {'close':22860,'date':42794,'markup':-0.00131061598951507}, {'close':23290,'date':42795,'markup':0.0181420765027322}, {'close':23270,'date':42796,'markup':0.00998263888888889}, {'close':22880,'date':42797,'markup':-0.0186575166202016}, {'close':22295,'date':42800,'markup':-0.0230061349693252}, {'close':22240,'date':42801,'markup':-0.0176678445229682}, {'close':22000,'date':42802,'markup':-0.0127888714381871}, {'close':21610,'date':42803,'markup':-0.0177272727272727}, {'close':21950,'date':42804,'markup':0.00595783684692942}, {'close':22550,'date':42807,'markup':0.0329821346770499}, {'close':22555,'date':42808,'markup':0.0134801168276792}, {'close':22770,'date':42809,'markup':0.011325782811459}, {'close':23360,'date':42810,'markup':0.0361499223774673}, {'close':23365,'date':42811,'markup':0.0101599654128837}, {'close':23780,'date':42814,'markup':0.0210390725633319}, {'close':23445,'date':42815,'markup':-0.0103419164204306}, {'close':23255,'date':42816,'markup':-0.0142009325985587}, {'close':23415,'date':42817,'markup':0.00385852090032154}, {'close':23305,'date':42818,'markup':-0.00256794350524288}, {'close':22665,'date':42821,'markup':-0.0205272255834054}, {'close':22570,'date':42822,'markup':-0.021036651485578}, {'close':23380,'date':42823,'markup':0.0354295837023915}, {'close':23425,'date':42824,'markup':0.0189212701174424}, {'close':23380,'date':42825,'markup':-0.00213401621852326}, {'close':23115,'date':42830,'markup':-0.0142857142857143}, {'close':23090,'date':42831,'markup':0.000216590859865714}, {'close':22150,'date':42832,'markup':-0.0398786302557434}, {'close':22035,'date':42835,'markup':-0.0237040319007532}, {'close':21325,'date':42836,'markup':-0.0348495134645847}, {'close':21275,'date':42837,'markup':-0.016412390198798}, {'close':21725,'date':42838,'markup':0.0194744251525106}, {'close':21425,'date':42839,'markup':-0.00372006510113927}, {'close':21860,'date':42842,'markup':0.0136795733827962}, {'close':21400,'date':42843,'markup':-0.0203707942320897}, {'close':21025,'date':42844,'markup':-0.0268456375838926}, {'close':21660,'date':42845,'markup':0.0333969465648855}, {'close':21860,'date':42846,'markup':0.0316186880604059}, {'close':21525,'date':42849,'markup':-0.0121615419917393}, {'close':21555,'date':42850,'markup':0.00185916802231002}, {'close':21645,'date':42851,'markup':0.00744705608564114}, {'close':21750,'date':42852,'markup':0.00717758740449178}, {'close':21900,'date':42853,'markup':0.00805523590333717}, {'close':22230,'date':42857,'markup':0.0244239631336406}, {'close':21895,'date':42858,'markup':-0.0183815288052006}, {'close':21380,'date':42859,'markup':-0.0292849035187287}, {'close':21305,'date':42860,'markup':-0.0104505341384115}, {'close':21230,'date':42863,'markup':-0.0109480549732122}, {'close':21655,'date':42864,'markup':0.0204995287464656}, {'close':21690,'date':42865,'markup':0.0109531577720811}, {'close':21945,'date':42866,'markup':0.0112903225806452}, {'close':21610,'date':42867,'markup':-0.00391795344549435}, {'close':21600,'date':42870,'markup':-0.000693962526023595}, {'close':21310,'date':42871,'markup':-0.00860665270993254}, {'close':21520,'date':42872,'markup':0.00678362573099415}, {'close':21330,'date':42873,'markup':-0.00605778191985089}, {'close':21480,'date':42874,'markup':0.00163208207041268} ]};var cu1701_data = { 'code':'cu1701.shf', 'total':811, 'data': [ {'close':51800,'date':41659,'markup':-0.00403768506056528}, {'close':51630,'date':41660,'markup':-0.0038587690526722}, {'close':51630,'date':41661,'markup':-0.000387221684414327}, {'close':51410,'date':41662,'markup':-0.00483933410762679}, {'close':51270,'date':41663,'markup':-0.00349854227405248}, {'close':50980,'date':41666,'markup':-0.00585023400936037}, {'close':51000,'date':41667,'markup':-0.000587889476778366}, {'close':51060,'date':41668,'markup':0.00196232339089482}, {'close':50950,'date':41669,'markup':-0.000980392156862745}, {'close':51030,'date':41677,'markup':0.00294811320754717}, {'close':51070,'date':41680,'markup':0.00137254901960784}, {'close':50390,'date':41681,'markup':-0.0115731659474304}, {'close':50650,'date':41682,'markup':0.00138394622380388}, {'close':50620,'date':41683,'markup':0.00178112012665743}, {'close':50670,'date':41684,'markup':0.000394866732477789}, {'close':51070,'date':41687,'markup':0.00928853754940711}, {'close':50700,'date':41688,'markup':-0.00588235294117647}, {'close':50740,'date':41689,'markup':-0.00216322517207473}, {'close':50390,'date':41690,'markup':-0.00865630533149715}, {'close':50510,'date':41691,'markup':-0.000988924050632911}, {'close':49900,'date':41694,'markup':-0.0120768164719857}, {'close':49520,'date':41695,'markup':-0.00801282051282051}, {'close':49680,'date':41696,'markup':-0.00220927897168106}, {'close':49210,'date':41697,'markup':-0.00706214689265537}, {'close':49280,'date':41698,'markup':-0.00121605188488042}, {'close':48760,'date':41701,'markup':-0.00914448282869335}, {'close':48990,'date':41702,'markup':0.000408413314274045}, {'close':49380,'date':41703,'markup':0.0116779348494161}, {'close':49140,'date':41704,'markup':-0.00344757655647942}, {'close':48920,'date':41705,'markup':-0.00548892051229925}, {'close':46670,'date':41708,'markup':-0.0500712395684918}, {'close':46250,'date':41709,'markup':-0.0213711383834109}, {'close':44500,'date':41710,'markup':-0.0336590662323561}, {'close':44410,'date':41711,'markup':-0.00537513997760358}, {'close':44290,'date':41712,'markup':-0.00672796591163938}, {'close':44170,'date':41715,'markup':-0.00405862457722661}, {'close':44900,'date':41716,'markup':0.00763016157989228}, {'close':44740,'date':41717,'markup':-0.00133928571428571}, {'close':45190,'date':41718,'markup':0.00983240223463687}, {'close':45170,'date':41719,'markup':0.0057893564907593}, {'close':45420,'date':41722,'markup':0.00598006644518272}, {'close':45890,'date':41723,'markup':0.0141436464088398}, {'close':46140,'date':41724,'markup':0.0113985094256905}, {'close':45730,'date':41725,'markup':-0.00888599913307326}, {'close':46450,'date':41726,'markup':0.0102218355806873}, {'close':46790,'date':41729,'markup':0.0134286333116742}, {'close':46740,'date':41730,'markup':-0.000855066267635742}, {'close':46650,'date':41731,'markup':-0.00149828767123288}, {'close':46330,'date':41732,'markup':-0.00813530293299079}, {'close':46690,'date':41733,'markup':0.00603318250377074}, {'close':46730,'date':41737,'markup':0.00494623655913979}, {'close':46380,'date':41738,'markup':-0.00748983522362508}, {'close':46200,'date':41739,'markup':-0.00922153120308814}, {'close':46740,'date':41740,'markup':0.011250540891389}, {'close':46780,'date':41743,'markup':0.00645438898450947}, {'close':46560,'date':41744,'markup':-0.00278432212465196}, {'close':46180,'date':41745,'markup':-0.00922548809268397}, {'close':46540,'date':41746,'markup':0.0102018667245496}, {'close':46360,'date':41747,'markup':-0.00450934077732446}, {'close':46620,'date':41750,'markup':0.00365984930032293}, {'close':46430,'date':41751,'markup':-0.00150537634408602}, {'close':46790,'date':41752,'markup':0.00645300064530006}, {'close':47250,'date':41753,'markup':0.0132961612695689}, {'close':47920,'date':41754,'markup':0.020442930153322}, {'close':47970,'date':41757,'markup':0.00713835817761915}, {'close':47640,'date':41758,'markup':-0.00584307178631052}, {'close':47650,'date':41759,'markup':-0.00334658021334449}, {'close':47670,'date':41764,'markup':0.00126023944549464}, {'close':47560,'date':41765,'markup':-0.00314399496960805}, {'close':47280,'date':41766,'markup':-0.00546907867059318}, {'close':47210,'date':41767,'markup':-0.00526759376316898}, {'close':47740,'date':41768,'markup':0.0142341193966433}, {'close':48010,'date':41771,'markup':0.0113756056456709}, {'close':48170,'date':41772,'markup':0.0119747899159664}, {'close':48500,'date':41773,'markup':0.00476486430495132}, {'close':48670,'date':41774,'markup':0.00996057273293214}, {'close':48210,'date':41775,'markup':-0.00638911788953009}, {'close':48950,'date':41778,'markup':0.0117817279867714}, {'close':48810,'date':41779,'markup':0.00390785684903332}, {'close':48020,'date':41780,'markup':-0.0163867267513314}, {'close':48260,'date':41781,'markup':-0.00227413686169113}, {'close':48700,'date':41782,'markup':0.0112126245847176}, {'close':49130,'date':41785,'markup':0.0142444260941371}, {'close':48840,'date':41786,'markup':-0.00183936235438381}, {'close':48930,'date':41787,'markup':-0.000408580183861083}, {'close':48470,'date':41788,'markup':-0.00757575757575758}, {'close':48640,'date':41789,'markup':-0.00164203612479475}, {'close':48690,'date':41793,'markup':0.00474618241848948}, {'close':48120,'date':41794,'markup':-0.0113005958495993}, {'close':48320,'date':41795,'markup':0.00207382828701784}, {'close':48260,'date':41796,'markup':0.00416146483562214}, {'close':47370,'date':41799,'markup':-0.0174237710018668}, {'close':47480,'date':41800,'markup':-0.00419463087248322}, {'close':47860,'date':41801,'markup':0.00715488215488216}, {'close':47460,'date':41802,'markup':-0.00461409395973154}, {'close':47730,'date':41803,'markup':0.00209951711106446}, {'close':48030,'date':41806,'markup':0.0100946372239748}, {'close':48190,'date':41807,'markup':0.0054245775088671}, {'close':48130,'date':41808,'markup':-0.00020772746157042}, {'close':48060,'date':41809,'markup':-0.00228357899107328}, {'close':48760,'date':41810,'markup':0.0141430948419301}, {'close':49550,'date':41813,'markup':0.0224927775484936}, {'close':49400,'date':41814,'markup':0.00243506493506494}, {'close':49440,'date':41815,'markup':-0.000202224469160768}, {'close':49590,'date':41816,'markup':0.00465964343598055}, {'close':49520,'date':41817,'markup':0.00222626998583283}, {'close':49580,'date':41820,'markup':0.00100948919846558}, {'close':50380,'date':41821,'markup':0.0171613163739148}, {'close':50320,'date':41822,'markup':0.0037901456213844}, {'close':51100,'date':41823,'markup':0.0173203264981087}, {'close':51380,'date':41824,'markup':0.00903377847604085}, {'close':50850,'date':41827,'markup':-0.00954421503700818}, {'close':51180,'date':41828,'markup':0.00333267986669281}, {'close':50930,'date':41829,'markup':-0.000784775358053757}, {'close':50570,'date':41830,'markup':-0.0080423695566889}, {'close':50910,'date':41831,'markup':0.00513326752221125}, {'close':50670,'date':41834,'markup':-0.00196966712625566}, {'close':50640,'date':41835,'markup':-0.00354191263282172}, {'close':50440,'date':41836,'markup':-0.00118811881188119}, {'close':49920,'date':41837,'markup':-0.0124629080118694}, {'close':49740,'date':41838,'markup':-0.00777977259126272}, {'close':49550,'date':41841,'markup':-0.00741185897435897}, {'close':49890,'date':41842,'markup':0.00951031970861999}, {'close':50010,'date':41843,'markup':0.00341091492776886}, {'close':50650,'date':41844,'markup':0.0150300601202405}, {'close':51040,'date':41845,'markup':0.0149135016901969}, {'close':50630,'date':41848,'markup':-0.00373868555686737}, {'close':50790,'date':41849,'markup':0.00494657696873763}, {'close':50290,'date':41850,'markup':-0.00828239006113193}, {'close':50510,'date':41851,'markup':0.00357639578780052}, {'close':50530,'date':41852,'markup':0.00158572844400396}, {'close':50220,'date':41855,'markup':-0.00416418798334325}, {'close':50570,'date':41856,'markup':0.00576770087509944}, {'close':49720,'date':41857,'markup':-0.0162247724574594}, {'close':49750,'date':41858,'markup':-0.005}, {'close':49710,'date':41859,'markup':-0.000201126307320998}, {'close':49890,'date':41862,'markup':0.00200843542880096}, {'close':49790,'date':41863,'markup':-0.00280392549569397}, {'close':49300,'date':41864,'markup':-0.00864669213754273}, {'close':48920,'date':41865,'markup':-0.0119167844879822}, {'close':48910,'date':41866,'markup':-0.00244748113399959}, {'close':48970,'date':41869,'markup':0.0028670899037477}, {'close':49390,'date':41870,'markup':0.00795918367346939}, {'close':49530,'date':41871,'markup':0.00711671411142741}, {'close':50230,'date':41872,'markup':0.0201056051990252}, {'close':50760,'date':41873,'markup':0.0129714627818799}, {'close':50670,'date':41876,'markup':0.00237388724035608}, {'close':50610,'date':41877,'markup':-0.00236546422235364}, {'close':50300,'date':41878,'markup':-0.00632161201106282}, {'close':50250,'date':41879,'markup':-0.00376685170499603}, {'close':49780,'date':41880,'markup':-0.00935323383084577}, {'close':49440,'date':41883,'markup':-0.00623115577889447}, {'close':49630,'date':41884,'markup':-0.00241206030150754}, {'close':49680,'date':41885,'markup':0.0008058017727639}, {'close':49500,'date':41886,'markup':-0.0050251256281407}, {'close':49830,'date':41887,'markup':0.0068700747625783}, {'close':49340,'date':41891,'markup':-0.00863974281695801}, {'close':48870,'date':41892,'markup':-0.0139225181598063}, {'close':48190,'date':41893,'markup':-0.013914466953141}, {'close':48590,'date':41894,'markup':-0.00143855322646938}, {'close':48380,'date':41897,'markup':-0.000413223140495868}, {'close':48710,'date':41898,'markup':0.00869745288879685}, {'close':49480,'date':41899,'markup':0.0187358451719168}, {'close':49110,'date':41900,'markup':-0.00324741221838847}, {'close':48770,'date':41901,'markup':-0.00934389599837497}, {'close':47940,'date':41904,'markup':-0.0184275184275184}, {'close':48150,'date':41905,'markup':-0.00289915096293228}, {'close':47800,'date':41906,'markup':-0.00416666666666667}, {'close':47750,'date':41907,'markup':0.00146812080536913}, {'close':47890,'date':41908,'markup':0.00251203684320703}, {'close':47640,'date':41911,'markup':-0.00104843782763682}, {'close':48030,'date':41912,'markup':0.00818639798488665}, {'close':47690,'date':41920,'markup':-0.00728559533721898}, {'close':47780,'date':41921,'markup':-0.00292153589315526}, {'close':47240,'date':41922,'markup':-0.00693714525961741}, {'close':47850,'date':41925,'markup':0.00546333263290607}, {'close':48100,'date':41926,'markup':0.011354079058032}, {'close':48330,'date':41927,'markup':0.00897703549060543}, {'close':47430,'date':41928,'markup':-0.0180124223602484}, {'close':46750,'date':41929,'markup':-0.0201215678054915}, {'close':46680,'date':41932,'markup':-0.00744205826068467}, {'close':46530,'date':41933,'markup':-0.00491873396065013}, {'close':47070,'date':41934,'markup':0.00921955403087478}, {'close':47120,'date':41935,'markup':0.000212269157291446}, {'close':47390,'date':41936,'markup':0.00722635494155154}, {'close':47050,'date':41939,'markup':-0.00486463620981387}, {'close':47540,'date':41940,'markup':0.00741682559864378}, {'close':47770,'date':41941,'markup':0.00759333473950643}, {'close':47510,'date':41942,'markup':-0.00189075630252101}, {'close':47780,'date':41943,'markup':0.00104755918709407}, {'close':47300,'date':41946,'markup':-0.00295109612141653}, {'close':47700,'date':41947,'markup':0.00781745193323474}, {'close':46580,'date':41948,'markup':-0.0197811447811448}, {'close':46810,'date':41949,'markup':-0.00255699978691668}, {'close':47190,'date':41950,'markup':0.00790260572404955}, {'close':47510,'date':41953,'markup':0.010206251328939}, {'close':47150,'date':41954,'markup':-0.00506435956952944}, {'close':47320,'date':41955,'markup':0.001057753331923}, {'close':47400,'date':41956,'markup':0.00296233601354211}, {'close':47160,'date':41957,'markup':-0.00506329113924051}, {'close':47630,'date':41960,'markup':0.00996607294317218}, {'close':47610,'date':41961,'markup':0.00231578947368421}, {'close':47330,'date':41962,'markup':-0.00420786871449611}, {'close':47470,'date':41963,'markup':0.00465608465608466}, {'close':47580,'date':41964,'markup':0.00168421052631579}, {'close':47800,'date':41967,'markup':0.00716392751790982}, {'close':47820,'date':41968,'markup':-0.00291909924937448}, {'close':46590,'date':41969,'markup':-0.0230656322080101}, {'close':46720,'date':41970,'markup':-0.00298762270593257}, {'close':45990,'date':41971,'markup':-0.0143591941705958}, {'close':44540,'date':41974,'markup':-0.0361393637740749}, {'close':45400,'date':41975,'markup':0.0170250896057348}, {'close':45230,'date':41976,'markup':-0.00220604456210015}, {'close':45790,'date':41977,'markup':0.0105936879276098}, {'close':46090,'date':41978,'markup':0.0122995826927301}, {'close':45910,'date':41981,'markup':-0.00368923611111111}, {'close':45940,'date':41982,'markup':-0.00217202432667246}, {'close':46260,'date':41983,'markup':0.0111475409836066}, {'close':46210,'date':41984,'markup':-0.00064878892733564}, {'close':46380,'date':41985,'markup':0.00454840805717999}, {'close':46710,'date':41988,'markup':0.00754961173425367}, {'close':45880,'date':41989,'markup':-0.0141813493768801}, {'close':45640,'date':41990,'markup':-0.011265164644714}, {'close':45260,'date':41991,'markup':-0.00767375575531682}, {'close':45500,'date':41992,'markup':0.00775193798449612}, {'close':45960,'date':41995,'markup':0.013898080741231}, {'close':45630,'date':41996,'markup':-0.00284090909090909}, {'close':45630,'date':41997,'markup':-0.000657030223390276}, {'close':45630,'date':41998,'markup':0.00285714285714286}, {'close':45510,'date':41999,'markup':0.00021978021978022}, {'close':45030,'date':42002,'markup':-0.0101121125522093}, {'close':45290,'date':42003,'markup':0.0017695200176952}, {'close':45800,'date':42004,'markup':0.0130502101305021}, {'close':45080,'date':42009,'markup':-0.0118369136343709}, {'close':44800,'date':42010,'markup':-0.00994475138121547}, {'close':44650,'date':42011,'markup':0.00179492932465784}, {'close':44680,'date':42012,'markup':0.000447828034034931}, {'close':44250,'date':42013,'markup':-0.010952168082253}, {'close':43960,'date':42016,'markup':-0.0132435465768799}, {'close':42890,'date':42017,'markup':-0.0283189850475759}, {'close':41190,'date':42018,'markup':-0.0500461254612546}, {'close':40920,'date':42019,'markup':-0.0291814946619217}, {'close':41040,'date':42020,'markup':0.0128331688055281}, {'close':41770,'date':42023,'markup':0.0170440710981252}, {'close':41250,'date':42024,'markup':-0.0036231884057971}, {'close':41260,'date':42025,'markup':-0.0019351717464925}, {'close':41560,'date':42026,'markup':0.00580832526621491}, {'close':40750,'date':42027,'markup':-0.0204326923076923}, {'close':39250,'date':42030,'markup':-0.0405768760694207}, {'close':40260,'date':42031,'markup':0.0151285930408472}, {'close':39690,'date':42032,'markup':-0.0129321064411838}, {'close':39320,'date':42033,'markup':-0.00932224741748551}, {'close':39090,'date':42034,'markup':-0.0108805668016194}, {'close':40290,'date':42037,'markup':0.0275439938791125}, {'close':40760,'date':42038,'markup':0.0233492342455436}, {'close':41160,'date':42039,'markup':0.0178041543026706}, {'close':41000,'date':42040,'markup':-0.00630150266602036}, {'close':41670,'date':42041,'markup':0.0116533139111435}, {'close':41260,'date':42044,'markup':-0.00145208131655373}, {'close':41320,'date':42045,'markup':0.000242072137496974}, {'close':41100,'date':42046,'markup':-0.005324298160697}, {'close':41110,'date':42047,'markup':0.0017056530214425}, {'close':42120,'date':42048,'markup':0.0263157894736842}, {'close':42220,'date':42051,'markup':0.0117421519290678}, {'close':42200,'date':42052,'markup':0.00691958959675495}, {'close':41900,'date':42060,'markup':-0.00475059382422803}, {'close':42510,'date':42061,'markup':0.014074427480916}, {'close':42730,'date':42062,'markup':0.0127992415264281}, {'close':43200,'date':42065,'markup':0.0119465917076599}, {'close':42540,'date':42066,'markup':-0.00677095493812748}, {'close':42460,'date':42067,'markup':-0.00794392523364486}, {'close':42500,'date':42068,'markup':0.00235849056603774}, {'close':42200,'date':42069,'markup':-0.00518623290900519}, {'close':42300,'date':42072,'markup':-0.00212314225053079}, {'close':42230,'date':42073,'markup':0.00547619047619048}, {'close':42080,'date':42074,'markup':-0.0101152669960009}, {'close':42560,'date':42075,'markup':0.0109263657957245}, {'close':42840,'date':42076,'markup':0.0178189593727726}, {'close':42810,'date':42079,'markup':0.0028109627547435}, {'close':42430,'date':42080,'markup':-0.00445800093852651}, {'close':41620,'date':42081,'markup':-0.0241500586166471}, {'close':41720,'date':42082,'markup':-0.00949667616334283}, {'close':42040,'date':42083,'markup':0.0127680077089858}, {'close':43690,'date':42086,'markup':0.0370282459055305}, {'close':43850,'date':42087,'markup':0.0131700554528651}, {'close':43680,'date':42088,'markup':-0.00523798679116374}, {'close':43930,'date':42089,'markup':0.00595374398900847}, {'close':43770,'date':42090,'markup':-0.00114103149246919}, {'close':43830,'date':42093,'markup':-0.000911784818782767}, {'close':43350,'date':42094,'markup':-0.0061898211829436}, {'close':43260,'date':42095,'markup':-0.0116518163125428}, {'close':43520,'date':42096,'markup':0.00322729368372522}, {'close':43280,'date':42097,'markup':-0.00161476355247982}, {'close':43480,'date':42101,'markup':0.00346180475421186}, {'close':43460,'date':42102,'markup':0.000230149597238205}, {'close':43310,'date':42103,'markup':-0.00619550252409362}, {'close':43530,'date':42104,'markup':0.00577634011090573}, {'close':43680,'date':42107,'markup':0.00691562932226833}, {'close':42860,'date':42108,'markup':-0.0185482024272956}, {'close':43000,'date':42109,'markup':-0.00370713623725672}, {'close':43340,'date':42110,'markup':0.0104919561669387}, {'close':43690,'date':42111,'markup':0.0127491886879926}, {'close':43870,'date':42114,'markup':0.00274285714285714}, {'close':43370,'date':42115,'markup':-0.00981735159817352}, {'close':43310,'date':42116,'markup':-0.00115313653136531}, {'close':42990,'date':42117,'markup':-0.00601156069364162}, {'close':43310,'date':42118,'markup':0.005338904363974}, {'close':43730,'date':42121,'markup':0.0106309221169401}, {'close':43740,'date':42122,'markup':0.00160293107396382}, {'close':43730,'date':42123,'markup':-0.00273660205245154}, {'close':44240,'date':42124,'markup':0.00935432352270135}, {'close':45710,'date':42128,'markup':0.0372135239391877}, {'close':45730,'date':42129,'markup':0.00571805586100726}, {'close':46130,'date':42130,'markup':0.00940919037199125}, {'close':45860,'date':42131,'markup':-0.00499023649381645}, {'close':45970,'date':42132,'markup':0.00196163905841325}, {'close':45790,'date':42135,'markup':-0.00217912399215515}, {'close':45830,'date':42136,'markup':0.00109217999126256}, {'close':46260,'date':42137,'markup':0.0113686051595977}, {'close':46070,'date':42138,'markup':-0.000217013888888889}, {'close':46040,'date':42139,'markup':0.000869565217391304}, {'close':46110,'date':42142,'markup':0.00391900718484651}, {'close':45710,'date':42143,'markup':-0.00565586251903415}, {'close':44760,'date':42144,'markup':-0.022920759659463}, {'close':45120,'date':42145,'markup':0.00378197997775306}, {'close':45110,'date':42146,'markup':0.00289017341040462}, {'close':44710,'date':42149,'markup':-0.00996457041629761}, {'close':44520,'date':42150,'markup':-0.00246470983643289}, {'close':44300,'date':42151,'markup':-0.0127033652774682}, {'close':44250,'date':42152,'markup':0.00135777325186694}, {'close':44300,'date':42153,'markup':0.00385225470201677}, {'close':43650,'date':42156,'markup':-0.0115489130434783}, {'close':43690,'date':42157,'markup':-0.00273910066194933}, {'close':43530,'date':42158,'markup':-0.00183444164182527}, {'close':43400,'date':42159,'markup':-0.0077732053040695}, {'close':42810,'date':42160,'markup':-0.0156357783398482}, {'close':43160,'date':42163,'markup':0.00278810408921933}, {'close':43250,'date':42164,'markup':0.00394614670380687}, {'close':43370,'date':42165,'markup':0.00393518518518518}, {'close':43230,'date':42166,'markup':-0.00322803781415725}, {'close':42490,'date':42167,'markup':-0.0245638200183655}, {'close':42210,'date':42170,'markup':-0.011938202247191}, {'close':42150,'date':42171,'markup':-0.00870178739416745}, {'close':41810,'date':42172,'markup':-0.00853687455537112}, {'close':42080,'date':42173,'markup':0.00525561395126613}, {'close':41820,'date':42174,'markup':-0.00238549618320611}, {'close':41910,'date':42178,'markup':0.000238663484486874}, {'close':42190,'date':42179,'markup':0.00788342092689919}, {'close':41920,'date':42180,'markup':-0.0026171782060433}, {'close':42300,'date':42181,'markup':0.00786275911365261}, {'close':42500,'date':42184,'markup':0.0116638895501071}, {'close':42090,'date':42185,'markup':-0.00213371266002845}, {'close':41970,'date':42186,'markup':-0.00568585643212509}, {'close':42200,'date':42187,'markup':0.00595947556615018}, {'close':42380,'date':42188,'markup':0.00450343683337284}, {'close':40730,'date':42191,'markup':-0.0373434176317655}, {'close':39780,'date':42192,'markup':-0.0349344978165939}, {'close':38070,'date':42193,'markup':-0.0574399603862342}, {'close':40470,'date':42194,'markup':0.0498054474708171}, {'close':40360,'date':42195,'markup':0.00748876684972541}, {'close':40130,'date':42198,'markup':-0.0144891944990177}, {'close':40280,'date':42199,'markup':0.00248880039820806}, {'close':40750,'date':42200,'markup':0.00791491466732624}, {'close':40680,'date':42201,'markup':0.00543746910528917}, {'close':40480,'date':42202,'markup':0.00123670541676973}, {'close':39800,'date':42205,'markup':-0.0165554731900173}, {'close':40080,'date':42206,'markup':0.00350525788683025}, {'close':39150,'date':42207,'markup':-0.020760380190095}, {'close':39180,'date':42208,'markup':-0.0118537200504414}, {'close':38050,'date':42209,'markup':-0.0271030427000767}, {'close':37980,'date':42212,'markup':-0.0127371978164804}, {'close':38040,'date':42213,'markup':-0.00288335517693316}, {'close':38810,'date':42214,'markup':0.0253632760898283}, {'close':38560,'date':42215,'markup':-0.00541655919525406}, {'close':38250,'date':42216,'markup':-0.0111168562564633}, {'close':37870,'date':42219,'markup':-0.0132881709223554}, {'close':38190,'date':42220,'markup':-0.000261780104712042}, {'close':38120,'date':42221,'markup':0.00395048722675797}, {'close':38050,'date':42222,'markup':-0.002098085496984}, {'close':37970,'date':42223,'markup':-0.00131509731720147}, {'close':37990,'date':42226,'markup':0.00635761589403974}, {'close':39060,'date':42227,'markup':0.0319682959048877}, {'close':39350,'date':42228,'markup':0.0120884773662551}, {'close':39580,'date':42229,'markup':0.0169578622816033}, {'close':39250,'date':42230,'markup':-0.00933871781928319}, {'close':39150,'date':42233,'markup':-0.00684931506849315}, {'close':38790,'date':42234,'markup':-0.0104591836734694}, {'close':38750,'date':42235,'markup':-0.00564536823197331}, {'close':38620,'date':42236,'markup':0.00416016640665627}, {'close':38940,'date':42237,'markup':0.00985477178423236}, {'close':38280,'date':42240,'markup':-0.0189646335212711}, {'close':38820,'date':42241,'markup':0.0127837203235064}, {'close':38840,'date':42242,'markup':0.00752269779507134}, {'close':38740,'date':42243,'markup':-0.0127420998980632}, {'close':39280,'date':42244,'markup':0.0186721991701245}, {'close':39200,'date':42247,'markup':-0.00127388535031847}, {'close':39150,'date':42248,'markup':-0.00330957230142566}, {'close':39010,'date':42249,'markup':-0.00510073960724305}, {'close':39370,'date':42254,'markup':0.00793650793650794}, {'close':39530,'date':42255,'markup':0.00687722873153337}, {'close':41140,'date':42256,'markup':0.0444275196750444}, {'close':41060,'date':42257,'markup':0.00587947084762371}, {'close':41160,'date':42258,'markup':0.00512820512820513}, {'close':40620,'date':42261,'markup':-0.012399708242159}, {'close':40320,'date':42262,'markup':-0.0134573036457059}, {'close':40950,'date':42263,'markup':0.0108615156751419}, {'close':40990,'date':42264,'markup':0.00861220472440945}, {'close':40710,'date':42265,'markup':-0.00852411105698977}, {'close':40340,'date':42268,'markup':-0.0141739980449658}, {'close':39920,'date':42269,'markup':-0.00572851805728518}, {'close':38930,'date':42270,'markup':-0.0311100049776008}, {'close':38850,'date':42271,'markup':0.00491464045525091}, {'close':39000,'date':42272,'markup':0.00386100386100386}, {'close':38170,'date':42275,'markup':-0.0187660668380463}, {'close':37640,'date':42276,'markup':-0.0248704663212435}, {'close':38370,'date':42277,'markup':0.0156167284277395}, {'close':38920,'date':42285,'markup':0.0220588235294118}, {'close':40090,'date':42286,'markup':0.0237487231869254}, {'close':40150,'date':42289,'markup':0.0144012127337039}, {'close':39750,'date':42290,'markup':-0.00823353293413174}, {'close':39630,'date':42291,'markup':-0.00352024138798089}, {'close':40020,'date':42292,'markup':0.00780659783429867}, {'close':39540,'date':42293,'markup':-0.0112528132033008}, {'close':39380,'date':42296,'markup':-0.0117942283563363}, {'close':39200,'date':42297,'markup':-0.00759493670886076}, {'close':38910,'date':42298,'markup':-0.00485933503836317}, {'close':39270,'date':42299,'markup':0.00511901714870745}, {'close':39700,'date':42300,'markup':0.0163850486431132}, {'close':39060,'date':42303,'markup':-0.0108888326158521}, {'close':39310,'date':42304,'markup':0.00485685071574642}, {'close':38930,'date':42305,'markup':-0.00409311844461499}, {'close':39030,'date':42306,'markup':-0.00153491941673062}, {'close':38770,'date':42307,'markup':-0.00742447516641065}, {'close':38500,'date':42310,'markup':-0.0046535677352637}, {'close':38420,'date':42311,'markup':-0.00207792207792208}, {'close':38830,'date':42312,'markup':0.00857142857142857}, {'close':38220,'date':42313,'markup':-0.00804567869192837}, {'close':38030,'date':42314,'markup':-0.015022015022015}, {'close':37620,'date':42317,'markup':-0.00947867298578199}, {'close':37570,'date':42318,'markup':-0.00739762219286658}, {'close':37100,'date':42319,'markup':-0.00961025093432995}, {'close':37310,'date':42320,'markup':-0.000535762121618002}, {'close':36230,'date':42321,'markup':-0.0292068595927117}, {'close':36030,'date':42324,'markup':-0.0123355263157895}, {'close':34970,'date':42325,'markup':-0.0353103448275862}, {'close':34880,'date':42326,'markup':-0.00852757248436612}, {'close':34770,'date':42327,'markup':-0.00429553264604811}, {'close':34910,'date':42328,'markup':0.0066320645905421}, {'close':33510,'date':42331,'markup':-0.0362381363244176}, {'close':33850,'date':42332,'markup':-0.00558166862514689}, {'close':34620,'date':42333,'markup':0.031277926720286}, {'close':35140,'date':42334,'markup':0.0194371917609516}, {'close':35350,'date':42335,'markup':0.00942318675042833}, {'close':34740,'date':42338,'markup':-0.0130681818181818}, {'close':35080,'date':42339,'markup':0.00804597701149425}, {'close':34890,'date':42340,'markup':-0.00114514743773261}, {'close':34390,'date':42341,'markup':-0.0207858769931663}, {'close':34610,'date':42342,'markup':-0.00545977011494253}, {'close':35330,'date':42345,'markup':0.0216888374783112}, {'close':34710,'date':42346,'markup':-0.00885208452312964}, {'close':35010,'date':42347,'markup':0.00516795865633075}, {'close':34920,'date':42348,'markup':0.00200860832137733}, {'close':35960,'date':42349,'markup':0.0236265300313123}, {'close':36130,'date':42352,'markup':0.0206214689265537}, {'close':35620,'date':42353,'markup':-0.0122018857459789}, {'close':35450,'date':42354,'markup':-0.0144564915207117}, {'close':35140,'date':42355,'markup':-0.00874471086036671}, {'close':35810,'date':42356,'markup':0.0101551480959097}, {'close':36240,'date':42359,'markup':0.023728813559322}, {'close':36350,'date':42360,'markup':0.00916157690172127}, {'close':36380,'date':42361,'markup':0.000825309491059147}, {'close':36170,'date':42362,'markup':-0.000828729281767956}, {'close':36340,'date':42363,'markup':0.00110192837465565}, {'close':35740,'date':42366,'markup':-0.0143408714837286}, {'close':36190,'date':42367,'markup':0.00249307479224377}, {'close':36370,'date':42368,'markup':0.015071169411108}, {'close':36560,'date':42369,'markup':0.00384404173531027}, {'close':35970,'date':42373,'markup':-0.0150602409638554}, {'close':36510,'date':42374,'markup':0.0127600554785021}, {'close':36240,'date':42375,'markup':0.00332225913621262}, {'close':36090,'date':42376,'markup':-0.00633259911894273}, {'close':35680,'date':42377,'markup':-0.0154525386313466}, {'close':34770,'date':42380,'markup':-0.0257775287195293}, {'close':34630,'date':42381,'markup':-0.0195356738391846}, {'close':34810,'date':42382,'markup':-0.00229292060762396}, {'close':34930,'date':42383,'markup':0.00287108814240597}, {'close':34800,'date':42384,'markup':0.00143884892086331}, {'close':34990,'date':42387,'markup':-0.000571265352756355}, {'close':35360,'date':42388,'markup':0.0140521938629194}, {'close':35080,'date':42389,'markup':-0.00255899914700028}, {'close':34850,'date':42390,'markup':-0.0102243680772508}, {'close':35190,'date':42391,'markup':0.00456751355980588}, {'close':35020,'date':42394,'markup':-0.00426499857833381}, {'close':35100,'date':42395,'markup':-0.00113830392714855}, {'close':35780,'date':42396,'markup':0.0219937160811197}, {'close':35600,'date':42397,'markup':0.00168823860438942}, {'close':35680,'date':42398,'markup':-0.00167879127028539}, {'close':35540,'date':42401,'markup':-0.00252596126859388}, {'close':35760,'date':42402,'markup':0.00280426247896803}, {'close':35810,'date':42403,'markup':0.00448807854137447}, {'close':36500,'date':42404,'markup':0.0226954328943682}, {'close':36510,'date':42405,'markup':0.00828500414250207}, {'close':35750,'date':42415,'markup':-0.0189352360043908}, {'close':35750,'date':42416,'markup':-0.000559127760693318}, {'close':35480,'date':42417,'markup':-0.00866163732886281}, {'close':35700,'date':42418,'markup':0.00140252454417952}, {'close':35920,'date':42419,'markup':0.00644438217988232}, {'close':36350,'date':42422,'markup':0.0167832167832168}, {'close':36200,'date':42423,'markup':0.00416088765603329}, {'close':35810,'date':42424,'markup':-0.0143132397467658}, {'close':35920,'date':42425,'markup':-0.00194498471797722}, {'close':35840,'date':42426,'markup':-0.00472091085809497}, {'close':35880,'date':42429,'markup':0.00251466890192791}, {'close':36010,'date':42430,'markup':-0.00359712230215827}, {'close':36940,'date':42431,'markup':0.0292560601838952}, {'close':37000,'date':42432,'markup':0.0156464452374417}, {'close':37950,'date':42433,'markup':0.0265079794427915}, {'close':38090,'date':42436,'markup':0.0151918976545842}, {'close':37750,'date':42437,'markup':-0.0120387333158859}, {'close':37320,'date':42438,'markup':-0.0178947368421053}, {'close':37300,'date':42439,'markup':0.00295778435063189}, {'close':37710,'date':42440,'markup':0.00774986638161411}, {'close':37750,'date':42443,'markup':0.0101685844260102}, {'close':37250,'date':42444,'markup':-0.0137675403759598}, {'close':37570,'date':42445,'markup':0.00589022757697456}, {'close':37940,'date':42446,'markup':0.015524625267666}, {'close':38380,'date':42447,'markup':0.0174973488865323}, {'close':38160,'date':42450,'markup':-0.00313479623824451}, {'close':38150,'date':42451,'markup':-0.00104739460591778}, {'close':38160,'date':42452,'markup':-0.00235294117647059}, {'close':37630,'date':42453,'markup':-0.0156944807742611}, {'close':37750,'date':42454,'markup':0.00265604249667995}, {'close':37510,'date':42457,'markup':-0.00292397660818713}, {'close':37590,'date':42458,'markup':-0.00344644750795334}, {'close':36990,'date':42459,'markup':-0.0201324503311258}, {'close':36860,'date':42460,'markup':-0.0107353730542136}, {'close':37120,'date':42461,'markup':0.00623475196530225}, {'close':36730,'date':42465,'markup':-0.0072972972972973}, {'close':36730,'date':42466,'markup':0.000817438692098093}, {'close':36650,'date':42467,'markup':-0.00163443203486788}, {'close':35760,'date':42468,'markup':-0.0264089300299483}, {'close':35830,'date':42471,'markup':-0.00111513799832729}, {'close':35980,'date':42472,'markup':0.00167037861915367}, {'close':36830,'date':42473,'markup':0.0264771460423634}, {'close':36850,'date':42474,'markup':0.00408719346049046}, {'close':36780,'date':42475,'markup':-0.00487012987012987}, {'close':36610,'date':42478,'markup':-0.0102730467693971}, {'close':36940,'date':42479,'markup':0.00325909831613254}, {'close':37360,'date':42480,'markup':0.0121918179355188}, {'close':38100,'date':42481,'markup':0.018716577540107}, {'close':37970,'date':42482,'markup':0.00582781456953642}, {'close':38120,'date':42485,'markup':0.00447957839262187}, {'close':37710,'date':42486,'markup':-0.0159185803757829}, {'close':37630,'date':42487,'markup':-0.00581241743725231}, {'close':37280,'date':42488,'markup':-0.0116648992576882}, {'close':37660,'date':42489,'markup':0.0101931330472103}, {'close':37910,'date':42493,'markup':0.0103944562899787}, {'close':37230,'date':42494,'markup':-0.0119426751592357}, {'close':36840,'date':42495,'markup':-0.0136546184738956}, {'close':36620,'date':42496,'markup':-0.0118726389638424}, {'close':35840,'date':42499,'markup':-0.0202296336796063}, {'close':35950,'date':42500,'markup':-0.00882271850013785}, {'close':35960,'date':42501,'markup':0.00250906049623641}, {'close':36240,'date':42502,'markup':0.0089086859688196}, {'close':35480,'date':42503,'markup':-0.0185338865836791}, {'close':35610,'date':42506,'markup':0.00140607424071991}, {'close':35900,'date':42507,'markup':0.012979683972912}, {'close':35380,'date':42508,'markup':-0.0109029913335197}, {'close':35200,'date':42509,'markup':-0.0109581343073897}, {'close':35320,'date':42510,'markup':-0.00113122171945701}, {'close':35170,'date':42513,'markup':-0.000852272727272727}, {'close':35190,'date':42514,'markup':0.00113798008534851}, {'close':35490,'date':42515,'markup':0.00795228628230616}, {'close':36060,'date':42516,'markup':0.0157746478873239}, {'close':35840,'date':42517,'markup':0}, {'close':35710,'date':42520,'markup':-0.00418293363078639}, {'close':35750,'date':42521,'markup':-0.000559127760693318}, {'close':35190,'date':42522,'markup':-0.0170391061452514}, {'close':35280,'date':42523,'markup':-0.0056369785794814}, {'close':35720,'date':42524,'markup':0.0124716553287982}, {'close':36260,'date':42527,'markup':0.0237154150197628}, {'close':35840,'date':42528,'markup':-0.00665188470066519}, {'close':35230,'date':42529,'markup':-0.0224750277469478}, {'close':35250,'date':42534,'markup':-0.000567054153671676}, {'close':35110,'date':42535,'markup':-0.00481859410430839}, {'close':35320,'date':42536,'markup':0}, {'close':35410,'date':42537,'markup':0.00682399772533409}, {'close':35560,'date':42538,'markup':-0.00364247688428131}, {'close':35460,'date':42541,'markup':0.00367959241437872}, {'close':35570,'date':42542,'markup':0.00281928390188892}, {'close':36260,'date':42543,'markup':0.0162556053811659}, {'close':36270,'date':42544,'markup':0.010587907495124}, {'close':35970,'date':42545,'markup':-0.00635359116022099}, {'close':36720,'date':42548,'markup':0.0121278941565601}, {'close':37200,'date':42549,'markup':0.021978021978022}, {'close':37220,'date':42550,'markup':0.00949281258475725}, {'close':37530,'date':42551,'markup':0.0072463768115942}, {'close':37300,'date':42552,'markup':-0.00453696290365626}, {'close':38410,'date':42555,'markup':0.0275548421615837}, {'close':37790,'date':42556,'markup':-0.0065720294426919}, {'close':37380,'date':42557,'markup':-0.0131995776135164}, {'close':36910,'date':42558,'markup':-0.0128376571275742}, {'close':36620,'date':42559,'markup':-0.0116059379217274}, {'close':37020,'date':42562,'markup':0.00926935659760087}, {'close':37180,'date':42563,'markup':0.0103260869565217}, {'close':38580,'date':42564,'markup':0.0410145709660011}, {'close':38640,'date':42565,'markup':0.0075619295958279}, {'close':38500,'date':42566,'markup':0.000779828437743696}, {'close':37850,'date':42569,'markup':-0.0148360229047371}, {'close':38300,'date':42570,'markup':0.00183102275699712}, {'close':38280,'date':42571,'markup':0.00104602510460251}, {'close':38650,'date':42572,'markup':0.00494019760790432}, {'close':38180,'date':42573,'markup':-0.00572916666666667}, {'close':38160,'date':42576,'markup':-0.0078003120124805}, {'close':37810,'date':42577,'markup':-0.00969093766369827}, {'close':37740,'date':42578,'markup':-0.00185136207352552}, {'close':37820,'date':42579,'markup':-0.00184745315386646}, {'close':37470,'date':42580,'markup':-0.00610079575596817}, {'close':38280,'date':42583,'markup':0.0124305739222428}, {'close':38020,'date':42584,'markup':0.00105318588730911}, {'close':37790,'date':42585,'markup':-0.00395361096468108}, {'close':37620,'date':42586,'markup':-0.0113009198423127}, {'close':37620,'date':42587,'markup':-0.000796812749003984}, {'close':37540,'date':42590,'markup':0}, {'close':37220,'date':42591,'markup':-0.00773127166089043}, {'close':37470,'date':42592,'markup':0}, {'close':37530,'date':42593,'markup':0.00481927710843374}, {'close':37560,'date':42594,'markup':-0.00106382978723404}, {'close':37070,'date':42597,'markup':-0.0133084908171413}, {'close':37220,'date':42598,'markup':0.000268744961031981}, {'close':37220,'date':42599,'markup':0.00161463939720129}, {'close':37370,'date':42600,'markup':0.00241416309012876}, {'close':37390,'date':42601,'markup':0.0042976094547408}, {'close':37140,'date':42604,'markup':-0.00508974015537102}, {'close':37120,'date':42605,'markup':-0.00348993288590604}, {'close':36650,'date':42606,'markup':-0.011863035858722}, {'close':36370,'date':42607,'markup':-0.0124898180830844}, {'close':36430,'date':42608,'markup':0.00275254610514726}, {'close':36420,'date':42611,'markup':0.00192572214580468}, {'close':36260,'date':42612,'markup':-0.00302447071762442}, {'close':36270,'date':42613,'markup':-0.00329760923330585}, {'close':36530,'date':42614,'markup':0.00689084895259096}, {'close':36670,'date':42615,'markup':0.00603566529492455}, {'close':36510,'date':42618,'markup':-0.000547495209416918}, {'close':36570,'date':42619,'markup':0.000547195622435021}, {'close':36750,'date':42620,'markup':0.00629791894852136}, {'close':36570,'date':42621,'markup':-0.00245499181669394}, {'close':36620,'date':42622,'markup':-0.0010911074740862}, {'close':36170,'date':42625,'markup':-0.0122883670125614}, {'close':36600,'date':42626,'markup':0.0066006600660066}, {'close':36730,'date':42627,'markup':0.0068530701754386}, {'close':37230,'date':42632,'markup':0.0161026200873362}, {'close':37280,'date':42633,'markup':0.00458097547830773}, {'close':37300,'date':42634,'markup':0.00161117078410312}, {'close':37650,'date':42635,'markup':0.00857219394588803}, {'close':37860,'date':42636,'markup':0.00986929847959456}, {'close':37760,'date':42639,'markup':-0.00026476039184538}, {'close':37680,'date':42640,'markup':-0.00238284352660842}, {'close':37520,'date':42641,'markup':-0.00318809776833156}, {'close':37650,'date':42642,'markup':0.00534045393858478}, {'close':37710,'date':42643,'markup':-0.00185283218634198}, {'close':37650,'date':42653,'markup':-0.00106128946670204}, {'close':38160,'date':42654,'markup':0.0162450066577896}, {'close':37950,'date':42655,'markup':-0.00131578947368421}, {'close':37630,'date':42656,'markup':-0.00764767932489452}, {'close':37370,'date':42657,'markup':-0.0129424194400423}, {'close':37320,'date':42660,'markup':0.000536193029490617}, {'close':37400,'date':42661,'markup':0.00375738056897477}, {'close':37190,'date':42662,'markup':-0.0026816840976133}, {'close':37310,'date':42663,'markup':0.00107324926214113}, {'close':37180,'date':42664,'markup':-0.00161117078410312}, {'close':37350,'date':42667,'markup':0.00592512792889846}, {'close':38010,'date':42668,'markup':0.0198551113496109}, {'close':37760,'date':42669,'markup':-0.000529380624669137}, {'close':37820,'date':42670,'markup':-0.00290007909306617}, {'close':38270,'date':42671,'markup':0.0118984664198837}, {'close':38390,'date':42674,'markup':0.00681877786519801}, {'close':38740,'date':42675,'markup':0.00832899531494014}, {'close':38580,'date':42676,'markup':-0.00206932229694775}, {'close':38990,'date':42677,'markup':0.00437918598660484}, {'close':39130,'date':42678,'markup':0.00850515463917526}, {'close':40380,'date':42681,'markup':0.0303648890022965}, {'close':40450,'date':42682,'markup':0.0142928786359077}, {'close':41600,'date':42683,'markup':0.0304681694327471}, {'close':43910,'date':42684,'markup':0.0598600048274197}, {'close':46700,'date':42685,'markup':0.0868047474982546}, {'close':45520,'date':42688,'markup':0.00419148466799029}, {'close':43670,'date':42689,'markup':-0.0429541968003506}, {'close':44580,'date':42690,'markup':-0.00801068090787717}, {'close':43670,'date':42691,'markup':-0.0113199003848766}, {'close':44210,'date':42692,'markup':0.00729095465937571}, {'close':45120,'date':42695,'markup':0.0212765957446809}, {'close':46210,'date':42696,'markup':0.0384269662921348}, {'close':45760,'date':42697,'markup':0.00328875246656435}, {'close':48210,'date':42698,'markup':0.0535402097902098}, {'close':48100,'date':42699,'markup':0.0166983724371169}, {'close':49580,'date':42702,'markup':0.0273518441773726}, {'close':46750,'date':42703,'markup':-0.0424006554690701}, {'close':46100,'date':42704,'markup':-0.0385818561001043}, {'close':47060,'date':42705,'markup':0.0181739506707053}, {'close':46630,'date':42706,'markup':-0.00766120451159821}, {'close':47360,'date':42709,'markup':0.0152197213290461}, {'close':47690,'date':42710,'markup':0.0166275847367299}, {'close':48350,'date':42711,'markup':0.00834202294056309}, {'close':47210,'date':42712,'markup':-0.015021906947632}, {'close':47390,'date':42713,'markup':-0.00294550810014728}, {'close':47230,'date':42716,'markup':0.00276008492569002}, {'close':46920,'date':42717,'markup':-0.0163522012578616}, {'close':46490,'date':42718,'markup':-0.00937566588536118}, {'close':46790,'date':42719,'markup':0.00537172324881822}, {'close':46460,'date':42720,'markup':-0.00471293916023993}, {'close':45630,'date':42723,'markup':-0.0216552315608919}, {'close':44890,'date':42724,'markup':-0.0260360164894771}, {'close':45330,'date':42725,'markup':0.00800533689126084}, {'close':44430,'date':42726,'markup':-0.0157288435976961}, {'close':45070,'date':42727,'markup':0.0058022762776166}, {'close':44070,'date':42730,'markup':-0.0162946428571429}, {'close':44600,'date':42731,'markup':0.00882153358968559}, {'close':45620,'date':42732,'markup':0.0288678394226432}, {'close':45810,'date':42733,'markup':0.00614979134636503}, {'close':45500,'date':42734,'markup':-0.00153609831029186}, {'close':45760,'date':42738,'markup':0.00726392251815981}, {'close':45520,'date':42739,'markup':-0.0112945264986968}, {'close':45760,'date':42740,'markup':0.00881834215167548}, {'close':45350,'date':42741,'markup':-0.0109051254089422}, {'close':45730,'date':42744,'markup':0.00660356592559982}, {'close':46110,'date':42745,'markup':0.0140752144270948}, {'close':47160,'date':42746,'markup':0.0301441677588467}, {'close':46980,'date':42747,'markup':0.000638977635782748}, {'close':47400,'date':42748,'markup':0.00872526069376463}, {'close':47950,'date':42751,'markup':0.00947368421052632}, {'close':46780,'date':42752,'markup':-0.0233820459290188}, {'close':46600,'date':42753,'markup':-0.0152155536770921}, {'close':46730,'date':42754,'markup':0.00386680988184748}, {'close':46080,'date':42755,'markup':-0.0113709504398198}, {'close':46850,'date':42758,'markup':0.00926324859974149}, {'close':47070,'date':42759,'markup':0.00598418465484078}, {'close':47650,'date':42760,'markup':0.0166417751226798}, {'close':48040,'date':42761,'markup':0.00903171602604495}, {'close':46780,'date':42769,'markup':-0.0217482225010456}, {'close':46600,'date':42772,'markup':-0.00682011935208866}, {'close':46850,'date':42773,'markup':0.00536480686695279}, {'close':47660,'date':42774,'markup':0.0181585131382183}, {'close':47590,'date':42775,'markup':0.00890396438414246}, {'close':47820,'date':42776,'markup':0.00293624161073826}, {'close':50120,'date':42779,'markup':0.0536052133697709}, {'close':50110,'date':42780,'markup':0.0113017154389506}, {'close':48740,'date':42781,'markup':-0.0240288346015218}, {'close':48680,'date':42782,'markup':-0.00895765472312704}, {'close':48360,'date':42783,'markup':-0.0124566060853584}, {'close':48770,'date':42786,'markup':0.00349794238683128}, {'close':48920,'date':42787,'markup':0.0103263114415531}, {'close':48660,'date':42788,'markup':-0.00795107033639144}, {'close':48390,'date':42789,'markup':-0.0104294478527607}, {'close':47760,'date':42790,'markup':-0.0166769610870908}, {'close':47730,'date':42793,'markup':-0.000628140703517588}, {'close':47740,'date':42794,'markup':-0.00271568832254021}, {'close':48650,'date':42795,'markup':0.0171440518503032}, {'close':48690,'date':42796,'markup':0.00786586628027324}, {'close':48280,'date':42797,'markup':-0.00882775610757545}, {'close':47890,'date':42800,'markup':-0.00539979231568017}, {'close':47720,'date':42801,'markup':-0.00893042575285566}, {'close':47300,'date':42802,'markup':-0.00713685978169605}, {'close':46570,'date':42803,'markup':-0.0177177810588483}, {'close':46650,'date':42804,'markup':-0.00681285927187567}, {'close':47560,'date':42807,'markup':0.0214776632302405}, {'close':47360,'date':42808,'markup':0.00723096554657592}, {'close':47670,'date':42809,'markup':0.00654560810810811}, {'close':48160,'date':42810,'markup':0.015177065767285}, {'close':47740,'date':42811,'markup':-0.00500208420175073}, {'close':47980,'date':42814,'markup':0.000834376303712975}, {'close':47290,'date':42815,'markup':-0.0160216396171452}, {'close':46660,'date':42816,'markup':-0.0209819555182543}, {'close':47120,'date':42817,'markup':0.00511945392491468}, {'close':47100,'date':42818,'markup':0.00298126064735946}, {'close':46260,'date':42821,'markup':-0.0159540523292916}, {'close':46740,'date':42822,'markup':0.00429737859905458}, {'close':47530,'date':42823,'markup':0.0259011439671919}, {'close':47460,'date':42824,'markup':0.00423190859077444}, {'close':47750,'date':42825,'markup':0.0056866048862679}, {'close':47420,'date':42830,'markup':-0.00857202592515158}, {'close':47810,'date':42831,'markup':0.0103550295857988}, {'close':47130,'date':42832,'markup':-0.0168961201501877}, {'close':47050,'date':42835,'markup':-0.012384550797649}, {'close':46580,'date':42836,'markup':-0.0116698493528538}, {'close':46230,'date':42837,'markup':-0.0111229946524064}, {'close':46480,'date':42838,'markup':-0.00321681321037958}, {'close':46110,'date':42839,'markup':0.00152041702867072}, {'close':46480,'date':42842,'markup':0.00693240901213172}, {'close':45850,'date':42843,'markup':-0.0163055138382321}, {'close':45840,'date':42844,'markup':-0.00972132209980557}, {'close':45560,'date':42845,'markup':-0.00153407845715538}, {'close':46030,'date':42846,'markup':0.0132071318511996}, {'close':45910,'date':42849,'markup':0.00305877212147695}, {'close':46030,'date':42850,'markup':0.00590034965034965}, {'close':46230,'date':42851,'markup':0.00762859633827376}, {'close':46290,'date':42852,'markup':0.00129785853341986}, {'close':46330,'date':42853,'markup':0.000431872165838912}, {'close':46790,'date':42857,'markup':0.0121133463119187}, {'close':46580,'date':42858,'markup':-0.00618732664817581}, {'close':45180,'date':42859,'markup':-0.0323409723709574}, {'close':44980,'date':42860,'markup':-0.0125137211855104}, {'close':44670,'date':42863,'markup':-0.00755387691624084}, {'close':44730,'date':42864,'markup':-0.0077639751552795}, {'close':44860,'date':42865,'markup':0.00357941834451902}, {'close':45270,'date':42866,'markup':0.00711902113459399}, {'close':44930,'date':42867,'markup':-0.000222518914107699}, {'close':45430,'date':42870,'markup':0.00888296691094826}, {'close':45170,'date':42871,'markup':-0.000663716814159292}, {'close':45390,'date':42872,'markup':0.00220799293442261}, {'close':44960,'date':42873,'markup':-0.00990971151728694}, {'close':45250,'date':42874,'markup':0.00265898515399956} ]}
给定一个序列和一个目标值,从这个序列中找到这个目标值的位置。
import numpy as npimport tensorflow as tfclass LinearSearch(): def __init__(self, array, x): self.x = tf.constant(x) self.array = tf.constant(array) self.length = len(array) self.graph = tf.while_loop(self.cond, self.body, [0, self.x, False]) def run(self): with tf.Session() as sess: tf.global_variables_initializer().run() return sess.run(self.graph) def cond(self, i, _, is_found): return tf.logical_and(tf.less(i, self.length), tf.logical_not(is_found)) def body(self, i, _, is_found): return tf.cond(tf.equal(self.array[i], self.x), lambda: (i, self.array[i], True), lambda: (tf.add(i, 1), -1, False))if __name__ == '__main__': array, x = [1, 22, 33, 1, 7, 3, 8], 3 search = LinearSearch(array, x) ix, xx, is_found = search.run() print('Array :', array) print('Number to search :', x) if is_found: print('{} is at index {}.'.format(xx, ix)) else: print('Not found.')
输出结果:
Array : [1, 22, 33, 1, 7, 3, 8]Number to search : 33 is at index 5.
给定一个数组,利用冒泡排序进行排序,最后输出排好序的数组。冒泡排序算法可以查看这个文档(https://en.wikipedia.org/wiki/Bubble_sort)。
import numpy as npimport tensorflow as tfclass BubbleSort(): def __init__(self, array): self.i = tf.constant(0) self.j = tf.constant(len(array)-1) self.array = tf.Variable(array, trainable=False) self.length = len(array) cond = lambda i, j, _: tf.less(i-1, self.length-1) self.graph = tf.while_loop(cond, self.outer_loop, loop_vars=[self.i, self.j, self.array]) def run(self): with tf.Session() as sess: tf.global_variables_initializer().run() return sess.run(self.graph) def outer_loop(self, i, j, _): cond = lambda i, j, _: tf.greater(j, i) loop = tf.while_loop(cond, self.inner_loop, loop_vars=[i, self.length-1, self.array]) return tf.add(i, 1), loop[1], loop[2] def inner_loop(self, i, j, _): body = tf.cond(tf.greater(self.array[j-1], self.array[j]), lambda: tf.scatter_nd_update(self.array, [[j-1],[j]], [self.array[j],self.array[j-1]]), lambda: self.array) return i, tf.subtract(j, 1), bodyif __name__ == '__main__': x = np.array([1.,7.,3.,8.]) _, _, sorted_array = BubbleSort(x).run() print(x) print(sorted_array)
输出结果:
[ 1. 7. 3. 8.][ 1. 3. 7. 8.]
TensorFlow 还有更多的实现算法,你可以查看这个 Github(https://github.com/akimach/EsotericTensorFlow)。