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

Узнай цену своей работы

Формулировка задачи:

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

Решение задачи: «Обнаружение трендов»

textual
Листинг программы
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

Оцени полезность:

10   голосов , оценка 4 из 5