条件参数调整

时间:2016-05-31 01:45:02

标签: python algorithm trading

我尝试使用' IF'在python中为了实现可以自动调整参数值的算法,在IF' IF'根据一些股票交易。

if self.sellcount==0 and int(time.time())-self.programstarttime>600:
     if cur_sum/total_sum>0.15:
           Other Code
else:
      if cur_sum/total_sum>0.35:
           Other Code

我尝试实现这一点,如果我的算法在10分钟内没有卖出任何股票,算法可以自动将条件从0.35改为0.15。但是,在卖出股票一次后,上面的代码将从0.15变为0.35。我希望代码在卖出股票一次后保持0.15。

1 个答案:

答案 0 :(得分:0)

我想从免责声明开始要小心,股票交易并不容易,你可以通过一个简单的算法(就像复杂的算法一样)损失很多钱。

然而,这也是一个很好的例子,可以理解如何在Python中处理运行程序并理解条件逻辑。

您需要了解一些基本结构。第一个概念是,为了在程序中不断跟踪时间,您可能希望将代码置于无限循环中。这将使您的编程在您完成之前完成所需的操作。这可以这样做:

while True:

现在你有了这个设置,我们只需要跟踪时间。这可以通过设置变量并在迭代之间等待的时间增加它来轻松完成。但是,我们仍需要追踪时间。 Python在时间模块中实现了一个很好的休眠功能。此函数会使程序暂停所需的秒数,然后继续执行其余代码。

from time import sleep
last_sold_stock_time = 0
wait_time = 1

while True:

     # <Condition Code goes here>


    # This is in seconds
    sleep(wait_time)
    # Keep track of how much time has passed.
    last_sold_stock_time += wait_time

现在,您只需根据时间更改条件值。完整的代码可能最终看起来像这样:

from time import sleep

# The number of seconds since last bought a stock, assumes start is 0
last_sold_stock_time = 0

# This is in seconds
wait_time = 1

# ten minutes in seconds
ten_minutes = 600
while True:
    # Figure out these values however you do
    cur_sum = 0
    total_sum = 1

    if last_sold_stock_time <= ten_minutes:
        condition_value = 0.35
    else:
        condition_value = 0.15

    if cur_sum/total_sum > condition_value:
        # Do something
        pass

    sleep(wait_time)
    last_sold_stock_time += wait_time