Обнаружение трендов - 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