1

由于缺乏明确性,我重新编辑了我的问题。下面的代码获取一个随机数,然后检查它是否是一个新高,如果是一个则记录它。然后经过一定的延迟(1 分钟)后,它再次执行相同的操作,从上一周期的最后一个数字开始。

我想为不同的频率运行相同的,所以我会有很多时间段,如果我在函数中重写下面的代码,我可以获得 agregateinfrequency(5min),它只会返回下面的打印(或列表)

希望它现在更有意义。

for random_number, current_time,i in generator():
    previous_last_price = mynumber
    mynumber = mynumber + (random_number*0.0001)
    #print (random_number*0.01)
    if mynumber >high_price: #new one
        high_price = mynumber
    if mynumber <low_price: #new one
        low_price = mynumber
    last_price = mynumber

    if keyfunc(current_time,1) != previous_reftime1min: #new one
        print mynumber,",",i, current_time,",", keyfunc(current_time,1),",", previous_reftime1min,",", open_price,",", high_price,",", low_price,",", last_price
        wrtr.writerow([mynumber, i,current_time, keyfunc(current_time,1), previous_reftime1min, open_price, high_price, low_price, last_price])    
        myfile.flush() # whenever you want, and/or
        open_price = previous_last_price
        high_price = mynumber
        low_price = mynumber
        last_price = mynumber
        previous_reftime1min = keyfunc(current_time,1)
4

1 回答 1

0

这是脚本的可能结构的一些伪代码,我尽可能了解您想要它做什么。

def check_price(random_number,last_price):
  new_price = do_some_logic() #do your logic
  write(new_price) #some abstract code to write your output to a file
  return new_price

price=some_initval
  while True:
    g=get_new_random_number()
    price=check_price(g,price)
    sleep(desired_period)

我没有使用 for 循环,而是在这里使用了一个 while 循环。我的理解是,您打算将此程序用作持续运行的守护程序,每分钟左右醒来,检查一些数据(例如当前价格)并运行计算。 while True确保程序将重复执行此操作,直到您将其杀死。

于 2013-04-05T15:33:10.243 回答