Описание программы "Headge"
3. Описание программы
«Headge» совершает математические операции с уже известными длинами волнам, опираясь на эти данные, прогнозирует длины будущих волн.
Как пользоваться программой?
- Выбрать акции для анализа.
- Посчитать количество волн и их длины(подробнее об этом в главе I и в книге «Волновой принцип Эллиотта ключ к пониманию рынка») для выбранных акций.
- В «Headge» ввести количество волн (не меньше 1 и не больше 4х).
- Ввести длины этих волн.
- На основе полученных данных принимать решение
Опираясь на введенное количество волн, программа совершает разные действия.
1. Если волна 1 самая большая, тогда волна 2 = волна 1*0.382, волна 3 = волна 1* 0.618, волна 4 = волна 3*0.618, волна 5 = волна 1*0.382. (Если волна 2 будет = волна 1* 0.618, тогда волна 4 окажется на территории волны 1, что невозможно, поэтому мы убираем этот вариант)
2. Если волна 3 самая большая, тогда волна 2 = волна 1*0.618, волна 3 = волна 1 *2.618, волна 4 = волна 3*0.382, волна 5 = волне 1*1.618. Или волна 2 = волна 1*0.618, волна 3 = волна 1 *1.618, волна 4 = волна 3*0.382, волна 5 = волне 1.
3. Если волна 5-ая самая большая, тогда волна 2 = волна 1*0.618, волна 3 = волна 1 *1.618, волна 4 = волна 3*0.382, волна 5 = волне 1*2.618. Или волна 2 = волна 1*0.382, волна 3 = волна 1 *1.618, волна 4 = волна 3*0.382, волна 5 = волне 1*2.618.
Если даны волна 1 и волна 2, тогда программа проверяет является ли вторая волна резкой коррекцией. Если 0.48<=волна 2/ волну 1<= 0.90. Тогда рассчитывает варианты:
Если волна 3 самая большая:
1. Волна 3 = волна 1* 2.618, волна 4 = волна 3* 0.382, волна 5 = волне 1.
2. Волна 3 = волна 1* 1.618, волна 4 = волна 3* 0.382, волна 5 = волне 1.
3. Волна 3 = волна 1* 2.618, волна 4 = волна 3* 0.382, волна 5 = волне 1*0.618.
4. Волна 3 = волна 1* 1.618, волна 4 = волна 3* 0.382, волна 5 = волне 1*0.618.
5. Волна 3 = волна 1* 2.618, волна 4 = волна 3* 0.382, волна 5 = волне 1*1.618.
Если волна 5 самая большая:
1. Волна 3 = волне 1, волна 4 = волна 3*0.382, волна 5 = (волна 3+ волна 1- волна 2)*1.618.
2. Волна 3 = волне 1 *1.618, волна 4 = волна 3*0.382, волна 5 = (волна 3+ волна 1- волна 2)*1.618.
3. Волна 3 = волне 1, волна 4 = волна 3*0.382, волна 5 = волна 1*1.618
4. Волна 3 = волне 1*1.618, волна 4 = волна 3*0.382, волна 5 = волна 1*2.618.
Но если волна 2/ волну 1< 0.48, тогда :
Если волна 3 самая большая:
1. Волна 3 = волна 1 * 2.618, волна 4 = волна 3 * 0.618, волна 5 = волне1.
2. Волна 3 = волна 1 * 1.618, волна 4 = волна 3 * 0.618, волна 5 = волне1.
3. Волна 3 = волна 1 * 2.618, волна 4 = волна 3 * 0.618, волна 5 = волна1*0.618.
4. Волна 3 = волна 1 * 1.618, волна 4 = волна 3 * 0.618, волна 5 = волне1 * 0.618.
Если волна 5 самая большая:
1. Волна 3 = волне 1, волна 4 = волна 3*0.618, волна 5 = (волна 3+ волна 1- волна 2)*1.618.
2. Волна 3 = волне 1 *1.618, волна 4 = волна 3*0. 618, волна 5 = (волна 3+ волна 1- волна 2)*1.618.
3. Волна 3 = волне 1, волна 4 = волна 3*0. 618, волна 5 = волна 1*1.618.
4. Волна 3 = волне 1*1.618, волна 4 = волна 3*0. 618, волна 5 = волна 1*2.618.
Если даны волна 1, волна 2, волна 3: тогда программа проверяет является ли вторая волна резкой коррекцией. Если 0.48<=волна 2/ волну 1<= 0.90. Потом программа проверяет во сколько волна 3 больше волны 1, если волна 3 / волну 1 => 1.3, тогда:
1. Волна 4 = волна 3 *0.382, волна 5 = волне 1.
2. Волна 4 = волна 3 *0.382, волна 5 = волне 1*0.618.
Если 1<=волна 3/ волну 1 <1.3, тогда:
1. Волна 4 = волна 3 *0.382, волна 5 = волне 1*1.618.
2. Волна 4 = волна 3 *0.382, волна 5 = волне 1*2.618.
Если волна 2 – вертикальная коррекция (волна 2/ волну 1< 0.48), тогда программа проверяет во сколько волна 3 больше волны 1, если волна 3 / волну 1 => 1.3, тогда:
1. Волна 4 = волна 3 *0.618, волна 5 = волне 1.
2. Волна 4 = волна 3 *0.618, волна 5 = волне 1*0.618.
Если 1<=волна 3/ волну 1 <1.3, тогда:
1. Волна 4 = волна 3 *0.618, волна 5 = волне 1*1.618.
2. Волна 4 = волна 3 *0.618, волна 5 = волне 1*2.618.
Если даны волна 1, волна 2, волна 3, волна 4, программа проверяет во сколько волна 3 больше волны 1, если волна 3 / волну 1 => 1.3, тогда:
1. Волна 5 = волне 1.
2. Волна 5 = волне 1*0.618.
Иначе:
1. Волна 5 = волне 1*1.618.
2. Волна 5 = волне 1*2.618.
Скачать программу
Для Windows7 и выше https://drive.google.com/open?id=1uYdn2iNIRZIofQ-CPLDdMvO6iIR9x5PN
Код программы
Программа написана мной на Visual Studio 2017 на языке программирования C++.
#include "pch.h"
#include <iostream>
using namespace std;
void main()
{
setlocale(0, "");
double v1, v2, v3, v4;
int n;
for (; ;)
{
cout << "Введите кол-во волн: ";
cin >> n;
switch (n)
{
case 1: cout << "Введите длину волны 1: ";
cin >> v1;
cout << "Если 1-ая волна самая большая: " << endl;
cout << "1)волна 2= " << v1 * 0.382 << " (v1*0.382) " << " волна 3= " << v1 * 0.618 << " (v1*0.618) " << "(общий прирост " << v1 * 0.618 - v1 * 0.382 << ")" << "волна 4= " << v1 * 0.618*0.618 << " (v3*0.618) " << "волна 5= " << v1 * 0.382 << " (v1*0.382) " << "(общий прирост " << (v1 + v1 * 0.618 + v1 * 0.382) - (v1 *0.618* 0.618 + v1 * 0.382) << ")" << endl;
cout << "Если 3-ая волна самая большая: " << endl;
cout << "1)волна 2= " << v1 * 0.618 << " (v1*0.618) " << " волна 3= " << v1 * 2.618 << " (v1*2.618) " << "(общий прирост " << v1 * 2.618 - v1 * 0.618 << ")" << "волна 4= " << v1 * 2.618*0.382 << " (v3*0.382) " << "волна 5= " << v1*1.618 << " (v1*1.618) " << "(общий прирост " << (v1 + v1 * 1.618 + v1 * 2.618) - (v1 * 2.618*0.382 + v1 * 0.618) << ")" << endl;
cout << "2)волна 2= " << v1 * 0.618 << " (v1*0.618) " << " волна 3= " << v1 * 1.618 << " (v1*1.618) " << "(общий прирост " << v1 * 1.618 - v1 * 0.618 << ")" << "волна 4= " << v1 * 1.618*0.382 << " (v3*0.382) " << "волна 5= " << v1 << " (v1) " << "(общий прирост " << (v1 + v1 + v1 * 1.618) - (v1 * 1.618*0.382 + v1 * 0.618) << ")" << endl;
cout << "Если 5-ая волна самая большая: " << endl;
cout << "1)волна 2= " << v1 * 0.618 << " (v1*0.618) " << " волна 3= " << v1 * 1.618 << " (v1*1.618) " << "(общий прирост " << v1 * 1.618 - v1 * 0.618 << ")" << "волна 4= " << v1 * 1.618*0.382 << " (v3*0.382) " << "волна 5= " << v1*2.618 << " (v1) " << "(общий прирост " << (v1 + v1 * 1.618 + v1 * 2.618) - (v1 * 1.618*0.382 + v1 * 0,681) << ")" << endl;
cout << "2)волна 2= " << v1 * 0.382 << " (v1*0.382) " << " волна 3= " << v1 * 1.618 << " (v1*1.618) " << "(общий прирост " << v1 * 1.618 - v1 * 0.382 << ")" << "волна 4= " << v1 * 1.618*0.681 << " (v3*0.382) " << "волна 5= " << v1 * 2.618 << " (v1) " << "(общий прирост " << (v1 + v1 * 1.618 + v1 * 2.618) - (v1 * 1.618*0.618 + v1 * 0.382) << ")" << endl;
break;
case 2: cout << "Введите длину волны 1: ";
cin >> v1;
cout << "Введите длину волны 2: "; cin >> v2;
if ((v2 / v1) <= 0.90 && (v2 / v1) >= 0.48)
{
cout << " Если 3-ая волна самая большая: " << endl;
cout << "1)Волна 3= " << v1 * 2.618 << " (v1*2.618) " << "(общий прирост " << v1 * 2.618 - v2 << ")" << " волна 4= " << v1 * 2.618*0.382 << " (v3*0.382) " << " волна 5= " << v1 << " (v1) " << "(общий прирост " << (v1 + v1 + v1 * 2.618) - (v2 + v1 * 0.382) << ")" << endl;
cout << "2)Волна 3= " << v1 * 1.618 << " (v1*1.618) " << "(общий прирост " << v1 * 1.618 - v2 << ")" << " волна 4= " << v1 * 1.618*0.382 << " (v3*0.382) " << " волна 5= " << v1 << " (v1) " << "(общий прирост " << (v1 + v1 + v1 * 1.618) - (v2 + v1 * 0.382) << ")" << endl;
cout << "3)Волна 3= " << v1 * 2.618 << " (v1*2.618) " << "(общий прирост " << v1 * 2.618 - v2 << ")" << " волна 4= " << v1 * 2.618*0.382 << " (v3*0.382) " << " волна 5= " << v1 *0.618 << " (v*0.618) " << "(общий прирост " << (v1 + v1 * 0.618 + v1 * 2.618) - (v2 + v1 * 0.382) << ")" << endl;
cout << "4)Волна 3= " << v1 * 1.618 << " (v1*1.618) " << "(общий прирост " << v1 * 1.618 - v2 << ")" << " волна 4= " << v1 * 1.618*0.382 << " (v3*0.382) " << " волна 5= " << v1 *0.618 << " (v1*0.618) " << "(общий прирост " << (v1 + v1 * 1.618 + v1 * 0.618) - (v2 + v1 * 0.382) << ")" << endl;
cout << "5)Волна 3= " << v1 * 2.618 << " (v1*2.618) " << "(общий прирост " << v1 * 2.618 - v2 << ")" << " волна 4= " << v1 * 2.618*0.382 << " (v3*0.382) " << " волна 5= " << v1 * 1.618 << " (v1*1.618) " << "(общий прирост " << (v1 + v1 * 1.618 + v1 * 2.618) - (v2 + v1 * 0.382) << ")" << endl;
cout << endl<< " Если 5-ая волна самая большая: " << endl ;
cout << "1)Волна 3= " << v1 << " (v1) " << "(общий прирост " << v1 - v2 << ")" << " волна 4= " << v1 * 0.382 << " (v3*0.382) " << " волна 5= " << ((v1*2)-v2)*1.68 << " ((v1+v3-v2)*1.618) " << "(общий прирост " << (v1 + v1 + ((v1 * 2) - v2)*1.68) - (v2 + v1 * 0.382) << ")" << endl;
cout << "2)Волна 3= " << v1 * 1.618 << " (v1*1.618) " << "(общий прирост " << v1 * 1.618 - v2 << ")" << " волна 4= " << v1 * 1.618*0.382 << " (v3*0.382) " << " волна 5= " << (v1+v1*1.618-(v1 * 1.618*0.382))*1.68 << " ((v1+v3-v2)*1.68) " << "(общий прирост " << (v1 + (v1 + v1 - (v1 * 1.618*0.382))*1.68 + v1 * 1.618) - (v2 + v1 * 0.382) << ")" << endl;
cout << "3)Волна 3= " << v1 << " (v1) " << "(общий прирост " << v1 - v2 << ")" << " волна 4= " << v1 *0.382 << " (v3*0.382) " << " волна 5= " << v1*2.618 << " (v1*1.618) " << "(общий прирост " << (v1 + v1 + v1 * 1.618) - (v2 + v1 * 0.382) << ")" << endl;
cout << "4)Волна 3= " << v1 * 1.618 << " (v1*1.618) " << "(общий прирост " << v1 * 1.618 - v2 << ")" << " волна 4= " << v1 * 1.618*0.382 << " (v3*0.382) " << " волна 5= " << v1 *2.618 << " (v1*1.618) " << "(общий прирост " << (v1 + v1 * 1.618 + v1 * 1.618) - (v2 + v1 * 0.382) << ")" << endl;
break;
}
else
{
cout << "Если 3-ая волна самая большая: " << endl;
cout << "1)Волна 3= " << v1 * 2.618 << " (v1*2.618) " << "(общий прирост " << v1 * 2.618 - v2 << ")" << " волна 4= " << v1 * 2.618*0.618 << " (v3*0.618) " << " волна 5= " << v1 << " (v1) " << "(общий прирост " << (v1 + v1 + v1 * 2.618) - (v2 + v1 * 0.618) << ")" << endl;
cout << "2)Волна 3= " << v1 * 1.618 << " (v1*1.618) " << "(общий прирост " << v1 * 1.618 - v2 << ")" << " волна 4= " << v1 * 1.618*0.618 << " (v3*0.618) " << " волна 5= " << v1 << " (v1) " << "(общий прирост " << (v1 + v1 + v1 * 1.618) - (v2 + v1 * 0.618) << ")" << endl;
cout << "3)Волна 3= " << v1 * 2.618 << " (v1*2.618) " << "(общий прирост " << v1 * 2.618 - v2 << ")" << " волна 4= " << v1 * 2.618*0.618 << " (v3*0.618) " << " волна 5= " << v1 * 0.618 << " (v1*0.618) " << "(общий прирост " << (v1 + v1 * 0.618 + v1 * 2.618) - (v2 + v1 * 0.618) << ")" << endl;
cout << "4)Волна 3= " << v1 * 1.618 << " (v1*1.618) " << "(общий прирост " << v1 * 1.618 - v2 << ")" << " волна 4= " << v1 * 1.618*0.618 << " (v3*0.618) " << " волна 5= " << v1 * 0.618 << " (v1*0.618) " << "(общий прирост " << (v1 + v1 * 1.618 + v1 * 0.618) - (v2 + v1 * 0.618) << ")" << endl;
cout << "Если 5-ая волна самая большая: " << endl;
cout << "1)Волна 3= " << v1<< " (v1) " << "(общий прирост " << v1 - v2 << ")" << " волна 4= " << v1 *0.618 << " (v3*0.618) " << " волна 5= " << (v1 + v1 - (v1*0.382))*1.68 << " ((v1+v3-v2)*1.68) " << "(общий прирост " << (v1 + v1 + (v1 + v1 - (v1*0.382))*1.68) - (v2 + v1 * 0.618) << ")" << endl;
cout << "2)Волна 3= " << v1 * 1.618 << " (v1*1.618) " << "(общий прирост " << v1 * 1.618 - v2 << ")" << " волна 4= " << v1 * 1.618*0.618 << " (v3*0.618) " << " волна 5= " << (v1 + v1 * 1.618 - (v1 * 1.618*0.382))*1.68 << " ((v1+v3-v2)*1.68) " << "(общий прирост " << (v1 + (v1 + v1 - (v1 * 1.618*0.382))*1.68 + v1 * 1.618) - (v2 + v1 * 0.382) << ")" << endl;
cout << "3)Волна 3= " << v1 << " (v1) " << "(общий прирост " << v1 - v2 << ")" << " волна 4= " << v1 * 0.618 << " (v3*0.382) " << " волна 5= " << v1 * 2.618 << " (v1*1.618) " << "(общий прирост " << (v1 + v1 + v1 * 1.618) - (v2 + v1 * 0.382) << ")" << endl;
cout << "4)Волна 3= " << v1 * 1.618 << " (v1*1.618) " << "(общий прирост " << v1 * 1.618 - v2 << ")" << " волна 4= " << v1 * 1.618*0.618 << " (v3*0.618) " << " волна 5= " << v1 * 2.618 << " (v1*1.618) " << "(общий прирост " << (v1 + v1 * 1.618 + v1 * 1.618) - (v2 + v1 * 0.382) << ")" << endl;
break;
}case 3: cout << "Введите длину волны 1: ";
cin >> v1;
cout << "Введите длину волны 2: ";
cin >> v2;
cout << "Введите длину волны 3: ";
cin >> v3;
if ((v2 / v1) <= 0.99 && (v2 / v1) >= 0.48)
{
if (v3 / v1 >= 1.3 && v3 / v1 <= 3.0)
{
cout << "Вариынты : " << endl;
cout << "1)Волна 4= " << v3 * 0.382 << " (v3*0.382) " << " волна 5= " << v1 << " (v1) " << "(общий прирост " << (v1 + v1 + v3) - (v2 + v1 * 0.382) << ")" << endl;
cout << "2)олна 4= " << v3 * 0.382 << " волна 5= " << v1 * 0.618 << " (v1*0.618) " << "(общий прирост " << (v1 + v1 * 0.618 + v3) - (v2 + v1 * 0.382) << ")" << endl;
break;
}
else
{
cout << "Вариынты : " << endl;
cout << "1)Волна 4= " << v3 * 0.382 << " (v3*0.382) " << " волна 5= " << v1 * 1.618 << " (v1*1.618) " << "(общий прирост " << (v1 + v1 * 1.618 + v3) - (v2 + v1 * 0.382) << ")" << endl;
cout << "2)Волна 4= " << v3 * 0.382 << " (v3*0.382) " << " волна 5= " << v1 * 2.618 << " (v1*2.618) " << "(общий прирост " << (v1 + v1 * 1.618 + v3) - (v2 + v1 * 0.382) << ")" << endl;
break;
}
}
else
if (v3 / v1 >= 1.3 && v3 / v1 <= 3.0)
{
cout << "Вариынты : " << endl;
cout << "1)Волна 4= " << v3 * 0.618 << " (v3*0.618) " << " волна 5= " << v1 << " (v1) " << "(общий прирост " << (v1 + v1 + v3) - (v2 + v1 * 0.618) << ")" << endl;
cout << "2)олна 4= " << v3 * 0.618 << " (v3*0.618) " << " волна 5= " << v1 * 0.618 << " (v1*0.618) " << "(общий прирост " << (v1 + v1 * 0.618 + v3) - (v2 + v1 * 0.618) << ")" << endl;
break;
}
else
{
cout << "Вариынты : " << endl;
cout << "1)Волна 4= " << v3 * 0.618 << " (v3*0.618) " << " волна 5= " << v1 * 1.618 << " (v1*1.618) " << "(общий прирост " << (v1 + v1 * 1.618 + v3) - (v2 + v3 * 0.618) << ")" << endl;
cout << "2)Волна 4= " << v3 * 0.618 << " (v3*0.618) " << " волна 5= " << v1 * 2.618 << " (v1*2.618) " << "(общий прирост " << (v1 + v1 * 2.618 + v3) - (v2 + v3 * 0.618) << ")" << endl;
break;
}
break;
case 4: cout << "Введите длину волны 1: ";
cin >> v1;
cout << "Введите длину волны 2: ";
cin >> v2;
cout << "Введите длину волны 3: ";
cin >> v3;
cout << "Введите длину волны 4: ";
cin >> v4;
if (v1 / v2 >= 1.3 && v3 / v1 <= 3.0)
{
cout << "Вариынты : " << endl;
cout << "1)Волна 5= " << v1 << " (v1) " << "(общий прирост " << (v1 + v1 + v3) - (v2 + v4) << ")" << endl;
cout << "1)Волна 5= " << v1*0.618 << " (v1*0.618) " << "(общий прирост " << (v1 + v1*0.618 + v3) - (v2 + v4) << ")" << endl;
break;
}
else
{
cout << "Вариынты : " << endl;
cout << "1)Волна 5= " << v1 * 1.618 << " (v1*1.618) " << "(общий прирост " << (v1 + v1 * 1.618 + v3) - (v2 + v4) << ")" << endl;
cout << "2)Волна 5= " << v1 * 2.618 << " (v1*2.618) " << "(общий прирост " << (v1 + v1 * 2.618 + v3) - (v2 + v4) << ")" << endl;
break;
}
break;
}
}
system("pause>>int");
}
Апробация
Самый наглядный пример отношения Фибоначчи - акции компании
Alphabet(google) с мая по август 2018 года(рис 2-1).
Это уже проанализированные котировки. На графике выделены все волны и их длины.
Волна2 /Волну 1 = 0.4(близко к 0.382) или 40% от волны 1-горизонтальная коррекция.
Волна 4/Волну 3 = 0.62(близко к 0.618) или 62% от волны 3-резкая коррекция.
Волна 3/Волну 5 = 0.65 (близко к 0.618).
В программу (рис 2-2) вводим кол-во волн длины, которых мы знаем(для примера ввели 3). Вводим длины первой, второй, третей волн, которые равны 93,37,116.
И программа выдает первым наиболее вероятный вариант развития событий. Т.е по прогнозу волна 4=71.68, волна 5=187.68. Это означает то, что точность прогноза больше 95%(чем больше волн известно, тем больше точность).
Вывод
Когда я начал пользоваться программой(осень 2018), на моем брокерском счету было 500$. За 2.5 месяца торгов с помощью «Headge» я заработал 96$ (прибыль 23%). Точность прогноза «Headge» больше 90%.
Один пример из моих сделок – акции Apple.
На тот момент мне была только известна 1-ая и 2-ая волна.
На основе этих данных я принял решение(т.к акции будут падать как минимум на 19 долларов) шортить акции “Apple”, на этом я заработал 45 долларов.
Глоссарий
Акция – ценная бумага, подтверждающая вашу долю в компании. Покупая акцию, вы фактически становитесь совладельцем предприятия, то есть обладателем определенной его доли. Заработать на акции можно, продав её в тот момент, когда она ценится значительно дороже, чем на момент покупки.
Фондовая биржа – это организованный и регулярно функционирующий рынок по купле-продаже ценных бумаг: акций, облигаций и т.п. На фондовых биржах формируется курс ценных бумаг.
Брокер – лицензированный участник рынка ценных бумаг, совершает сделки от имени и за счет инвестора.
Шортить — это игра на понижение. Суть механизма выглядит следующим образом: трейдер, понимая, что стоимость актива в скором времени упадет, берет в долг определенное количество ценных бумаг у брокера. Затем он продает их на бирже, ожидая, когда цена снизиться до конкретной отметки. Как только она достигает необходимого минимума, трейдер выкупает актив и возвращает его брокеру. Заработок получается из разницы между первоначальной ценой и конечной.
Литература
- Книга Роберта Пректера, Альфреда Фроста. Волновой принцип Эллиотта ключ к пониманию рынка.
- Интернет
Перейти к содержанию
проекта "Создание программы «Headge» для прогнозирования рынков акций"