Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.58/302: Рейтинг темы: голосов - 302, средняя оценка - 4.58
10 / 59 / 21
Регистрация: 12.03.2017
Сообщений: 514

Напишите робота для автоматической торговли акциями на бирже

25.10.2017, 18:49. Показов 61277. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Напишите робота для автоматической торговли акциями на бирже.

Вводится цена акций в первый, второй и т. д. дни, ноль — сигнал остановки. Возможно, сначала цена уменьшается. В какой-то момент цена начинает расти. Мы покупаем акции в первый день, когда их цена превышает цену в предыдущий день. После этого в какой-то момент цена акций начинает уменьшаться. Мы продаём акции в первый же день, как только их цена становится меньше цены в предыдущие дни. Возможно, после этого цены как-то ещё меняются.

Программа должна вывести цену акций, по которой мы их купили, цену, по которой продали, и выгоду с каждой акции (возможно, отрицательную).

Формат ввода
Несколько целых чисел — цены акций в последовательные дни.
Число 0 — сигнал прекращения ввода цен.

Формат вывода
Три целых числа — цена покупки, цена продажи, выгода.

Пример
Ввод
32
30
31
34
38
37
39
0
Вывод
31 37 6

Добавлено через 5 часов 27 минут
Кто-нибудь решит?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.10.2017, 18:49
Ответы с готовыми решениями:

[py3] Робот для автоматической торговли акциями
Напишите робота для автоматической торговли акциями на бирже. Вводится цена акций в первый, второй и т. д. дни, ноль — сигнал...

Кто-нибудь пишет программы для торговли на бирже ?
Кто-нибудь пишет программы для торговли на бирже ? Я пишу и есть некоторые наработки. Если кто захочет пообщаться на тему робототорговли...

Бот автоматической торговли для сайта
Сайт csgo.tm. Хочу сделать для него бот в tampermonkey для google chrome. С чего мне начать ? Сайт предоставляет сам API и не против...

7
21 / 20 / 16
Регистрация: 20.10.2017
Сообщений: 39
26.10.2017, 14:42
Только начинаю учить Питон.

Первый вариант: сначала собираем все значения цены в список, потом проходим по нему в цикле.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
price = int(input())
a = list()
while price != 0:
    a.append(price)
    price = int(input())
for i in range(2,len(a)):
    if a[i-2] > a[i-1] < a[i]:
        inprice = a[i]
        buypos = i
        break
for k in range(buypos+2,len(a)):
    if a[k-2] < a[k-1] > a[k]:
        outprice = a[k]
        break
print(inprice, outprice, outprice - inprice)
Второй вариант, составляя список сразу же проверяем его на соответствие условиям
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
price = int(input())
a = list()
in_stock = False
workflag = False 
while price != 0:
    a.append(price)
    if (len(a) >= 3) & (workflag == False):
        if (in_stock == False):
            if a[len(a)-3] > a[len(a)-2] < a[len(a)-1]:
                inprice = a[len(a)-1]
                in_stock = True
             
        if (in_stock == True):
            if a[len(a)-3] < a[len(a)-2] > a[len(a)-1]:
                outprice = a[len(a)-1]
                #break
                workflag == True
    price = int(input())
print(inprice, outprice, outprice - inprice)
Наверное, можно еще проще, обойтись без списка, а хранить только последние три переменных с ценами.

Добавлено через 6 минут
Третий вариант, без использования списков.
Все три варианта требуют корректных данных на ввод.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
price1 = int(input())
price2 = int(input())
price3 = int(input())
in_stock = False
workflag = False
while (workflag == False) and (price3 != 0):
    if in_stock == False:
        if price1 > price2 < price3:
            inprice = price3
            in_stock = True
    if in_stock == True:
        if price1 < price2 > price3:
            outprice = price3
            workflag = True
    price1 = price2
    price2 = price3
    price3 = int(input())
print(inprice, outprice, outprice - inprice)
0
10 / 59 / 21
Регистрация: 12.03.2017
Сообщений: 514
26.10.2017, 15:15  [ТС]
Третий вариант хорош! Но он выводит: builtins.NameError: name'inprice' is not defined
0
21 / 20 / 16
Регистрация: 20.10.2017
Сообщений: 39
26.10.2017, 15:21
В условии не указано, как вести себя с некорректными данными.
Если вводные данные не содержат подходящих цен (например, цены монотонно растут или падают), то программа будет вылетать с ошибкой (переменные инициализируются внутри цикла проверки).
Это легко исправить, если знать, что нужно выводить, если у задачи нет решения.
0
10 / 59 / 21
Регистрация: 12.03.2017
Сообщений: 514
26.10.2017, 15:35  [ТС]
Отправляю
Миниатюры
Напишите робота для автоматической торговли акциями на бирже  
0
21 / 20 / 16
Регистрация: 20.10.2017
Сообщений: 39
26.10.2017, 15:43
Лучший ответ Сообщение было отмечено Pavlin234 как решение

Решение

Всё переделываю, я неверно понял условие задачи. Она проще, не надо ждать изменения "тренда", достаточно простого условия роста/увеличения цены.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
price1 = int(input())
price2 = int(input())
in_stock = False
while price2 != 0:
    if in_stock == False:
        if price1 < price2:
            inprice = price2
            in_stock = True
    if in_stock == True:
        if price1 > price2:
            outprice = price2
            break
    price1 = price2
    price2 = int(input())
print(inprice, outprice, outprice - inprice)
2
in code we trust
 Аватар для __py__
133 / 162 / 12
Регистрация: 29.02.2016
Сообщений: 885
26.10.2017, 16:50
Для начала прочитайте Эрик Найман "Малая энциклопедия трейдера"
Поторгуйте на демо в MT4.
Изучите mql5 язык.
А потом поговорим про торговлю может быть.

Добавлено через 3 минуты
Да, минимальное депо для открытия счёта на ММВБ через брокера ~ 100000 руб.

Добавлено через 5 минут
Ваш день будет начинать с просмотра Трейдинг quotes

Добавлено через 40 секунд
про программирование тогда можете забыть.

Добавлено через 3 минуты
p.s полезнее будет вместо этого изучить ещё пару языков программирования.
Из своего опыта.
1
2 / 2 / 0
Регистрация: 13.11.2018
Сообщений: 2
25.11.2018, 12:07
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
n = 1
last_n = 0
last_n_bigger = False
last_n_less = False
buy = 0
sale = 0
c = 0
while n != 0:
    last_n = n
    n = int(input())
    c += 1
    if last_n < n and not last_n_bigger and c > 1 and not last_n_less:
        buy = n
        last_n_bigger = True
    elif last_n > n and last_n_bigger and not last_n_less:
        sale = n
        last_n_less = True
print(buy, sale, (sale - buy))
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.11.2018, 12:07
Помогаю со студенческими работами здесь

Написание своего робота для торговли на биржах криптовалют
Доброго времени суток уважаемые господа. Хочу написать своего робота для торговли на биржах криптовалют с помощью языка C++. У меня...

Ищу программиста для совместного создания робота для торговли на валютном рынке (на торговой платформе)
Интересует опытный специалист по программированию. С меня параметры настройки робота, который будет торговать на торговой платформе...

Напишите названия программ с автоматической генерацией расписания занятий для образовательного учреждения
Всем привет. Пожалуйста напишите пару-тройку самых популярных программ, где имеется возможность автоматически составить расписание занятий...

Функция для расчёта случайной стоимости акции на бирже
Хочу создать некое подобие биржи, где стоимость акций будет определяться случайным образом. Будет генерироваться случайное число в...

Примеры программ для торговли
Может кто-то поделится ссылками или примерами программ для торговли Заранее спасибо!


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru