2016-05-31 4 views
0

Я пытаюсь использовать «IF» в python для достижения алгоритма, который может автоматически корректировать значение параметра в «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 после продажи акций за один раз.

ответ

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 
+0

Спасибо за ваш ответ. Это часть моей домашней работы по курсу в университете, поэтому я не буду использовать этот алгоритм для проведения реальной торговли. – wwhy

Смежные вопросы