Форум программистов, компьютерный форум, киберфорум
Наши страницы
Visual Basic
Войти
Регистрация
Восстановить пароль
 
sansay
5 / 5 / 3
Регистрация: 30.11.2011
Сообщений: 122
#1

Обнаружение трендов - VB

13.02.2014, 19:04. Просмотров 614. Ответов 11
Метки нет (Все метки)

Помогите реализовать следующие:
1)обнаружение трендов и выдачу рекомендаций последующему правилу: если курс акции растет 3 или более раз подряд и в следующий раз снижается, то это подходящий период для продажи акции. Аналогично, если курс акции снижается 3 или более раз подряд, а в следующий раз растет, то это подходящийпериод для покупки акции. Реализуйте в программе вывод периода времени, курса акции и рекомендации по покупке или продаже. Пример вывода:
Кликните здесь для просмотра всего текста
1 26.375
2 25.500
3 25.125
4 25.000
5 25.250 покупать
6 27.125
7 28.250
8 26.000 продавать
9 25.500
10 25.000
11 25.125 покупать
12 25.250
13 26.375
14 25.500 продавать
15 25.500


Реализуйте в программе расчет суммы, которую вы заработаете либо потратите, торгуя акциями с использованием правил и рекомендаций. Вы начинаете торговлю с суммой на руках 10000. Когда вам дается рекомендация «покупать», вы вкладываете все имеющиеся средства в покупку акций, а когда вам дается рекомендация «продавать», вы продаете все имеющиеся акции. Для каждого периода времени вы ведите цену акции, сумму денег на руках, количество приобретенных акций и сумму капитала. Сумма капитала рассчитывается как сумма денег на руках плюс количество приобретенных акций, умноженное на цену акции. Вы можете приобретать дробное количество акций. Для входных данных из файла st15.txt
пример вывода:
Кликните здесь для просмотра всего текста

период цена деньги акции капитал
-----------------------------------------------
1 26.375 10000.00 0.00 10000.00
2 25.500 10000.00 0.00 10000.00
3 25.125 10000.00 0.00 10000.00
4 25.000 10000.00 0.00 10000.00
5 25.250 0.00 396.04 10000.00
6 27.125 0.00 396.04 10742.57
7 28.250 0.00 396.04 11188.12
8 26.000 10297.03 0.00 10297.03
9 25.500 10297.03 0.00 10297.03
10 25.000 10297.03 0.00 10297.03
11 25.125 0.00 409.83 10297.03
12 25.250 0.00 409.83 10348.26
13 26.375 0.00 409.83 10809.32
14 25.500 10450.72 0.00 10450.72
15 25.500 10450.72 0.00 10450.72


P.s. остались вот эти два задания, не знаю как реализовать. При работе считываю содержимое файла в listbox.
Все файлы приложил.
http://www.cyberforum.ru/scada/thread1081486.html
0
Вложения
Тип файла: zip 1.zip (20.1 Кб, 8 просмотров)
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.02.2014, 19:04
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Обнаружение трендов (VB):

Обнаружение сервера
Здравствуйте! Возникла такая серьезная проблема: Имеется сеть на 2500...

Обнаружение библиотеки
Подскажите, как обнаружить библиотеку, которую прииньектили к программе, есть...

Обнаружение устройства
Здравствуйте! Подскажите, пожалуйста, как узнать, на каком порту находится...

Обнаружение города
собственно как узнать город в котором находится человек,зашедший на сайт...

ЧМ2. Обнаружение
grizlik78, Спасибо за ответ! Дальше у меня есть не сжатый wav-файл и чтобы мне...

11
sansay
5 / 5 / 3
Регистрация: 30.11.2011
Сообщений: 122
13.02.2014, 21:31  [ТС] #2
Подскажите в чём ошибка?

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
Dim mas(15) As String
i = 0
Open "C:\st15.txt" For Input As 1 ' ñ÷èòûâГ*ГҐГ¬ ГЁГ§ ГґГ*éëГ*
Do Until EOF(1) ' ïîêГ* Г*ГҐ ГЄГ®Г*ГҐГ¶
  Line Input #1, s ' ñ÷èòûâГ*ГҐГ¬ ñòðîêó
  s1 = Val(s)
  mas(i) = s1
  
  
 i = i + 1
Loop
Close 1
 
z = 0
For i = 0 To 14
 
If (z > mas(i)) Then
 
If zm >= 3 Then
List4.AddItem "ïîêóïГ*Гѕ"
End If
zb = zb + 1
zm = 0
 
Else
If zb >= 3 Then
List4.AddItem "ïðîäГ*Гѕ"
End If
zm = zm + 1
zb = 0
 
 
z = Val(mas(i))
 
End If
 
Next i
0
sansay
5 / 5 / 3
Регистрация: 30.11.2011
Сообщений: 122
16.02.2014, 20:52  [ТС] #3
Ошибку нашёл, сделал обнаружение трендов. Осталась последняя часть. Вот такой код получился:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
Private Sub Form_Load()
 
 Dim s1 As String ' ñòðîêГ* Г± öåëûìè Г·ГЁГ±Г«Г*ìè
 Dim s2 As String ' ñòðîêГ* ГЁГ§ çâ¸çäî÷åê
 Dim x As Single ' ÷èñëî äëÿ ïðîâåðêè ГЄГ*ëè÷åñòâГ* çâ¸çäî÷åê
 Dim z As Single 'ïðåäûäóùèå ÷èñëî
 Dim zm As Single ' ÷èñëî îòðèöГ*òåëüГ*îãî èçìåГ*ГҐГ*ГЁГї
 Dim zb As Single ' ÷èñëî ïîëîæèòåëüГ*îãî èçìåГ*ГҐГ*ГЁГї
 s = ""
 x = 0
Open "C:\st15.txt" For Input As 1 ' ñ÷èòûâГ*ГҐГ¬ ГЁГ§ ГґГ*éëГ*
Do Until EOF(1) ' ïîêГ* Г*ГҐ ГЄГ®Г*ГҐГ¶
  Line Input #1, s ' ñ÷èòûâГ*ГҐГ¬ ñòðîêó
   s1 = Val(s) ' ïðåîáðГ*çóåì ГЁГ§ ГІГЁГЇГ* ñòðîêè Гў ÷èñëîâîé
    
  s1 = Round(s1) ' îêðóãëÿåì
  s2 = "" 'îáГ*óëÿåì ñòðîêó s2
  For i = 1 To s1 'öèêë äëÿ Г§Г*ГЇГЁГ±ГЁ çâ¸çäî÷åê
  s2 = s2 + "*" 'ñîçäГ*ВёГ¬ ñòðîêó ГЁГ§ çâ¸çäî÷åê
  x = x + 1 'Г±Г·ГЁГІГ*ГҐГ¬ êîëè÷åñòâî çâ¸çäî÷åê
    Next i ' ñëåäóþùèé ГёГ*ГЈ öèêëГ*
    
    List3.AddItem x ' âûâîä Гў ëèñò 3, ÷èñëî çâ¸çäî÷åê
    x = 0 ' îáГ*óëåГ*ГЁГҐ
    List2.AddItem s2 ' âûâîä Гў ëèñò 2, öåëûõ Г·ГЁГ±ГҐГ«
 
  List1.AddItem s ' âûâîä Гў ëèñò ïåðâûõ Г·ГЁГ±ГҐГ« ГЁГ§ ГґГ*éëГ*
 Loop
Close 1
 
s = ""
s1 = ""
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Dim mas(15) As String
i = 0
Open "C:\st15.txt" For Input As 1 ' ñ÷èòûâГ*ГҐГ¬ ГЁГ§ ГґГ*éëГ*
Do Until EOF(1) ' ïîêГ* Г*ГҐ ГЄГ®Г*ГҐГ¶
  Line Input #1, s ' ñ÷èòûâГ*ГҐГ¬ ñòðîêó
  s1 = Val(s)
  mas(i) = s1
   i = i + 1
Loop
Close 1
 
 
 
For i = 1 To 14
 
If (mas(i - 1) < mas(i)) Then
 
If zm >= 3 Then 
List4.AddItem "ÏîêóïГ*ГІГј"
Else
List4.AddItem "-----"
End If
 
zb = zb + 1
zm = 0
 
Else
If zb >= 3 Then 
 
List4.AddItem "ÏðîäГ*ГўГ*ГІГј"
Else
List4.AddItem "-----"
End If
 
zm = zm + 1
zb = 0
 
End If
 
 
Next i
End Sub
Буду признателен если поможете с этим:
Реализуйте в программе расчет суммы, которую вы заработаете либо потратите, торгуя акциями с использованием правил и рекомендаций. Вы начинаете торговлю с суммой на руках 10000. Когда вам дается рекомендация «покупать», вы вкладываете все имеющиеся средства в покупку акций, а когда вам дается рекомендация «продавать», вы продаете все имеющиеся акции. Для каждого периода времени вы ведите цену акции, сумму денег на руках, количество приобретенных акций и сумму капитала. Сумма капитала рассчитывается как сумма денег на руках плюс количество приобретенных акций, умноженное на цену акции. Вы можете приобретать дробное количество акций. Для входных данных из файла st15.txt
пример вывода:
0
sansay
5 / 5 / 3
Регистрация: 30.11.2011
Сообщений: 122
22.02.2014, 15:07  [ТС] #4
Алгоритм реализовал. Но при проверке уже большим файлом происходит обнуление некоторых значений.
Пример файла приложил. Помогите исправить недочёт
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
Private Sub Form_Load()
 
 Dim s1 As String ' строка с целыми числами
 Dim s2 As String ' строка из звёздочек
 Dim x As Single ' число для проверки количества звёздочек
 Dim z As Single 'предыдущие число
 Dim zm As Single ' число отрицательного изменения
 Dim zb As Single ' число положительного изменения
 s = ""
 x = 0
Open "C:\st1000.txt" For Input As 1 ' считываем из файла
Do Until EOF(1) ' пока не конец
  Line Input #1, s ' считываем строку
   s1 = Val(s) ' преобразуем из типа строки в числовой
    
  s1 = Round(s1) ' округляем
  s2 = "" 'обнуляем строку s2
  For i = 1 To s1 'цикл для записи звёздочек
  s2 = s2 + "*" 'создаём строку из звёздочек
  x = x + 1 'считаем количество звёздочек
    Next i ' следующий шаг цикла
    
    List3.AddItem x ' вывод в лист 3, число звёздочек
    x = 0 ' обнуление
    List2.AddItem s2 ' вывод в лист 2, целых чисел
 
  List1.AddItem s ' вывод в лист первых чисел из файла
 Loop
Close 1
 
s = ""
s1 = ""
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Dim mas(1000) As String
i = 0
Open "C:\st1000.txt" For Input As 1 ' считываем из файла
Do Until EOF(1) ' пока не конец
  Line Input #1, s ' считываем строку
  s1 = Val(s)
  mas(i) = s1
   i = i + 1
Loop
Close 1
 
 
den = 10000
akc = 0
sost = 0
For i = 1 To 999
 
If (mas(i - 1) < mas(i)) Then
 
If zm = 3 Then 'проверка на продаваемость
List4.AddItem "Покупать"
akc = den / mas(i)
den = 0
sost = den + akc * mas(i)
List7.AddItem sost
 
 
 
List5.AddItem den
List6.AddItem akc
 
Else
List4.AddItem "-----"
List5.AddItem den
List6.AddItem akc
sost = den + akc * mas(i)
List7.AddItem sost
 
End If
 
zb = zb + 1
zm = 0
 
Else
If zb = 3 Then ' проверка на закуп
 
List4.AddItem "Продавать"
den = akc * mas(i)
sost = den + akc * mas(i)
List7.AddItem sost
akc = 0
 
Else
sost = den + akc * mas(i)
List7.AddItem sost
List4.AddItem "-----"
List5.AddItem den
List6.AddItem akc
End If
 
zm = zm + 1
zb = 0
 
End If
 
 
Next i
End Sub
0
Вложения
Тип файла: txt st1000.txt (7.8 Кб, 4 просмотров)
sansay
5 / 5 / 3
Регистрация: 30.11.2011
Сообщений: 122
22.02.2014, 17:24  [ТС] #5
Укажите хотя бы где не правильно
0
SoftIce
comment ca va
10413 / 3915 / 999
Регистрация: 27.07.2011
Сообщений: 9,475
Завершенные тесты: 1
22.02.2014, 18:37 #6
Лучший ответ Сообщение было отмечено sansay как решение

Решение

Данные разбросаны по 7 листбоксам. СтОит один скролл сдвинуть и уже не разберёшься что к чему.
Попробуй сделать все в одном.
1
Вложения
Тип файла: rar 1 лаба.rar (2.3 Кб, 5 просмотров)
sansay
5 / 5 / 3
Регистрация: 30.11.2011
Сообщений: 122
22.02.2014, 18:45  [ТС] #7
Благодарю за помощь. Не сделал в одном, потому что плохо понимаю работу(запись в несколько столбцов, про мультилайн знаю, не знаю как записать правильно). Очень Помогли!! Большое спасибо! Можно поинтересоваться, не нашли мою ошибку? интересно просто, где не верно.
0
SoftIce
comment ca va
10413 / 3915 / 999
Регистрация: 27.07.2011
Сообщений: 9,475
Завершенные тесты: 1
22.02.2014, 18:46 #8
Цитата Сообщение от sansay Посмотреть сообщение
не нашли мою ошибку?
Нет, не искал, все заново легче написать. чем найти.
0
SoftIce
comment ca va
10413 / 3915 / 999
Регистрация: 27.07.2011
Сообщений: 9,475
Завершенные тесты: 1
22.02.2014, 19:08 #9
Кое-что подправил, добавил Капитал.
1
Вложения
Тип файла: rar 1 лаба.rar (2.3 Кб, 9 просмотров)
sansay
5 / 5 / 3
Регистрация: 30.11.2011
Сообщений: 122
22.02.2014, 19:12  [ТС] #10
Спасибо большое за помощь, очень помогли. Буду сидеть разбираться
0
SoftIce
comment ca va
10413 / 3915 / 999
Регистрация: 27.07.2011
Сообщений: 9,475
Завершенные тесты: 1
22.02.2014, 19:17 #11
Обнаружил ошибку - если кнопку Start нажать второй раз, то данные в листбоксе будут неверные, скорее всего это происходит из-за статических переменных (начальный капитал не сбрасывается).
0
sansay
5 / 5 / 3
Регистрация: 30.11.2011
Сообщений: 122
22.02.2014, 19:32  [ТС] #12
Да я тоже заметил, это ерунда=)
0
22.02.2014, 19:32
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.02.2014, 19:32
Привет! Вот еще темы с решениями:

Обнаружение вторжений. !
Помогите найти книгу Snort 2.1. Обнаружение вторжений, Джей Бил Перерыл...

Сетевое обнаружение
Включаю сетевоее обнаружение в настройках сети. Сохраняю. Закрываю окно , потом...

сетевое обнаружение
Доброго времени cуток. После генеральной уборки в серврной криворукой уборщицей...

Обнаружение сетей
Помогите, пожалуйста, включить на ноутбуке сетевое обнаружение. ОС - WVHP...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru