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

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

25.10.2017, 18:49. Показов 60433. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Ниже машинный перевод статьи The Thinkpad X220 Tablet is the best budget school laptop period . Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы,. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru