ZUP
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «zup_v63.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
ZUP — это пользовательский индикатор для MetaTrader 5, предназначенный для нанесения на график аналитических построений на основе выбранного варианта ZigZag. Индикатор рассчитывает и отображает линии и объекты, связанные с уровнями Фибоначчи, веерами, расширениями, дугами, каналами, а также паттернами Pesavento и Gartley. Работает в окне графика и не предназначен для автоматической торговли.
В настройках можно выбрать тип ZigZag, задать параметры его расчёта, включить или отключить отдельные группы построений, настроить цвета, стили и количество отображаемых элементов. Индикатор поддерживает динамические и статические построения, а также дополнительные элементы, такие как Pivot Zone, линии UTL/LTL/UWL/LWL, ISL, RLine и Fibo Time.
Индикатор может выводить информационную строку с данными по таймфреймам и уровням, а также отправлять уведомления по электронной почте при появлении паттерна. Все построения выполняются на основе данных графика и выбранных параметров; индикатор не даёт торговых рекомендаций и не гарантирует прибыль.
Настройки программы
| Настройка | Описание |
|---|---|
| Var0___________________________ | Заголовок группы параметров для ZigZag. |
| ExtIndicator | Выбор типа ZigZag для расчёта (0–12). |
| minBars | Минимальное количество баров для расчёта ZigZag. |
| minSize | Минимальный размер в пунктах для расчёта ZigZag. |
| ExtDeviation | Параметр Deviation для расчёта ZigZag. |
| ExtBackstep | Параметр Backstep для расчёта ZigZag. |
| GrossPeriod | Старший таймфрейм для расчёта ZigZag и DT-ZigZag. |
| minPercent | Минимальный процент для расчёта ZigZag при minSize=0. |
| ?????????? ????? ??????? ??? ??????? Talex (ExtPoint) | Параметр для расчёта ZigZag Talex. |
| ExtStyleZZ | Стиль отображения ZigZag: true — линии, false — стрелки. |
| Var1___________________________ | Заголовок группы параметров для уровней Фибоначчи. |
| ExtFiboDinamic | Включение отображения динамических уровней Фибоначчи. |
| ExtFiboStatic | Включение отображения статических уровней Фибоначчи. |
| ExtFiboStaticNum | Количество баров ZigZag для построения статических уровней Фибоначчи. |
| ExtFiboD | Цвет линий динамических уровней Фибоначчи. |
| ExtFiboS | Цвет линий статических уровней Фибоначчи. |
| ExtFiboCorrectionExpansion | Переключение между режимами коррекции и расширения для уровней Фибоначчи. |
| Var2___________________________ | Заголовок группы параметров для паттернов Pesavento. |
| ExtPPWithBars | Режим отображения количества баров в паттернах Pesavento (0–7). |
| ExtHidden | Режим отображения паттернов Pesavento (0–5). |
| ExtFractal | Количество фракталов для поиска паттернов Pesavento. |
| ExtFractalEnd | Количество фракталов от конца графика для поиска паттернов Pesavento. |
| ExtFiboChoice | Выбор набора уровней для поиска паттернов Pesavento (0–11). |
| ExtFiboZigZag | Включение режима ZigZag Fibonacci. |
| ExtDelta | Допустимое отклонение при поиске уровней Фибоначчи. |
| ExtDeltaType | Способ расчёта отклонения при поиске уровней Фибоначчи (0–3). |
| ExtSizeTxt | Размер шрифта для текстовых подписей. |
| ExtLine | Цвет линий для отображения паттернов Pesavento. |
| ExtLine886 | Цвет линий для уровней .886 в паттернах Pesavento. |
| ExtNotFibo | Цвет линий для уровней, не относящихся к Фибоначчи. |
| ExtPesavento | Цвет линий для уровней Pesavento. |
| ExtGartley886 | Цвет линий для уровней .886 в паттернах Gartley. |
| Var3___________________________ | Заголовок группы параметров для паттернов Gartley. |
| maxDepth | Максимальная глубина поиска для паттернов Gartley. |
| minDepth | Минимальная глубина поиска для паттернов Gartley. |
| DirectionOfSearchMaxMin | Определяет направление перебора значений глубины поиска: от минимального к максимальному или наоборот. |
| ExtGartleyOnOff | Включение поиска и отображения паттернов Gartley. |
| maxBarToD | Максимальное количество баров от начала поиска до точки D паттерна Gartley. |
| RangeForPointD | Включение отображения области возможного расположения точки D паттерна Gartley. |
| ExtColorRangeForPointD | Цвет области возможного расположения точки D паттерна Gartley. |
| ExtDeltaGartley | Допустимое отклонение при поиске паттернов Gartley. |
| ExtColorPatterns | Цвет линий для отображения паттернов Gartley. |
| ExtCD | Пороговое значение для проверки соотношения отрезков CD и BC при поиске паттернов Gartley. |
| Var4___________________________ | Заголовок группы параметров для вилки Эндрюса. |
| ExtPitchforkDinamic | Вариант построения динамической вилки Эндрюса (0–4). |
| ExtPitchforkStatic | Вариант построения статической вилки Эндрюса (0–4). |
| ExtPitchforkStaticNum | Количество баров ZigZag для построения статической вилки Эндрюса. |
| ExtLinePitchforkD | Цвет линий динамической вилки Эндрюса. |
| ExtLinePitchforkS | Цвет линий статической вилки Эндрюса. |
| ExtPitchforkStaticColor | Цвет линий канала статической вилки Эндрюса. |
| ExtPitchforkStyle | Стиль линий вилки Эндрюса (0–10). |
| ????? ?????????? ?????????????? (ExtFiboFanDinamic) | Включение отображения динамического веера Фибоначчи. |
| ????????? ?????? ????????? ?? ???????????? ?????? (ExtFiboFanStatic) | Включение отображения статического веера Фибоначчи. |
| ExtFiboFanExp | Выбор набора уровней для веера Фибоначчи: true — 6 уровней, false — 4 уровня. |
| ExtFiboFanHidden | Управление отображением подписей уровней веера Фибоначчи. |
| ExtFiboFanD | Цвет линий динамического веера Фибоначчи. |
| ExtFiboFanS | Цвет линий статического веера Фибоначчи. |
| ExtFiboFanMedianaDinamicColor | Цвет медианы динамического веера Фибоначчи. |
| ExtFiboFanMedianaStaticColor | Цвет медианы статического веера Фибоначчи. |
| ExtFiboTime1 | Включение отображения первого веера времени Фибоначчи. |
| ExtFiboTime2 | Включение отображения второго веера времени Фибоначчи. |
| ExtFiboTime1C | Цвет линий первого веера времени Фибоначчи. |
| ExtFiboTime2C | Цвет линий второго веера времени Фибоначчи. |
| ExtPivotZoneDinamicColor | Цвет области Pivot Zone для динамической вилки. |
| ExtPivotZoneStaticColor | Цвет области Pivot Zone для статической вилки. |
| ExtPivotZoneFramework | Отображение Pivot Zone в виде рамки. |
| ExtUTL | Включение отображения верхней линии тренда (UTL). |
| ExtLTL | Включение отображения нижней линии тренда (LTL). |
| ExtUWL | Включение отображения верхней линии предупреждения (UWL). |
| ExtLWL | Включение отображения нижней линии предупреждения (LWL). |
| ExtISLDinamic | Включение отображения динамических линий ISL. |
| ExtISLStatic | Включение отображения статических линий ISL. |
| ExtRLine | Включение отображения линий RLine. |
| ExtRLineBase | Отображение базовой линии RLine. |
| ExtPitchforkCandle | Включение построения вилки Эндрюса по заданным датам и ценам. |
| ExtDateTimePitchfork_1 | Дата и время первой точки для статической вилки Эндрюса. |
| ExtDateTimePitchfork_2 | Дата и время второй точки для статической вилки Эндрюса. |
| ExtDateTimePitchfork_3 | Дата и время третьей точки для статической вилки Эндрюса. |
| ExtPitchfork_1_HighLow | Выбор использования максимумов или минимумов для точек вилки по датам. |
| Var5___________________________ | Заголовок группы параметров для каналов micmed. |
| ExtCM_0_1A_2B | Выбор варианта построения каналов micmed (от 0 до 4). |
| ExtCM_Fibo | Уровень Фибоначчи для построения каналов micmed. |
| Var6___________________________ | Заголовок группы параметров для веера Фибоначчи. |
| ExtFiboFanColor | Цвет линий веера Фибоначчи. |
| ExtFiboFanNum | Количество баров ZigZag для построения веера Фибоначчи. |
| Var7___________________________ | Заголовок группы параметров для расширения Фибоначчи. |
| ExtFiboExpansion | Количество баров ZigZag для построения расширения Фибоначчи. |
| ExtFiboExpansionColor | Цвет линий расширения Фибоначчи. |
| Var8___________________________ | Заголовок группы параметров для Versum Levels. |
| ExtVLDinamicColor | Цвет динамических уровней Versum Levels. |
| ExtVLStaticColor | Цвет статических уровней Versum Levels. |
| ExtVLStaticNum | Количество баров ZigZag для построения статических Versum Levels. |
| Var9___________________________ | Заголовок группы параметров для дуг Фибоначчи. |
| ExtArcDinamicNum | Количество баров ZigZag для построения динамических дуг Фибоначчи. |
| ExtArcStaticNum | Количество баров ZigZag для построения статических дуг Фибоначчи. |
| ExtArcDinamicColor | Цвет линий динамических дуг Фибоначчи. |
| ExtArcStaticColor | Цвет линий статических дуг Фибоначчи. |
| ExtArcDinamicScale | Масштаб динамических дуг Фибоначчи; 0 — автоматический подбор. |
| ExtArcStaticScale | Масштаб статических дуг Фибоначчи; 0 — автоматический подбор. |
| Var10__________________________ | Заголовок группы параметров Exp. |
Поиск по коду файла
#property stacksize 16384
#property indicator_chart_window
#property indicator_buffers 6
#property indicator_color1 Aqua
#property indicator_color2 Green
#property indicator_color3 Orange
#property indicator_color4 LightSkyBlue
#property indicator_color5 LemonChiffon
#property indicator_color6 Yellow
extern string Var0___________________________ = "Parameters for ZigZag";
extern int ExtIndicator = 11;
extern int minBars = 8;
extern int minSize = 55;
extern int ExtDeviation = 5;
extern int ExtBackstep = 3;
extern int GrossPeriod = 1440;
extern double minPercent = 0;
extern int ExtPoint=11; // ?????????? ????? ??????? ??? ??????? Talex
extern bool ExtStyleZZ = true;
extern string Var1___________________________ = "Parameters for fibo Levels";
extern bool ExtFiboDinamic = false;
extern bool ExtFiboStatic = false;
extern int ExtFiboStaticNum = 2;
extern color ExtFiboD = Sienna;
extern color ExtFiboS = Teal;
extern bool ExtFiboCorrectionExpansion = false;
extern string Var2___________________________ = "Parameters for Pesavento Patterns";
extern int ExtPPWithBars = 0;
extern int ExtHidden = 1;
extern int ExtFractal = 7;
extern int ExtFractalEnd = 7;
extern int ExtFiboChoice = 2;
extern bool ExtFiboZigZag = false;
extern double ExtDelta = 0.04;
extern int ExtDeltaType = 2;
extern int ExtSizeTxt = 7;
extern color ExtLine = DarkBlue;
extern color ExtLine886 = Purple;
extern color ExtNotFibo = SlateGray;
extern color ExtPesavento = Yellow;
extern color ExtGartley886 = GreenYellow;
color colorPPattern;
extern string Var3___________________________ = "Parameters for Gartley Patterns";
extern int maxDepth = 33;
extern int minDepth = 3;
extern bool DirectionOfSearchMaxMin = true;
extern bool ExtGartleyOnOff = false;
extern int maxBarToD = 15;
extern bool RangeForPointD = true;
extern color ExtColorRangeForPointD = Red;
extern double ExtDeltaGartley = 0.09;
extern color ExtColorPatterns = Blue;
extern double ExtCD = 0.886;
extern string Var4___________________________ = "Parameters for Andrews Pitchfork";
extern int ExtPitchforkDinamic = 0;
extern int ExtPitchforkStatic = 0;
extern int ExtPitchforkStaticNum = 3;
extern color ExtLinePitchforkD = MediumSlateBlue;
extern color ExtLinePitchforkS = MediumBlue;
extern color ExtPitchforkStaticColor = CLR_NONE;
extern int ExtPitchforkStyle = 1;
extern bool ExtFiboFanDinamic = false; // ????? ?????????? ??????????????
extern bool ExtFiboFanStatic = false; // ????????? ?????? ????????? ?? ???????????? ??????
extern bool ExtFiboFanExp = true;
extern bool ExtFiboFanHidden = false;
extern color ExtFiboFanD = Sienna;
extern color ExtFiboFanS = Teal;
extern color ExtFiboFanMedianaDinamicColor = CLR_NONE;
extern color ExtFiboFanMedianaStaticColor = CLR_NONE;
extern bool ExtFiboTime1 = false;
extern bool ExtFiboTime2 = false;
extern color ExtFiboTime1C = Teal;
extern color ExtFiboTime2C = Sienna;
extern color ExtPivotZoneDinamicColor = CLR_NONE;
extern color ExtPivotZoneStaticColor = CLR_NONE;
extern bool ExtPivotZoneFramework = false;
extern bool ExtUTL = false;
extern bool ExtLTL = false;
extern bool ExtUWL = false;
extern bool ExtLWL = false;
extern bool ExtISLDinamic = false;
extern bool ExtISLStatic = false;
extern bool ExtRLine = true;
extern bool ExtRLineBase = true;
extern bool ExtPitchforkCandle = false;
extern datetime ExtDateTimePitchfork_1 = D'15.06.1989 00:00';
extern datetime ExtDateTimePitchfork_2 = D'08.03.1995 00:00';
extern datetime ExtDateTimePitchfork_3 = D'26.10.2000 00:00';
extern bool ExtPitchfork_1_HighLow = false;
extern string Var5___________________________ = "Parameters for micmed Channels";
extern int ExtCM_0_1A_2B = 0;
extern double ExtCM_Fibo = 0.618;
extern string Var6___________________________ = "Parameters for fibo Fan";
extern color ExtFiboFanColor = CLR_NONE;
extern int ExtFiboFanNum = 0;
extern string Var7___________________________ = "Parameters for fibo Expansion";
extern int ExtFiboExpansion = 0;
extern color ExtFiboExpansionColor = Yellow;
extern string Var8___________________________ = "Parameters for versum Levels";
extern color ExtVLDinamicColor = CLR_NONE;
extern color ExtVLStaticColor = CLR_NONE;
extern int ExtVLStaticNum = 0;
extern string Var9___________________________ = "Parameters for fibo Arc";
extern int ExtArcDinamicNum = 0;
extern int ExtArcStaticNum = 0;
extern color ExtArcDinamicColor = Sienna;
extern color ExtArcStaticColor = Teal;
extern double ExtArcDinamicScale= 0;
extern double ExtArcStaticScale = 0;
extern string Var10__________________________ = "Parameters Exp";
extern bool chHL = false;
extern bool PeakDet = false;
extern bool chHL_PeakDet_or_vts = true;
extern int NumberOfBars = 1000; // ?????????? ????? ??????? (0-???)
extern int NumberOfVTS = 13;
extern int NumberOfVTS1 = 1;
extern string Var11__________________________ = "Common Parameters";
extern bool ExtFiboType = true;
extern color ExtObjectColor = CLR_NONE;
extern int ExtObjectStyle = 1;
extern int ExtObjectWidth = 0;
extern bool ZigZagHighLow = true;
extern bool ExtSendMail = false;
extern bool ExtAlert = false;
extern bool ExtBack = true;
extern bool ExtSave = false;
extern bool infoTF = false;
extern int ExtComplekt=0;
double zz[];
double zzL[];
double zzH[];
double nen_ZigZag[];
color ExtLine_;
int minBarsSave, minBarsX;
double number[64];
string numbertxt[64];
int numberFibo[64];
int numberPesavento[64];
int numberGartley[64];
int numberMix[64];
int numberGilmorQuality[64];
int numberGilmorGeometric[64];
int numberGilmorHarmonic[64];
int numberGilmorArithmetic[64];
int numberGilmorGoldenMean[64];
int numberSquare[64];
int numberCube[64];
int numberRectangle[64];
int numberExt[64];
string nameObj,nameObjtxt,save;
bool descript_b=false;
string PPWithBars, descript;
int afr[]={0,0,0,0,0,0,0,0,0,0};
double afrl[]={0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0}, afrh[]={0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0}, afrx[]={0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0};
double openTF[]={0.0,0.0,0.0,0.0,0.0}, closeTF[]={0.0,0.0,0.0,0.0,0.0}, lowTF[]={0.0,0.0,0.0,0.0,0.0}, highTF[]={0.0,0.0,0.0,0.0,0.0};
double close_TF=0;
string TF[]={"MN","W1","D1","H4","H1","m30","m15","m5","m1"};
string Period_tf;
bool afrm=true;
double ExtHL;
double HL,HLp,kk,kj,Angle;
double LowPrim,HighPrim,LowLast,HighLast;
int numLowPrim,numHighPrim,numLowLast,numHighLast,k,k1,k2,ki,kiPRZ=0,countLow1,countHigh1,shift,shift1;
string txtkk;
int timeFr1new;
int countFr;
int countBarEnd=0,TimeBarEnd;
int numBar=0;
int numOb;
bool flagFrNew=false;
bool flagGartle=false;
int perTF;
bool Demo;
double int_to_d=0, int_to_d1=0, int_to_d2=0;
int counted_bars, cbi, iBar;
double ASBar;
double ha[],la[],hi,li,si,sip,di,hm,lm,ham[],lam[],him,lim,lLast=0,hLast=0;
int fs=0,fsp,countBar;
int ai,aip,bi,bip,ai0,aip0,bi0,bip0;
datetime tai,tbi,taip,tbip,ti;
bool fh=false,fl=false,fcount0;
double lLast_m=0, hLast_m=0;
int countBarExt; // ??????? ??????? ?????
int countBarl,countBarh;
bool hi_nen;
bool init_zz=true;
int mFibo[]={0,0}, mPitch[]={0,0,0}, mFan[]={0,0}, mExpansion[]={0,0,0}, mVL[]={0,0,0}, mArcS[]={0,0}, mArcD[]={0,0};
datetime mPitchTime[]={0,0,0};
int mPitchTimeSave;
double mPitchCena[]={0.0,0.0,0.0};
double ms[2];
string vBullBear = ""; // ?????????? ??? ??????????? ????? ??? ???????? ???????
string vNamePattern = ""; // ?????????? ??? ??????????? ???????????? ????????
int maxPeak, vPatOnOff, vPatNew=0;
double hBar, lBar;
datetime tiZZ;
bool FlagForD = true; // ?????????? ?? ????? ??????? ??????????? ????? D ???????? (Gartley)
datetime TimeForDmin = 0;
datetime TimeForDmax = 0;
double LevelForDmin = 0;
double LevelForDmax = 0;
static int endbar = 0;
static double endpr = 0;
int init()
{
// код доступен только после оплаты
}
int deinit()
{
int i;
delete_objects_dinamic();
delete_objects3();
ObjectDelete("fiboS" + ExtComplekt+"_");
ObjectDelete("fiboFanS" + ExtComplekt+"_");
ObjectDelete("RLineS" + ExtComplekt+"_");
ObjectDelete("pitchforkS" + ExtComplekt+"_");
ObjectDelete("pmedianaS" + ExtComplekt+"_");
ObjectDelete("1-2pmedianaS" + ExtComplekt+"_");
ObjectDelete("fiboTime1" + ExtComplekt+"_");ObjectDelete("fiboTime2" + ExtComplekt+"_");
ObjectDelete("UTL" + ExtComplekt+"_");ObjectDelete("LTL" + ExtComplekt+"_");
ObjectDelete("UWL" + ExtComplekt+"_");ObjectDelete("LWL" + ExtComplekt+"_");
ObjectDelete("ISL_S" + ExtComplekt+"_");
ObjectDelete("CL" + ExtComplekt+"_");
ObjectDelete("PivotZoneS" + ExtComplekt+"_");
ObjectDelete("FanMedianaStatic" + ExtComplekt+"_");
ObjectDelete("FiboFan" + ExtComplekt+"_");
ObjectDelete("FiboArcS" + ExtComplekt+"_");
Comment("");
for (i=0; i<7; i++)
{
nameObj="VLS"+i+" " + ExtComplekt+"_";
ObjectDelete(nameObj);
}
return(0);
}
int start()
{
// код доступен только после оплаты
} // start
void countFractal()
{
int shift;
countLow1=0;
countHigh1=0;
if (flagFrNew && !flagGartle)
{
for(shift=0; shift<=numBar; shift++)
{
if (zzL[shift]>0.0) {countLow1++;}
if (zzH[shift]>0.0) {countHigh1++;}
}
numBar=0;
counted_bars=Bars-4;
}
else
{
if (flagGartle) {counted_bars=0;}
for(shift=0; shift<=countBarEnd; shift++)
{
if (zzL[shift]>0.0) {countLow1++;}
if (zzH[shift]>0.0) {countHigh1++;}
}
}
}
void matriza()
{
if (afrm)
{
afrm=false;
int shift,k;
k=0;
for (shift=0; shift<Bars && k<10; shift++)
{
if (zz[shift]>0)
{
afrx[k]=zz[shift];
afr[k]=Time[shift];
if (zz[shift]==zzL[shift])
{
if (ZigZagHighLow) afrl[k]=Low[shift];
else
{
if (k==0) afrl[k]=Low[shift]; else afrl[k]=zzL[shift];
}
afrh[k]=0.0;
}
if (zz[shift]==zzH[shift])
{
if (ZigZagHighLow) afrh[k]=High[shift];
else
{
if (k==0) afrh[k]=High[shift]; else afrh[k]=zzH[shift];
}
afrl[k]=0.0;
}
k++;
}
}
if (ExtPitchforkStatic>0)
{
if (mPitch[2]>0) {screenPitchforkS(); ExtPitchforkStatic=0;}
if (ExtPitchforkCandle)
{
if (iBarShift(Symbol(),Period(),ExtDateTimePitchfork_3)==0) screenPitchforkS();
}
else
{
if (mPitch[2]==0) screenPitchforkS();
}
}
if (ExtPitchforkDinamic>0) screenPitchforkD();
if (ExtFiboStatic)
{
if (mFibo[1]>0) {ExtFiboStatic=false; screenFiboS();}
if (mFibo[1]==0) screenFiboS();
}
if (ExtFiboDinamic) {screenFiboD();}
if (ExtFiboExpansion>0)
{
if (mExpansion[2]>0) {FiboExpansion(); ExtFiboExpansion=0;}
if (mExpansion[2]==0) FiboExpansion();
}
if (ExtFiboFanNum>0 && ExtFiboFanColor>0)
{
if (mFan[1]>0) {screenFiboFan(); ExtFiboFanNum=0;}
if (mFan[1]==0) screenFiboFan();
}
if (ExtFiboFanDinamic) screenFiboFanD();
if (ExtVLStaticColor>0)
{
if (mVL[2]>0) {ExtVLStaticNum=0; VLS();}
if (mVL[2]==0) VLS();
}
if (ExtVLDinamicColor>0) {VLD();}
if (ExtArcDinamicNum>0) screenFiboArcD();
if (ExtArcStaticNum>0) {screenFiboArcS(); ExtArcStaticNum=0;}
if (ExtGartleyOnOff)
{
switch (ExtIndicator)
{
case 0 : {_Gartley("ExtIndicator=0_" + minBars+"/"+ExtDeviation+"/"+ExtBackstep);break;}
case 1 : {_Gartley("ExtIndicator=1_" + minSize+"/"+minPercent);break;}
case 2 : {_Gartley("ExtIndicator=2_" + minBars+"/"+minSize);break;}
case 3 : {_Gartley("ExtIndicator=3_" + minBars);break;}
case 4 : {_Gartley("ExtIndicator=4_" + minSize);break;}
case 5 : {_Gartley("ExtIndicator=5_" + minBars);break;}
case 6 : {_Gartley("ExtIndicator=6_" + minBars+"/"+ExtDeviation+"/"+ExtBackstep);break;}
case 7 : {_Gartley("ExtIndicator=7_" + minBars);break;}
case 8 : {_Gartley("ExtIndicator=8_" + minBars+"/"+ExtDeviation);break;}
case 10 : {_Gartley("ExtIndicator=10_" + minBars);break;}
case 12 : {_Gartley("ExtIndicator=12_" + minBars);break;}
}
if (vPatOnOff==1 && vPatNew==0)
{
vPatNew=1;
if (ExtSendMail) _SendMail("There was a pattern","on " + Symbol() + " " + Period() + " pattern " + vBullBear + " " + vNamePattern);
}
else if (vPatOnOff==0 && vPatNew==1) {vPatNew=0; FlagForD=true;}
}
ExtSave=false;
}
}
void VLS()
{
VL(mVL[0],mVL[1],mVL[2],ExtVLStaticColor,"VLS");
}
void VLD()
{
VL(2,1,0,ExtVLDinamicColor,"VLD");
}
void VL(int na,int nb,int nc,color color_line,string vl)
{
double line_pesavento[7]={0.236, 0.382, 0.447, 0.5, 0.618, 0.786, 0.886}, line_fibo[7]={0.236, 0.382, 0.455, 0.5, 0.545, 0.618, 0.764};
int c_bar1, c_bar2, i;
double H_L, mediana, tangens, cena;
c_bar1=iBarShift(Symbol(),Period(),afr[na])-iBarShift(Symbol(),Period(),afr[nb]); // ?????????? ??? ? ??????? AB
c_bar2=iBarShift(Symbol(),Period(),afr[nb])-iBarShift(Symbol(),Period(),afr[nc]); // ?????????? ??? ? ??????? ??
if (afrl[na]>0)
{
H_L=afrh[nb]-afrl[nc]; // ?????? ??????? ??
for (i=0; i<7; i++)
{
if (ExtFiboType)
{
mediana=line_pesavento[i]*H_L+afrl[nc];
tangens=(mediana-afrl[na])/(c_bar1+(1-line_pesavento[i])*c_bar2);
cena=c_bar2*line_pesavento[i]*tangens+mediana;
nameObj=vl+i+" " + ExtComplekt+"_";
ObjectDelete(nameObj);
ObjectCreate(nameObj,OBJ_TREND,0,afr[na],afrl[na],afr[nc],cena);
ObjectSetText(nameObj,"ZUP"+ExtComplekt+" zz"+ExtIndicator+" "+vl+" "+DoubleToStr(line_pesavento[i]*100,1)+"");
ObjectSet(nameObj,OBJPROP_COLOR,color_line);
}
else
{
mediana=line_fibo[i]*H_L+afrl[nc];
tangens=(mediana-afrl[na])/(c_bar1+(1-line_fibo[i])*c_bar2);
cena=c_bar2*line_fibo[i]*tangens+mediana;
nameObj=vl+i+" " + ExtComplekt+"_";
ObjectDelete(nameObj);
ObjectCreate(nameObj,OBJ_TREND,0,afr[na],afrl[na],afr[nc],cena);
ObjectSetText(nameObj,"ZUP"+ExtComplekt+" zz"+ExtIndicator+" "+vl+" "+DoubleToStr(line_fibo[i]*100,1)+"");
ObjectSet(nameObj,OBJPROP_COLOR,color_line);
}
}
}
else
{
H_L=afrh[nc]-afrl[nb]; // ?????? ??????? ??
for (i=0; i<7; i++)
{
if (ExtFiboType)
{
mediana=afrh[nc]-line_pesavento[i]*H_L;
tangens=(afrh[na]-mediana)/(c_bar1+(1-line_pesavento[i])*c_bar2);
cena=mediana-c_bar2*line_pesavento[i]*tangens;
nameObj=vl+i+" " + ExtComplekt+"_";
ObjectDelete(nameObj);
ObjectCreate(nameObj,OBJ_TREND,0,afr[na],afrh[na],afr[nc],cena);
ObjectSetText(nameObj,"ZUP"+ExtComplekt+" zz"+ExtIndicator+" "+vl+" "+DoubleToStr(line_pesavento[i]*100,1)+"");
ObjectSet(nameObj,OBJPROP_COLOR,color_line);
}
else
{
mediana=afrh[nc]-line_fibo[i]*H_L;
tangens=(afrh[na]-mediana)/(c_bar1+(1-line_fibo[i])*c_bar2);
cena=mediana-c_bar2*line_fibo[i]*tangens;
nameObj=vl+i+" " + ExtComplekt+"_";
ObjectDelete(nameObj);
ObjectCreate(nameObj,OBJ_TREND,0,afr[na],afrh[na],afr[nc],cena);
ObjectSetText(nameObj,"ZUP"+ExtComplekt+" zz"+ExtIndicator+" "+vl+" "+DoubleToStr(line_fibo[i]*100,1)+"");
ObjectSet(nameObj,OBJPROP_COLOR,color_line);
}
}
}
}
void screenPitchforkS()
{
int k1,n,nbase1,nbase2;
double a1,b1,c1,ab1,bc1,ab2,bc2,tangens,n1,cl1,ch1,cena;
datetime ta1,tb1,tc1,tab2,tbc2,tcl1,tch1;
bool fo1=false,fo2=false;
datetime pitch_time[]={0,0,0};
double pitch_cena[]={0,0,0};
double TLine, m618=0.618, m382=0.382;
int mirror1, mirror2;
if (ExtPitchforkCandle)
{
if (iBarShift(Symbol(),Period(),ExtDateTimePitchfork_3)==0)
{
if (ExtPitchfork_1_HighLow)
{
mPitchCena[2]=High[iBarShift(Symbol(),Period(),ExtDateTimePitchfork_3)];
}
else
{
mPitchCena[2]=Low[iBarShift(Symbol(),Period(),ExtDateTimePitchfork_3)];
}
}
}
if (ExtPitchforkCandle)
{
cena=mPitchCena[0];
if (ExtPitchfork_1_HighLow)
{
if (ExtCM_0_1A_2B==1)
{
cena=mPitchCena[0]-(mPitchCena[0]-mPitchCena[1])*ExtCM_Fibo;
}
else if (ExtCM_0_1A_2B==4)
{
mPitchTimeSave=mPitchTime[0];
mPitchTime[0]=mPitchTime[1];
if (maxGipotenuza(mPitchTime,mPitchCena))
{
cena=mPitchCena[1]+(mPitchCena[2]-mPitchCena[1])*m618;
}
else
{
cena=mPitchCena[1]+(mPitchCena[2]-mPitchCena[1])*m382;
}
}
else if (ExtCM_0_1A_2B>1)
{
if (ExtCM_0_1A_2B==2) mPitchTime[0]=mPitchTime[1];
cena=mPitchCena[1]+(mPitchCena[2]-mPitchCena[1])*ExtCM_Fibo;
}
}
else
{
if (ExtCM_0_1A_2B==1)
{
cena=mPitchCena[0]+(mPitchCena[1]-mPitchCena[0])*ExtCM_Fibo;
}
else if (ExtCM_0_1A_2B==4)
{
mPitchTimeSave=mPitchTime[0];
mPitchTime[0]=mPitchTime[1];
if (maxGipotenuza(mPitchTime,mPitchCena))
{
cena=mPitchCena[1]-(mPitchCena[1]-mPitchCena[2])*m618;
}
else
{
cena=mPitchCena[1]-(mPitchCena[1]-mPitchCena[2])*m382;
}
}
else if (ExtCM_0_1A_2B>1)
{
if (ExtCM_0_1A_2B==2) mPitchTime[0]=mPitchTime[1];
cena=mPitchCena[1]-(mPitchCena[1]-mPitchCena[2])*ExtCM_Fibo;
}
}
}
else
{
mPitchTime[0]=afr[mPitch[0]]; mPitchTime[1]=afr[mPitch[1]]; mPitchTime[2]=afr[mPitch[2]];
if (afrl[mPitch[0]]>0)
{
cena=afrl[mPitch[0]];
mPitchCena[0]=afrl[mPitch[0]]; mPitchCena[1]=afrh[mPitch[1]]; mPitchCena[2]=afrl[mPitch[2]];
if (ExtCM_0_1A_2B==1)
{
cena=mPitchCena[0]+(mPitchCena[1]-mPitchCena[0])*ExtCM_Fibo;
}
else if (ExtCM_0_1A_2B==4)
{
mPitchTimeSave=mPitchTime[0];
mPitchTime[0]=mPitchTime[1];
if (maxGipotenuza(mPitchTime,mPitchCena))
{
cena=mPitchCena[1]-(mPitchCena[1]-mPitchCena[2])*m618;
}
else
{
cena=mPitchCena[1]-(mPitchCena[1]-mPitchCena[2])*m382;
}
}
else if (ExtCM_0_1A_2B>1)
{
if (ExtCM_0_1A_2B==2) mPitchTime[0]=mPitchTime[1];
cena=mPitchCena[1]-(mPitchCena[1]-mPitchCena[2])*ExtCM_Fibo;
}
}
else
{
cena=afrh[mPitch[0]];
mPitchCena[0]=afrh[mPitch[0]]; mPitchCena[1]=afrl[mPitch[1]]; mPitchCena[2]=afrh[mPitch[2]];
if (ExtCM_0_1A_2B==1)
{
cena=mPitchCena[0]-(mPitchCena[0]-mPitchCena[1])*ExtCM_Fibo;
}
else if (ExtCM_0_1A_2B==4)
{
mPitchTimeSave=mPitchTime[0];
mPitchTime[0]=mPitchTime[1];
if (maxGipotenuza(mPitchTime,mPitchCena))
{
cena=mPitchCena[1]+(mPitchCena[2]-mPitchCena[1])*m618;
}
else
{
cena=mPitchCena[1]+(mPitchCena[2]-mPitchCena[1])*m382;
}
}
else if (ExtCM_0_1A_2B>1)
{
if (ExtCM_0_1A_2B==2) mPitchTime[0]=mPitchTime[1];
cena=mPitchCena[1]+(mPitchCena[2]-mPitchCena[1])*ExtCM_Fibo;
}
}
}
mPitchCena[0]=cena;
if (ExtFiboFanStatic) {ExtFiboFanStatic=false; screenFiboFanS();}
nameObj="pmedianaS" + ExtComplekt+"_";
ObjectDelete(nameObj);
if (ExtSave)
{
if (ExtPitchforkCandle && iBarShift(Symbol(),Period(),ExtDateTimePitchfork_3)>0)
{
nameObj=nameObj + save;
}
else
{
if (mPitch[2]>0)
{
nameObj=nameObj + save;
}
}
}
coordinaty_1_2_mediany_AP(mPitchCena[0], mPitchCena[1], mPitchCena[2], mPitchTime[0], mPitchTime[1], mPitchTime[2], tab2, tbc2, ab1, bc1);
pitch_time[0]=tab2;pitch_cena[0]=ab1;
if (ExtPitchforkStatic==2)
{
ObjectCreate(nameObj,OBJ_TREND,0,tab2,ab1,tbc2,bc1);
ObjectSet(nameObj,OBJPROP_STYLE,STYLE_DASH);
ObjectSet(nameObj,OBJPROP_COLOR,ExtLinePitchforkS);
ObjectSet(nameObj,OBJPROP_BACK,ExtBack);
nameObj="1-2pmedianaS" + ExtComplekt+"_";
if (ExtSave)
{
if (ExtPitchforkCandle && iBarShift(Symbol(),Period(),ExtDateTimePitchfork_3)>0)
{
nameObj=nameObj + save;
}
else
{
if (mPitch[2]>0)
{
nameObj=nameObj + save;
}
}
}
ObjectDelete(nameObj);
ObjectCreate(nameObj,OBJ_TEXT,0,tab2,ab1+3*Point);
ObjectSetText(nameObj," 1/2 ML",9,"Arial", ExtLinePitchforkS);
}
nameObj="pitchforkS" + ExtComplekt+"_";
if (ExtSave)
{
if (ExtPitchforkCandle && iBarShift(Symbol(),Period(),ExtDateTimePitchfork_3)>0)
{
nameObj=nameObj + save;
}
else
{
if (mPitch[2]>0)
{
nameObj=nameObj + save;
}
}
}
ObjectDelete(nameObj);
if (ExtPitchforkStatic!=4)
{
pitch_time[0]=mPitchTime[0];pitch_cena[0]=mPitchCena[0];
if (ExtPitchforkStatic==3) pitch_cena[0]=ab1;
}
pitch_time[1]=mPitchTime[1];pitch_cena[1]=mPitchCena[1];
pitch_time[2]=mPitchTime[2];pitch_cena[2]=mPitchCena[2];
ObjectCreate(nameObj,OBJ_PITCHFORK,0,pitch_time[0],pitch_cena[0],pitch_time[1],pitch_cena[1],pitch_time[2],pitch_cena[2]);
if (ExtPitchforkStyle<5)
{
ObjectSet(nameObj,OBJPROP_STYLE,ExtPitchforkStyle);
}
else if(ExtPitchforkStyle<11)
{
ObjectSet(nameObj,OBJPROP_WIDTH,ExtPitchforkStyle-5);
}
ObjectSet(nameObj,OBJPROP_COLOR,ExtLinePitchforkS);
ObjectSet(nameObj,OBJPROP_BACK,ExtBack);
if (ExtFiboFanMedianaStaticColor>0)
{
coordinaty_mediany_AP(pitch_cena[0], pitch_cena[1], pitch_cena[2], pitch_time[0], pitch_time[1], pitch_time[2], tb1, b1);
/*
nameObj="FanMedianaStatic" + ExtComplekt+"_";
if (ExtSave)
{
if (ExtPitchforkCandle && iBarShift(Symbol(),Period(),ExtDateTimePitchfork_3)>0)
{
nameObj=nameObj + save;
}
else
{
if (mPitch[2]>0)
{
nameObj=nameObj + save;
}
}
}
*/
ObjectDelete(nameObj);
ObjectSet(nameObj,OBJPROP_COLOR,CLR_NONE);
ObjectCreate(nameObj,OBJ_FIBOFAN,0,pitch_time[0],pitch_cena[0],tb1,b1);
ObjectSet(nameObj,OBJPROP_LEVELSTYLE,STYLE_DASH);
ObjectSet(nameObj,OBJPROP_LEVELCOLOR,ExtFiboFanMedianaStaticColor);
ObjectSet(nameObj,OBJPROP_BACK,ExtBack);
screenFibo();
}
if (ExtUTL)
{
nameObj="UTL" + ExtComplekt+"_";
if (ExtSave)
{
if (ExtPitchforkCandle && iBarShift(Symbol(),Period(),ExtDateTimePitchfork_3)>0)
{
nameObj=nameObj + save;
}
else
{
if (mPitch[2]>0)
{
nameObj=nameObj + save;
}
}
}
ObjectDelete(nameObj);
if (pitch_cena[1]>pitch_cena[2])
{
ObjectCreate(nameObj,OBJ_TREND,0,pitch_time[0],pitch_cena[0],pitch_time[1],pitch_cena[1]);
}
else
{
ObjectCreate(nameObj,OBJ_TREND,0,pitch_time[0],pitch_cena[0],pitch_time[2],pitch_cena[2]);
}
ObjectSet(nameObj,OBJPROP_STYLE,STYLE_SOLID);
ObjectSet(nameObj,OBJPROP_COLOR,ExtLinePitchforkS);
ObjectSet(nameObj,OBJPROP_BACK,ExtBack);
}
if (ExtPivotZoneStaticColor>0 && ExtPitchforkStatic<4) PivotZone(pitch_time, pitch_cena, ExtPivotZoneStaticColor, "PivotZoneS");
if (ExtLTL)
{
nameObj="LTL" + ExtComplekt+"_";
if (ExtSave)
{
if (ExtPitchforkCandle && iBarShift(Symbol(),Period(),ExtDateTimePitchfork_3)>0)
{
nameObj=nameObj + save;
}
else
{
if (mPitch[2]>0)
{
nameObj=nameObj + save;
}
}
}
ObjectDelete(nameObj);
if (pitch_cena[1]>pitch_cena[2])
{
ObjectCreate(nameObj,OBJ_TREND,0,pitch_time[0],pitch_cena[0],pitch_time[2],pitch_cena[2]);
}
else
{
ObjectCreate(nameObj,OBJ_TREND,0,pitch_time[0],pitch_cena[0],pitch_time[1],pitch_cena[1]);
}
ObjectSet(nameObj,OBJPROP_STYLE,STYLE_SOLID);
ObjectSet(nameObj,OBJPROP_COLOR,ExtLinePitchforkS);
ObjectSet(nameObj,OBJPROP_BACK,ExtBack);
}
if (ExtISLStatic)
{
n1=iBarShift(Symbol(),Period(),pitch_time[0])-(iBarShift(Symbol(),Period(),pitch_time[1])+iBarShift(Symbol(),Period(),pitch_time[2]))/2.0;
ta1=pitch_time[1];
a1=pitch_cena[1];
tangens=(pitch_cena[0]-(pitch_cena[1]+pitch_cena[2])/2.0)/n1;
ML_RL400(tangens, pitch_cena, pitch_time, tb1, b1, true);
tc1=pitch_time[2];
c1=pitch_cena[2];
nameObj="ISL_S" + ExtComplekt+"_";
if (ExtSave)
{
if (ExtPitchforkCandle && iBarShift(Symbol(),Period(),ExtDateTimePitchfork_3)>0)
{
nameObj=nameObj + save;
}
else
{
if (mPitch[2]>0)
{
nameObj=nameObj + save;
}
}
}
ObjectDelete(nameObj);
ObjectCreate(nameObj,OBJ_FIBOCHANNEL,0,ta1,a1,tb1,b1,tc1,c1);
ObjectSet(nameObj,OBJPROP_LEVELCOLOR,ExtLinePitchforkS);
ObjectSet(nameObj,OBJPROP_LEVELSTYLE,ExtPitchforkStyle);
ObjectSet(nameObj,OBJPROP_RAY,false);
ObjectSet(nameObj,OBJPROP_BACK,ExtBack);
ObjectSet(nameObj,OBJPROP_COLOR,CLR_NONE);
ObjectSet(nameObj,OBJPROP_FIBOLEVELS,6);
if (ExtFiboType)
{
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+0,-0.886);
ObjectSetFiboDescription(nameObj, 0, " I S L 88.6");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+1,-0.786);
ObjectSetFiboDescription(nameObj, 1, " I S L 78.6");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+2,-0.618);
ObjectSetFiboDescription(nameObj, 2, " I S L 61.8");
}
else
{
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+0,-0.854);
ObjectSetFiboDescription(nameObj, 0, " I S L 85.4");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+1,-0.764);
ObjectSetFiboDescription(nameObj, 1, " I S L 76.4");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+2,-0.618);
ObjectSetFiboDescription(nameObj, 2, " I S L 61.8");
}
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+3,-0.382);
ObjectSetFiboDescription(nameObj, 3, " I S L 38.2");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+4,-0.236);
ObjectSetFiboDescription(nameObj, 4, " I S L 23.6");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+5,-0.146);
ObjectSetFiboDescription(nameObj, 5, " I S L 14.6");
}
if (ExtUWL || ExtLWL)
{
n1=iBarShift(Symbol(),Period(),pitch_time[0])-(iBarShift(Symbol(),Period(),pitch_time[1])+iBarShift(Symbol(),Period(),pitch_time[2]))/2.0;
ta1=pitch_time[0];
tb1=Time[0];
a1=pitch_cena[0];
tangens=(pitch_cena[0]-(pitch_cena[1]+pitch_cena[2])/2.0)/n1;
b1=pitch_cena[0]-tangens*iBarShift(Symbol(),Period(),pitch_time[0]);
ML_RL400(tangens, pitch_cena, pitch_time, tb1, b1, false);
if (pitch_cena[1]>pitch_cena[2])
{
if (ExtUWL)
{
ch1=pitch_cena[1];
tch1=pitch_time[1];
}
if (ExtLWL)
{
cl1=pitch_cena[2];
tcl1=pitch_time[2];
}
}
else
{
if (ExtUWL)
{
ch1=pitch_cena[2];
tch1=pitch_time[2];
}
if (ExtLWL)
{
cl1=pitch_cena[1];
tcl1=pitch_time[1];
}
}
if (ExtUWL)
{
nameObj="UWL" + ExtComplekt+"_";
if (ExtSave)
{
if (ExtPitchforkCandle && iBarShift(Symbol(),Period(),ExtDateTimePitchfork_3)>0)
{
nameObj=nameObj + save;
}
else
{
if (mPitch[2]>0)
{
nameObj=nameObj + save;
}
}
}
ObjectDelete(nameObj);
ObjectCreate(nameObj,OBJ_FIBOCHANNEL,0,ta1,a1,tb1,b1,tch1,ch1);
ObjectSet(nameObj,OBJPROP_LEVELCOLOR,ExtLinePitchforkS);
ObjectSet(nameObj,OBJPROP_LEVELSTYLE,STYLE_DOT);
ObjectSet(nameObj,OBJPROP_RAY,false);
ObjectSet(nameObj,OBJPROP_BACK,ExtBack);
ObjectSet(nameObj,OBJPROP_COLOR,CLR_NONE);
ObjectSet(nameObj,OBJPROP_FIBOLEVELS,12);
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+0,0.146);
ObjectSetFiboDescription(nameObj, 0, "U W L 14.6");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+1,0.236);
ObjectSetFiboDescription(nameObj, 1, "U W L 23.6");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+2,0.382);
ObjectSetFiboDescription(nameObj, 2, "U W L 38.2");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+3,0.5);
ObjectSetFiboDescription(nameObj, 3, "U W L 50.0");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+4,0.618);
ObjectSetFiboDescription(nameObj, 4, "U W L 61.8");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+5,0.764);
ObjectSetFiboDescription(nameObj, 5, "U W L 76.4");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+6,0.854);
ObjectSetFiboDescription(nameObj, 6, "U W L 85.4");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+7,1.0);
ObjectSetFiboDescription(nameObj, 7, "U W L 100.0");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+8,1.618);
ObjectSetFiboDescription(nameObj, 8, "U W L 161.8");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+9,2.0);
ObjectSetFiboDescription(nameObj, 9, "U W L 200.0");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+10,2.618);
ObjectSetFiboDescription(nameObj, 10, "U W L 261.8");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+11,4.0);
ObjectSetFiboDescription(nameObj, 11, "U W L 400.0");
}
if (ExtLWL)
{
nameObj="LWL" + ExtComplekt+"_";
if (ExtSave)
{
if (ExtPitchforkCandle && iBarShift(Symbol(),Period(),ExtDateTimePitchfork_3)>0)
{
nameObj=nameObj + save;
}
else
{
if (mPitch[2]>0)
{
nameObj=nameObj + save;
}
}
}
ObjectDelete(nameObj);
ObjectCreate(nameObj,OBJ_FIBOCHANNEL,0,ta1,a1,tb1,b1,tcl1,cl1);
ObjectSet(nameObj,OBJPROP_LEVELCOLOR,ExtLinePitchforkS);
ObjectSet(nameObj,OBJPROP_LEVELSTYLE,STYLE_DOT);
ObjectSet(nameObj,OBJPROP_RAY,false);
ObjectSet(nameObj,OBJPROP_BACK,ExtBack);
ObjectSet(nameObj,OBJPROP_COLOR,CLR_NONE);
ObjectSet(nameObj,OBJPROP_FIBOLEVELS,12);
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+0,0.146);
ObjectSetFiboDescription(nameObj, 0, "L W L 14.6");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+1,0.236);
ObjectSetFiboDescription(nameObj, 1, "L W L 23.6");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+2,0.382);
ObjectSetFiboDescription(nameObj, 2, "L W L 38.2");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+3,0.5);
ObjectSetFiboDescription(nameObj, 3, "L W L 50.0");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+4,0.618);
ObjectSetFiboDescription(nameObj, 4, "L W L 61.8");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+5,0.764);
ObjectSetFiboDescription(nameObj, 5, "L W L 76.4");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+6,0.854);
ObjectSetFiboDescription(nameObj, 6, "L W L 85.4");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+7,1.0);
ObjectSetFiboDescription(nameObj, 7, "L W L 100.0");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+8,1.618);
ObjectSetFiboDescription(nameObj, 8, "L W L 161.8");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+9,2.0);
ObjectSetFiboDescription(nameObj, 9, "L W L 200.0");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+10,2.618);
ObjectSetFiboDescription(nameObj, 10, "L W L 261.8");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+11,4.0);
ObjectSetFiboDescription(nameObj, 11, "L W L 400.0");
}
}
if (ExtPitchforkStaticColor>0)
{
n1=iBarShift(Symbol(),Period(),pitch_time[0])-(iBarShift(Symbol(),Period(),pitch_time[1])+iBarShift(Symbol(),Period(),pitch_time[2]))/2.0;
TLine=pitch_cena[1]-iBarShift(Symbol(),Period(),pitch_time[1])*(pitch_cena[0]-(pitch_cena[2]+pitch_cena[1])/2)/n1;
nameObj="CL" + ExtComplekt+"_";
/*
if (ExtSave)
{
if (ExtPitchforkCandle && iBarShift(Symbol(),Period(),ExtDateTimePitchfork_3)>0)
{
nameObj=nameObj + save;
}
else
{
if (mPitch[2]>0)
{
nameObj=nameObj + save;
}
}
}
*/
ObjectDelete(nameObj);
ObjectCreate(nameObj,OBJ_CHANNEL,0,pitch_time[1],pitch_cena[1],Time[0],TLine,pitch_time[2],pitch_cena[2]);
ObjectSet(nameObj, OBJPROP_BACK, true);
ObjectSet(nameObj, OBJPROP_COLOR, ExtPitchforkStaticColor);
}
if (ExtRLine)
{
n=iBarShift(Symbol(),Period(),pitch_time[0])-(iBarShift(Symbol(),Period(),pitch_time[1])+iBarShift(Symbol(),Period(),pitch_time[2]))/2.0;
nbase1=iBarShift(Symbol(),Period(),mPitchTime[1]);
nbase2=iBarShift(Symbol(),Period(),mPitchTime[2]);
if (nbase1+n<=Bars)
{
mirror1=1;
mirror2=0;
ta1=Time[nbase1+n];
tb1=Time[nbase2+n];
tc1=mPitchTime[1];
a1=(pitch_cena[0]-(mPitchCena[1]+mPitchCena[2])/2)+mPitchCena[1];
b1=(pitch_cena[0]-(mPitchCena[1]+mPitchCena[2])/2)+mPitchCena[2];
c1=mPitchCena[1];
}
else
{
mirror1=-1;
mirror2=-1;
ta1=mPitchTime[2];
tb1=mPitchTime[1];
tc1=Time[nbase2+n];
a1=mPitchCena[2];
b1=mPitchCena[1];
c1=(pitch_cena[0]-(mPitchCena[1]+mPitchCena[2])/2)+mPitchCena[2];
}
nameObj="RLineS" + ExtComplekt+"_";
if (ExtSave)
{
if (ExtPitchforkCandle && iBarShift(Symbol(),Period(),ExtDateTimePitchfork_3)>0)
{
nameObj=nameObj + save;
}
else
{
if (mPitch[2]>0)
{
nameObj=nameObj + save;
}
}
}
ObjectDelete(nameObj);
ObjectCreate(nameObj,OBJ_FIBOCHANNEL,0,ta1,a1,tb1,b1,tc1,c1);
ObjectSet(nameObj,OBJPROP_LEVELCOLOR,ExtLinePitchforkS);
if (ExtRLineBase)
{
ObjectSet(nameObj,OBJPROP_COLOR,CLR_NONE);
}
else
{
ObjectSet(nameObj,OBJPROP_COLOR,ExtLinePitchforkS);
}
fiboRL(nameObj, mirror1, mirror2);
}
if (ExtFiboTime1)
{
nameObj="fiboTime1" + ExtComplekt+"_";
if (ExtSave)
{
if (ExtPitchforkCandle && iBarShift(Symbol(),Period(),ExtDateTimePitchfork_3)>0)
{
nameObj=nameObj + save;
}
else
{
if (mPitch[2]>0)
{
nameObj=nameObj + save;
}
}
}
ObjectDelete(nameObj);
if (ExtPitchforkCandle)
{
if (!ExtPitchfork_1_HighLow)
{
if (mPitchCena[0]>mPitchCena[2])
{
ObjectCreate(nameObj,OBJ_FIBOTIMES,0,mPitchTime[0],mPitchCena[2]-5*Point,mPitchTime[2],mPitchCena[2]-5*Point);
}
else
{
ObjectCreate(nameObj,OBJ_FIBOTIMES,0,mPitchTime[0],mPitchCena[0]-5*Point,mPitchTime[2],mPitchCena[0]-5*Point);
}
}
else
{
ObjectCreate(nameObj,OBJ_FIBOTIMES,0,mPitchTime[0],mPitchCena[1]-5*Point,mPitchTime[2],mPitchCena[1]-5*Point);
}
}
else
{
if (afrl[mPitch[0]]>0)
{
if (afrl[mPitch[0]]>afrl[mPitch[2]])
{
ObjectCreate(nameObj,OBJ_FIBOTIMES,0,mPitchTime[0],mPitchCena[2]-5*Point,mPitchTime[2],mPitchCena[2]-5*Point);
}
else
{
ObjectCreate(nameObj,OBJ_FIBOTIMES,0,mPitchTime[0],mPitchCena[0]-5*Point,mPitchTime[2],mPitchCena[0]-5*Point);
}
}
else
{
ObjectCreate(nameObj,OBJ_FIBOTIMES,0,mPitchTime[0],mPitchCena[1]-5*Point,mPitchTime[2],afrl[mPitch[1]]-5*Point);
}
}
ObjectSet(nameObj,OBJPROP_LEVELCOLOR,ExtFiboTime1C);
fiboTime (nameObj);
}
if (ExtFiboTime2)
{
nameObj="fiboTime2" + ExtComplekt+"_";
if (ExtSave)
{
if (ExtPitchforkCandle && iBarShift(Symbol(),Period(),ExtDateTimePitchfork_3)>0)
{
nameObj=nameObj + save;
}
else
{
if (mPitch[2]>0)
{
nameObj=nameObj + save;
}
}
}
ObjectDelete(nameObj);
if (ExtPitchforkCandle)
{
if (ExtPitchfork_1_HighLow)
{
ObjectCreate(nameObj,OBJ_FIBOTIMES,0,mPitchTime[1],mPitchCena[1]-8*Point,mPitchTime[2],mPitchCena[1]-8*Point);
}
else
{
ObjectCreate(nameObj,OBJ_FIBOTIMES,0,mPitchTime[1],mPitchCena[2]-8*Point,mPitchTime[2],mPitchCena[2]-8*Point);
}
}
else
{
if (afrl[mPitch[1]]>0)
{
ObjectCreate(nameObj,OBJ_FIBOTIMES,0,mPitchTime[1],mPitchCena[1]-8*Point,mPitchTime[2],mPitchCena[1]-8*Point);
}
else
{
ObjectCreate(nameObj,OBJ_FIBOTIMES,0,mPitchTime[1],mPitchCena[2]-8*Point,mPitchTime[2],mPitchCena[2]-8*Point);
}
}
ObjectSet(nameObj,OBJPROP_LEVELCOLOR,ExtFiboTime2C);
fiboTime (nameObj);
}
}
void fiboTime (string nameObj)
{
ObjectSet(nameObj,OBJPROP_COLOR,ExtObjectColor);
ObjectSet(nameObj,OBJPROP_STYLE,ExtObjectStyle);
ObjectSet(nameObj,OBJPROP_WIDTH,ExtObjectWidth);
ObjectSet(nameObj,OBJPROP_LEVELSTYLE,STYLE_DOT);
ObjectSet(nameObj,OBJPROP_BACK,ExtBack);
if (ExtFiboType)
{
ObjectSet(nameObj,OBJPROP_FIBOLEVELS,17);
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+0,0.0);
ObjectSetFiboDescription(nameObj, 0, "0");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+1,1.0);
ObjectSetFiboDescription(nameObj, 1, "1");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+2,1.382);
ObjectSetFiboDescription(nameObj, 2, "Ft .382");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+3,1.5);
ObjectSetFiboDescription(nameObj, 3, "Ft .5");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+4,1.618);
ObjectSetFiboDescription(nameObj, 4, "Ft .618");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+5,1.707);
ObjectSetFiboDescription(nameObj, 5, "Ft .707");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+6,1.786);
ObjectSetFiboDescription(nameObj, 6, "Ft .786");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+7,1.886);
ObjectSetFiboDescription(nameObj, 7, "Ft .886");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+8,2.0);
ObjectSetFiboDescription(nameObj, 8, "Ft 1.");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+9,2.272);
ObjectSetFiboDescription(nameObj, 9, "Ft 1.272");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+10,2.414);
ObjectSetFiboDescription(nameObj, 10, "Ft 1.414");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+11,2.618);
ObjectSetFiboDescription(nameObj, 11, "Ft 1.618");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+12,3.0);
ObjectSetFiboDescription(nameObj, 12, "Ft 2.");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+13,3.414);
ObjectSetFiboDescription(nameObj, 13, "Ft 2.414");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+15,3.618);
ObjectSetFiboDescription(nameObj, 15, "Ft 2.618");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+16,4.0);
ObjectSetFiboDescription(nameObj, 16, "Ft 3.");
}
else
{
ObjectSet(nameObj,OBJPROP_FIBOLEVELS,15);
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+0,0.0);
ObjectSetFiboDescription(nameObj, 0, "0");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+1,1.0);
ObjectSetFiboDescription(nameObj, 1, "1");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+2,1.146);
ObjectSetFiboDescription(nameObj, 2, "Ft .146");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+3,1.236);
ObjectSetFiboDescription(nameObj, 3, "Ft .236");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+4,1.382);
ObjectSetFiboDescription(nameObj, 4, "Ft .382");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+5,1.5);
ObjectSetFiboDescription(nameObj, 5, "Ft .5");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+6,1.618);
ObjectSetFiboDescription(nameObj, 6, "Ft .618");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+7,1.764);
ObjectSetFiboDescription(nameObj, 7, "Ft .764");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+8,1.854);
ObjectSetFiboDescription(nameObj, 8, "Ft .854");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+9,2.0);
ObjectSetFiboDescription(nameObj, 9, "Ft 1.");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+10,2.236);
ObjectSetFiboDescription(nameObj, 10, "Ft 1.236");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+11,2.618);
ObjectSetFiboDescription(nameObj, 11, "Ft 1.618");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+12,3.0);
ObjectSetFiboDescription(nameObj, 12, "Ft 2.");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+13,3.618);
ObjectSetFiboDescription(nameObj, 13, "Ft 2.618");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+14,5.0);
ObjectSetFiboDescription(nameObj, 14, "Ft 4.");
}
}
void screenPitchforkD()
{
int k1,n,nbase1,nbase2;
double a1,b1,c1,ab1,bc1,ab2,bc2,d,n1,cena,m618=0.618,m382=0.382, tangens;
datetime ta1,tb1,tc1,tab2,tbc2;
bool fo1=false,fo2=false;
datetime pitch_time[]={0,0,0};
double pitch_cena[]={0,0,0};
int mirror1, mirror2;
mPitchTime[0]=afr[2]; mPitchTime[1]=afr[1]; mPitchTime[2]=afr[0];
mPitchCena[0]=afrx[2]; mPitchCena[1]=afrx[1]; mPitchCena[2]=afrx[0];
cena=afrx[2];
if (afrl[2]>0)
{
if (ExtCM_0_1A_2B==1)
{
cena=mPitchCena[0]+(mPitchCena[1]-mPitchCena[0])*ExtCM_Fibo;
}
else if (ExtCM_0_1A_2B==4)
{
mPitchTimeSave=mPitchTime[0];
mPitchTime[0]=mPitchTime[1];
if (maxGipotenuza(mPitchTime,mPitchCena))
{
cena=mPitchCena[1]-(mPitchCena[1]-mPitchCena[2])*m618;
}
else
{
cena=mPitchCena[1]-(mPitchCena[1]-mPitchCena[2])*m382;
}
}
else if (ExtCM_0_1A_2B>1)
{
if (ExtCM_0_1A_2B==2) mPitchTime[0]=mPitchTime[1];
cena=mPitchCena[1]-(mPitchCena[1]-mPitchCena[2])*ExtCM_Fibo;
}
}
else
{
if (ExtCM_0_1A_2B==1)
{
cena=mPitchCena[0]-(mPitchCena[0]-mPitchCena[1])*ExtCM_Fibo;
}
else if (ExtCM_0_1A_2B==4)
{
mPitchTimeSave=mPitchTime[0];
mPitchTime[0]=mPitchTime[1];
if (maxGipotenuza(mPitchTime,mPitchCena))
{
cena=mPitchCena[1]+(mPitchCena[2]-mPitchCena[1])*m618;
}
else
{
cena=mPitchCena[1]+(mPitchCena[2]-mPitchCena[1])*m382;
}
}
else if (ExtCM_0_1A_2B>1)
{
if (ExtCM_0_1A_2B==2) mPitchTime[0]=mPitchTime[1];
cena=mPitchCena[1]+(mPitchCena[2]-mPitchCena[1])*ExtCM_Fibo;
}
}
mPitchCena[0]=cena;
coordinaty_1_2_mediany_AP(mPitchCena[0], mPitchCena[1], mPitchCena[2], mPitchTime[0], mPitchTime[1], mPitchTime[2], tab2, tbc2, ab1, bc1);
pitch_time[0]=tab2;pitch_cena[0]=ab1;
nameObj="pmedianaD" + ExtComplekt+"_";
ObjectDelete(nameObj);
if (ExtPitchforkDinamic==2)
{
ObjectCreate(nameObj,OBJ_TREND,0,tab2,ab1,tbc2,bc1);
ObjectSet(nameObj,OBJPROP_STYLE,STYLE_DASH);
ObjectSet(nameObj,OBJPROP_COLOR,ExtLinePitchforkD);
ObjectSet(nameObj,OBJPROP_BACK,ExtBack);
nameObj="1-2pmedianaD" + ExtComplekt+"_";
ObjectDelete(nameObj);
ObjectCreate(nameObj,OBJ_TEXT,0,tab2,ab1+3*Point);
ObjectSetText(nameObj," 1/2 ML",9,"Arial", ExtLinePitchforkD);
}
nameObj="pitchforkD" + ExtComplekt+"_";
ObjectDelete(nameObj);
if (ExtPitchforkDinamic!=4)
{
pitch_time[0]=mPitchTime[0];pitch_cena[0]=mPitchCena[0];
if (ExtPitchforkDinamic==3) pitch_cena[0]=ab1;
}
pitch_time[1]=mPitchTime[1];pitch_cena[1]=mPitchCena[1];
pitch_time[2]=mPitchTime[2];pitch_cena[2]=mPitchCena[2];
ObjectCreate(nameObj,OBJ_PITCHFORK,0,pitch_time[0],pitch_cena[0],pitch_time[1],pitch_cena[1],pitch_time[2],pitch_cena[2]);
if (ExtPitchforkStyle<5)
{
ObjectSet(nameObj,OBJPROP_STYLE,ExtPitchforkStyle);
}
else if(ExtPitchforkStyle<11)
{
ObjectSet(nameObj,OBJPROP_WIDTH,ExtPitchforkStyle-5);
}
ObjectSet(nameObj,OBJPROP_COLOR,ExtLinePitchforkD);
ObjectSet(nameObj,OBJPROP_BACK,ExtBack);
if (ExtPivotZoneDinamicColor>0 && ExtPitchforkDinamic<4) PivotZone(pitch_time, pitch_cena, ExtPivotZoneDinamicColor, "PivotZoneD");
if (ExtFiboFanMedianaDinamicColor>0)
{
coordinaty_mediany_AP(pitch_cena[0], pitch_cena[1], pitch_cena[2], pitch_time[0], pitch_time[1], pitch_time[2], tb1, b1);
nameObj="FanMedianaDinamic" + ExtComplekt+"_";
ObjectDelete(nameObj);
ObjectCreate(nameObj,OBJ_FIBOFAN,0,pitch_time[0],pitch_cena[0],tb1,b1);
ObjectSet(nameObj,OBJPROP_LEVELSTYLE,STYLE_DASH);
ObjectSet(nameObj,OBJPROP_LEVELCOLOR,ExtFiboFanMedianaDinamicColor);
ObjectSet(nameObj,OBJPROP_BACK,ExtBack);
screenFibo();
}
if (ExtISLDinamic)
{
n1=iBarShift(Symbol(),Period(),pitch_time[0])-(iBarShift(Symbol(),Period(),pitch_time[1])+iBarShift(Symbol(),Period(),pitch_time[2]))/2.0;
ta1=pitch_time[1];
a1=pitch_cena[1];
tangens=(pitch_cena[0]-(pitch_cena[1]+pitch_cena[2])/2.0)/n1;
ML_RL400(tangens, pitch_cena, pitch_time, tb1, b1, true);
tc1=pitch_time[2];
c1=pitch_cena[2];
nameObj="ISL_D" + ExtComplekt+"_";
ObjectDelete(nameObj);
ObjectCreate(nameObj,OBJ_FIBOCHANNEL,0,ta1,a1,tb1,b1,tc1,c1);
ObjectSet(nameObj,OBJPROP_LEVELCOLOR,ExtLinePitchforkD);
ObjectSet(nameObj,OBJPROP_LEVELSTYLE,ExtPitchforkStyle);
ObjectSet(nameObj,OBJPROP_RAY,false);
ObjectSet(nameObj,OBJPROP_BACK,ExtBack);
ObjectSet(nameObj,OBJPROP_COLOR,CLR_NONE);
ObjectSet(nameObj,OBJPROP_FIBOLEVELS,6);
if (ExtFiboType)
{
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+0,-0.886);
ObjectSetFiboDescription(nameObj, 0, " I S L 88.6");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+1,-0.786);
ObjectSetFiboDescription(nameObj, 1, " I S L 78.6");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+2,-0.618);
ObjectSetFiboDescription(nameObj, 2, " I S L 61.8");
}
else
{
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+0,-0.854);
ObjectSetFiboDescription(nameObj, 0, " I S L 85.4");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+1,-0.764);
ObjectSetFiboDescription(nameObj, 1, " I S L 76.4");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+2,-0.618);
ObjectSetFiboDescription(nameObj, 2, " I S L 61.8");
}
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+3,-0.382);
ObjectSetFiboDescription(nameObj, 3, " I S L 38.2");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+4,-0.236);
ObjectSetFiboDescription(nameObj, 4, " I S L 23.6");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+5,-0.146);
ObjectSetFiboDescription(nameObj, 5, " I S L 14.6");
}
if (ExtRLine)
{
n=iBarShift(Symbol(),Period(),pitch_time[0])-(iBarShift(Symbol(),Period(),pitch_time[1])+iBarShift(Symbol(),Period(),pitch_time[2]))/2.0;
nbase1=iBarShift(Symbol(),Period(),pitch_time[1]);
nbase2=iBarShift(Symbol(),Period(),pitch_time[2]);
if (nbase1+n<=Bars)
{
mirror1=1;
mirror2=0;
ta1=Time[nbase1+n];
tb1=Time[nbase2+n];
tc1=mPitchTime[1];
a1=(pitch_cena[0]-(mPitchCena[1]+mPitchCena[2])/2)+mPitchCena[1];
b1=(pitch_cena[0]-(mPitchCena[1]+mPitchCena[2])/2)+mPitchCena[2];
c1=mPitchCena[1];
}
else
{
mirror1=-1;
mirror2=-1;
ta1=mPitchTime[2];
tb1=mPitchTime[1];
tc1=Time[nbase2+n];
a1=mPitchCena[2];
b1=mPitchCena[1];
c1=(pitch_cena[0]-(mPitchCena[1]+mPitchCena[2])/2)+mPitchCena[2];
}
nameObj="RLineD" + ExtComplekt+"_";
ObjectDelete(nameObj);
ObjectCreate(nameObj,OBJ_FIBOCHANNEL,0,ta1,a1,tb1,b1,tc1,c1);
ObjectSet(nameObj,OBJPROP_LEVELCOLOR,ExtLinePitchforkD);
if (ExtRLineBase)
{
ObjectSet(nameObj,OBJPROP_COLOR,CLR_NONE);
}
else
{
ObjectSet(nameObj,OBJPROP_COLOR,ExtLinePitchforkD);
}
fiboRL(nameObj, mirror1, mirror2);
}
}
void fiboRL(string nameObj, int mirror1, int mirror2)
{
ObjectSet(nameObj,OBJPROP_LEVELSTYLE,STYLE_DOT);
ObjectSet(nameObj,OBJPROP_RAY,false);
ObjectSet(nameObj,OBJPROP_BACK,ExtBack);
if (ExtFiboType)
{
ObjectSet(nameObj,OBJPROP_FIBOLEVELS,15);
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+0,mirror2+mirror1*0.382);
ObjectSetFiboDescription(nameObj, 0, " RL 38.2");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+1,mirror2+mirror1*0.5);
ObjectSetFiboDescription(nameObj, 1, " RL 50.0");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+2,mirror2+mirror1*0.618);
ObjectSetFiboDescription(nameObj, 2, " RL 61.8");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+3,mirror2+mirror1*0.707);
ObjectSetFiboDescription(nameObj, 3, " RL 70.7");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+4,mirror2+mirror1*0.786);
ObjectSetFiboDescription(nameObj, 4, " RL 78.6");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+5,mirror2+mirror1*0.886);
ObjectSetFiboDescription(nameObj, 5, " RL 88.6");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+6,mirror2+mirror1*1.0);
ObjectSetFiboDescription(nameObj, 6, " RL 100.0");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+7,mirror2+mirror1*1.128);
ObjectSetFiboDescription(nameObj, 7, " RL 112.8");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+8,mirror2+mirror1*1.272);
ObjectSetFiboDescription(nameObj, 8, " RL 127.2");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+9,mirror2+mirror1*1.414);
ObjectSetFiboDescription(nameObj, 9, " RL 141.4");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+10,mirror2+mirror1*1.618);
ObjectSetFiboDescription(nameObj, 10, " RL 161.8");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+11,mirror2+mirror1*2.0);
ObjectSetFiboDescription(nameObj, 11, " RL 200.0");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+12,mirror2+mirror1*2.414);
ObjectSetFiboDescription(nameObj, 12, " RL 241.4");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+13,mirror2+mirror1*2.618);
ObjectSetFiboDescription(nameObj, 13, " RL 261.8");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+14,mirror2+mirror1*4.0);
ObjectSetFiboDescription(nameObj, 14, " RL 400.0");
}
else
{
ObjectSet(nameObj,OBJPROP_FIBOLEVELS,12);
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+0,mirror2+mirror1*0.236);
ObjectSetFiboDescription(nameObj, 0, " RL 23.6");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+1,mirror2+mirror1*0.382);
ObjectSetFiboDescription(nameObj, 1, " RL 38.2");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+2,mirror2+mirror1*0.5);
ObjectSetFiboDescription(nameObj, 2, " RL 50.0");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+3,mirror2+mirror1*0.618);
ObjectSetFiboDescription(nameObj, 3, " RL 61.8");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+4,mirror2+mirror1*0.764);
ObjectSetFiboDescription(nameObj, 4, " RL 76.4");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+5,mirror2+mirror1*0.854);
ObjectSetFiboDescription(nameObj, 5, " RL 85.4");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+6,mirror2+mirror1*1.0);
ObjectSetFiboDescription(nameObj, 6, " RL 100.0");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+7,mirror2+mirror1*1.236);
ObjectSetFiboDescription(nameObj, 7, " RL 123.6");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+8,mirror2+mirror1*1.618);
ObjectSetFiboDescription(nameObj, 8, " RL 161.8");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+9,mirror2+mirror1*2.0);
ObjectSetFiboDescription(nameObj, 9, " RL 200");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+10,mirror2+mirror1*2.618);
ObjectSetFiboDescription(nameObj, 10, " RL 261.8");
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+11,mirror2+mirror1*4.0);
ObjectSetFiboDescription(nameObj, 11, " RL 400.0");
}
}
void coordinaty_1_2_mediany_AP(double A_1, double B_2, double C_3, datetime T_1, datetime T_2, datetime T_3, datetime& tAB2, datetime& tBC2, double& AB2, double& BC2)
{
double tangens;
int n1, n2, n3, nab2, nbc2;
n1=iBarShift(Symbol(),Period(),T_1);
n2=iBarShift(Symbol(),Period(),T_2);
n3=iBarShift(Symbol(),Period(),T_3);
tangens=(C_3 - A_1)/(n1 - n3);
nab2=MathCeil((n1+n2)/2.0);
nbc2=MathCeil((n2+n3)/2.0);
AB2=(A_1 + B_2)/2 - (nab2-(n1+n2)/2.0)*tangens;
BC2=(B_2 + C_3)/2 - (nbc2-(n2+n3)/2.0)*tangens;
tAB2=Time[nab2];
tBC2=Time[nbc2];
}
void coordinaty_mediany_AP(double A_1, double B_2, double C_3, datetime T_1, datetime T_2, datetime T_3, datetime& tB1, double& B1)
{
double tangens;
int n1, n2, n3, nbc2;
n1=iBarShift(Symbol(),Period(),T_1);
n2=iBarShift(Symbol(),Period(),T_2);
n3=iBarShift(Symbol(),Period(),T_3);
tangens=(A_1-(C_3+B_2)/2)/(n1 - (n3+n2)/2.0);
nbc2=MathCeil((n2+n3)/2.0);
B1=(B_2 + C_3)/2 - ((n2+n3)/2.0-nbc2)*tangens;
tB1=Time[nbc2];
}
bool maxGipotenuza(datetime pitch_time1[], double pitch_cena1[])
{
double k2,k3;
datetime k4,k5;
/*
k2=MathAbs(pitch_cena1[0]-pitch_cena1[1])/Point;
k3=MathAbs(pitch_cena1[1]-pitch_cena1[2])/Point;
k4=(mPitchTimeSave-pitch_time1[1])/(GrossPeriod*60);
k5=(pitch_time1[1]-pitch_time1[2])/(GrossPeriod*60);
*/
k2=MathAbs(pitch_cena1[0]-pitch_cena1[1])/ASBar;
k3=MathAbs(pitch_cena1[1]-pitch_cena1[2])/ASBar;
k4=iBarShift(NULL,GrossPeriod,mPitchTimeSave)-iBarShift(NULL,GrossPeriod,pitch_time1[1]);
k5=iBarShift(NULL,GrossPeriod,pitch_time1[1])-iBarShift(NULL,GrossPeriod,pitch_time1[2]);
if (k2*k2+k4*k4>k3*k3+k5*k5) return(true); else return(false);
}
void PivotZone(datetime pitch_time1[], double pitch_cena1[], color PivotZoneColor, string name)
{
datetime ta1, tb1;
double a1, b1, d, n1;
int m, m1, m2;
ta1=pitch_time1[2];
a1=pitch_cena1[2];
m1=iBarShift(Symbol(),Period(),pitch_time1[0])-iBarShift(Symbol(),Period(),pitch_time1[1]);
m2=iBarShift(Symbol(),Period(),pitch_time1[1])-iBarShift(Symbol(),Period(),pitch_time1[2]);
m=iBarShift(Symbol(),Period(),pitch_time1[2]);
n1=iBarShift(Symbol(),Period(),pitch_time1[0])-(iBarShift(Symbol(),Period(),pitch_time1[1])+iBarShift(Symbol(),Period(),pitch_time1[2]))/2.0;
d=(pitch_cena1[0]-(pitch_cena1[1]+pitch_cena1[2])/2.0)/n1;
if (m1>m2)
{
if (m1>m)
{
tb1=Time[0]+(m1-m)*Period()*60;
}
else
{
tb1=Time[iBarShift(Symbol(),Period(),pitch_time1[2])-m1];
}
b1=pitch_cena1[0]-d*(2*m1+m2);
}
else
{
if (m2>m)
{
tb1=Time[0]+(m2-m)*Period()*60;
}
else
{
tb1=Time[iBarShift(Symbol(),Period(),pitch_time1[2])-m2];
}
b1=pitch_cena1[0]-d*(2*m2+m1);
}
nameObj=name + ExtComplekt+"_";
ObjectDelete(nameObj);
ObjectCreate(nameObj,OBJ_RECTANGLE,0,ta1,a1,tb1,b1);
ObjectSetText(nameObj,"PZ "+Period_tf+" "+TimeToStr(tb1,TIME_DATE|TIME_MINUTES));
ObjectSet(nameObj, OBJPROP_BACK, ExtPivotZoneFramework);
ObjectSet(nameObj, OBJPROP_COLOR, PivotZoneColor);
}
void ML_RL400(double Tangens, double pitch_cena1[], datetime pitch_time1[], datetime& tB1, double& B1, bool flag)
{
int m, m1, m2;
m1=iBarShift(Symbol(),Period(),pitch_time1[0]);
m2=MathCeil((iBarShift(Symbol(),Period(),pitch_time1[1])+iBarShift(Symbol(),Period(),pitch_time1[2]))/2.0);
m=(m1-m2)*4;
if (m>m2)
{
tB1=Time[0]+(m-m2)*Period()*60;
if (tB1<0) tB1=2133648000;
if (flag) B1=pitch_cena1[1]-Tangens*(iBarShift(Symbol(),Period(),pitch_time1[1])+(tB1-Time[0])/(60*Period()));
else B1=pitch_cena1[0]-Tangens*(iBarShift(Symbol(),Period(),pitch_time1[0])+(tB1-Time[0])/(60*Period()));
}
else
{
tB1=Time[m2-m];
if (flag) B1=pitch_cena1[1]-Tangens*(iBarShift(Symbol(),Period(),pitch_time1[1])-iBarShift(Symbol(),Period(),tB1));
else B1=pitch_cena1[0]-Tangens*(iBarShift(Symbol(),Period(),pitch_time1[0])-iBarShift(Symbol(),Period(),tB1));
}
}
void screenFiboFan()
{
double a1,b1;
a1=afrx[mFan[0]]; b1=afrx[mFan[1]];
nameObj="FiboFan" + ExtComplekt+"_";
if (mFan[1]>0)
{
if (ExtSave)
{
nameObj=nameObj + save;
}
}
ObjectDelete(nameObj);
ObjectCreate(nameObj,OBJ_FIBOFAN,0,afr[mFan[0]],a1,afr[mFan[1]],b1);
ObjectSet(nameObj,OBJPROP_LEVELSTYLE,STYLE_DASH);
ObjectSet(nameObj,OBJPROP_LEVELCOLOR,ExtFiboFanColor);
ObjectSet(nameObj,OBJPROP_BACK,ExtBack);
screenFibo();
}
void screenFibo()
{
ObjectSet(nameObj,OBJPROP_COLOR,ExtObjectColor);
ObjectSet(nameObj,OBJPROP_STYLE,ExtObjectStyle);
ObjectSet(nameObj,OBJPROP_WIDTH,ExtObjectWidth);
if (!ExtFiboType)
{
ObjectSet(nameObj,OBJPROP_FIBOLEVELS,9);
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+0,0.236);
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+1,0.382);
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+2,0.5);
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+3,0.618);
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+4,0.764);
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+5,0.854);
Показано первые 50% кода (символов: 127014)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.