zup_v14.mq5
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «zup_v14.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный продукт представляет собой пользовательский индикатор для MetaTrader 4, предназначенный для расчёта и отображения линий ZigZag на ценовом графике. Индикатор поддерживает три метода определения разворотов цены и позволяет накладывать уровни Фибоначчи, а также линии распознавания графических паттернов. Результаты отображаются в виде трендовых линий, текстовых меток с процентными значениями и дополнительных каналов на графике.
Настройки программы
| Настройка | Описание |
|---|---|
| ExtIndicator | Режим индикатора — Выбор метода расчёта ZigZag: стандартный, угловой или по методу Ensign. |
| minBars | Минимум баров — Минимальное количество баров, необходимое для формирования разворота ZigZag. |
| minSize | Минимальный размер — Минимальный размер свинг-высоты или свинг-глубины в пунктах для признания разворота. |
| minPercent | Минимальный процент — Минимальный процентное изменение цены для формирования разворота при нулевом minSize. |
| ExtHidden | Скрытые паттерны — Режим отображения скрытых фигур Фибоначчи и паттернов (от 0 до 4). |
| ExtFractal | Фрактал — Количество фракталов, используемых для обнаружения паттернов. |
| ExtFractalEnd | Фрактал конец — Количество фракталов в конце диапазона для поиска паттернов; при нуле используется весь диапазон. |
| ExtDelta | Дельта — Порог отклонения для сопоставления с уровнями Фибоначчи. |
| ExtDeltaType | Тип дельты — Тип допуска при сравнении: абсолютный, в процентах от цены или относительный. |
| chHL | Канал верх/низ — Включает отображение каналов верхней и нижней границы цены. |
| PeakDet | Определение пиков — Включает маркировку пиковых и впадинных точек на графике. |
| ExtFiboDinamic | Динамический Фибоначчи — Включает отображение динамических уровней Фибоначчи между последними разворотами. |
| ExtFiboStatic | Статический Фибоначчи — Включает отображение статических уровней Фибоначчи между выбранными точками. |
| ExtFiboStaticNum | Номер статического Фибоначчи — Номер разворота ZigZag, от которого отсчитывается статический Фибоначчи (от 2 до 9). |
| ExtSizeTxt | Размер текста — Размер шрифта для текстовых меток уровней на графике. |
| ExtLine | Цвет линий — Цвет трендовых линий ZigZag и паттернов. |
| ExtNotFibo | Цвет не-Фибоначчи — Цвет меток для уровней, не соответствующих стандартным числам Фибоначчи. |
| ExtPesavento | Цвет Песавенто — Цвет меток для уровней Песавенто. |
| ExtGartley866 | Цвет Гартли 0.866 — Цвет меток для уровня ретрейсмента 0.886 (Гартли). |
| ExtFiboS | Цвет статического Фибоначчи — Цвет линий и уровней статического Фибоначчи. |
| ExtFiboD | Цвет динамического Фибоначчи — Цвет линий и уровней динамического Фибоначчи. |
| ExtDeleteObj | Удаление объектов — Управляет удалением графических объектов при деинициализации индикатора. |
| ExtDeviation | Отклонение — Допустимое отклонение в пунктах при определении свинг-вершин и впадин ZigZag. |
| ExtBackstep | Шаг назад — Количество баров назад для проверки и корректировки значений ZigZag. |
Поиск по коду файла
#property indicator_chart_window
#property indicator_buffers 5
#property indicator_color1 Red
#property indicator_color2 Green
#property indicator_color3 Orange
#property indicator_color4 LightSkyBlue
#property indicator_color5 LemonChiffon
extern int ExtIndicator=2;
extern int minBars=12;
extern int minSize = 15;
extern double minPercent = 0;
extern int ExtHidden=1;
extern int ExtFractal=8;
extern int ExtFractalEnd=8;
extern double ExtDelta=0.04;
extern int ExtDeltaType=2;
extern bool chHL = false;
extern bool PeakDet = false;
extern bool ExtFiboDinamic=false;
extern bool ExtFiboStatic=false;
extern int ExtFiboStaticNum=2;
extern int ExtSizeTxt=7;
extern color ExtLine=DarkBlue;
extern color ExtNotFibo=SlateGray;
extern color ExtPesavento=Yellow;
extern color ExtGartley866=GreenYellow;
extern color ExtFiboS=Teal;
extern color ExtFiboD=Sienna;
extern bool ExtDeleteObj=false;
extern int ExtDeviation=5;
extern int ExtBackstep=3;
double zz[];
double zzL[];
double zzH[];
double fi[]={0.382, 0.5, 0.618, 0.707, 0.786, 0.841, 0.886, 1.0, 1.128, 1.272, 1.414, 1.5, 1.618, 2.0, 2.414, 2.618, 4.0};
string fitxt[]={ ".382", ".5", ".618", ".707", ".786", ".841", ".886", "1.0", "1.128", "1.272", "1.414", "1.5", "1.618", "2.0", "2.414", "2.618", "4.0" };
string nameObj,nameObjtxt;
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};
bool afrm=true;
double HL,HLp,kk,kj,Angle;
double LowPrim,HighPrim,LowLast,HighLast;
int numLowPrim,numHighPrim,numLowLast,numHighLast,k,k1,k2,ki,countLow1,countHigh1,shift,shift1;
int timeFr1new;
int countFr;
int countBarEnd=0,TimeBarEnd;
int numBar=0;
int numOb;
bool flagFrNew=false;
int perTF;
int counted_bars;
double ha[],la[],hi,li,si,sip,di,hm,lm,ham[],lam[],him,lim,LastBar0,lLast=0,hLast=0;
int fs,fsp,countBar;
int ai,aip,bi,bip,ai0,aip0,bi0,bip0,Last_Bar,last0;
datetime tai,tbi,taip,tbip,ti,ts0=0,t0=0,taiLast,tbiLast;
bool fh=false,fl=false;
int init()
{
// код доступен только после оплаты
}
int deinit()
{
if (ExtDeleteObj) {ObjectsDeleteAll(0,2); ObjectsDeleteAll(0,21);}
else delete_objects1();
ObjectDelete("fiboS");ObjectDelete("fiboD"); return(0);
}
int start()
{
// код доступен только после оплаты
}
counted_bars=IndicatorCounted();
if( counted_bars<0 )
{
Alert("???? ??????? ??????????");
return(-1);
}
if (perTF!=Period())
{
delete_objects1();
perTF=Period();
}
if (ExtIndicator==0) ZigZag_();
if (ExtIndicator==1) ang_AZZ_();
if (ExtIndicator==2) Ensign_ZZ();
if (ExtHidden>0) // ?????????? ?? ????? ????????. ??????.
{
if (Bars - counted_bars>2 || flagFrNew)
{
if (countBarEnd==0)
{
if (ExtFractalEnd>0)
{
k=ExtFractalEnd;
for (shift=0; shift<Bars && k>0; shift++)
{
if (zz[shift]>0 && zzH[shift]>0) {countBarEnd=shift; TimeBarEnd=Time[shift]; k--;}
}
}
else
{
countBarEnd=Bars-3;
TimeBarEnd=Time[Bars-3];
}
}
else
{
countBarEnd=iBarShift(Symbol(),Period(),TimeBarEnd);
}
matriza();
}
if (Bars - counted_bars<3)
{
for (shift1=0; shift1<Bars; shift1++)
{
if (zz[shift1]>0.0 && (zzH[shift1]==zz[shift1] || zzL[shift1]==zz[shift1]))
{
timeFr1new=Time[shift1];
break;
}
}
shift=iBarShift(Symbol(),Period(),afr[0]);
if (timeFr1new!=afr[0])
{
flagFrNew=true;
if (shift>=shift1) numBar=shift; else numBar=shift1;
afrm=true;
}
if (afrh[0]>0 && zz[shift]==0.0)
{
flagFrNew=true;
if (numBar<shift) numBar=shift;
afrm=true;
}
if (afrl[0]>0 && zz[shift]==0.0)
{
flagFrNew=true;
if (numBar<shift) numBar=shift;
afrm=true;
}
if (afrh[0]-High[shift]!=0 && afrh[0]>0)
{
numLowPrim=0; numLowLast=0;
numHighPrim=shift; numHighLast=0;
LowPrim=0.0; LowLast=0.0;
HighPrim=High[shift]; HighLast=0.0;
Angle=-100;
for (k=shift+1; k<=countBarEnd; k++)
{
if (zzL[k]>0.0 && LowPrim==0.0 && zzL[k]==zz[k]) {LowPrim=zzL[k]; numLowPrim=k;}
if (zzL[k]>0.0 && zzL[k]<LowPrim && zzL[k]==zz[k]) {LowPrim=zzL[k]; numLowPrim=k;}
if (zzH[k]>0.0 && zzH[k]==zz[k])
{
if (HighLast>0)
{
HighLast=High[k]; numHighLast=k;
}
else {numHighLast=k; HighLast=High[k];}
HL=High[numHighLast]-Low[numLowPrim];
kj=(HighPrim-HighLast)*1000/(numHighLast-numHighPrim);
if (HL>0 && (Angle>kj || Angle==-100)) // ???????? ???? ??????? ?????
{
Angle=kj;
HLp=High[numHighPrim]-Low[numLowPrim];
k1=MathCeil((shift+numHighLast)/2);
kj=HLp/HL;
nameObj="ph" + Time[numHighPrim] + "_" + Time[numHighLast];
nameObjtxt="phtxt" + Time[numHighPrim] + "_" + Time[numHighLast];
numOb=ObjectFind(nameObj);
if (numOb>-1)
{
if (kj>0.21 && kj<=5)
{
ObjectMove(nameObj,0,Time[numHighPrim],High[numHighPrim]);
ObjectMove(nameObjtxt,0,Time[k1],MathAbs((High[numHighPrim]+High[numHighLast])/2));
kk=kj;
k2=1;
if (ExtDeltaType==2) for (ki=0;ki<=16;ki++) {if (MathAbs((fi[ki]-kj)/fi[ki])<=ExtDelta) {kk=fi[ki]; k2=-1; break;}}
if (ExtDeltaType==1) for (ki=0;ki<=16;ki++) {if (MathAbs(fi[ki]-kj)<=ExtDelta) {kk=fi[ki]; k2=-1; break;}}
if (k2<0)
if (ExtHidden!=4)
{
if (kk==0.886)
ObjectSetText(nameObjtxt,fitxt[ki],ExtSizeTxt,"Arial", ExtGartley866);
else
ObjectSetText(nameObjtxt,fitxt[ki],ExtSizeTxt,"Arial",ExtPesavento);
}
else
if (ExtHidden==1 || ExtHidden==4)
ObjectSetText(nameObjtxt,""+DoubleToStr(kk,2),ExtSizeTxt,"Arial",ExtNotFibo);
}
else
{
ObjectDelete(nameObj);
ObjectDelete(nameObjtxt);
}
}
else
{
if (kj>0.21 && kj<=5)
{
kk=kj;
k2=1;
if (ExtDeltaType==1) for (ki=0;ki<=16;ki++) {if (MathAbs(fi[ki]-kj)<=ExtDelta) {kk=fi[ki]; k2=-1; break;}}
if (ExtDeltaType==2) for (ki=0;ki<=16;ki++) {if (MathAbs((fi[ki]-kj)/fi[ki])<=ExtDelta) {kk=fi[ki]; k2=-1; break;}}
if (k2<0)
{
if (ExtHidden!=4)
{
ObjectCreate(nameObjtxt,OBJ_TEXT,0,Time[k1],MathAbs((High[numHighPrim]+High[numHighLast])/2));
if (kk==0.886) // Gartley
ObjectSetText(nameObjtxt,fitxt[ki],ExtSizeTxt,"Arial", ExtGartley866);
else
ObjectSetText(nameObjtxt,fitxt[ki],ExtSizeTxt,"Arial",ExtPesavento);
}
}
else
{
if (ExtHidden==1 || ExtHidden==4)
{
ObjectCreate(nameObjtxt,OBJ_TEXT,0,Time[k1],MathAbs((High[numHighPrim]+High[numHighLast])/2));
ObjectSetText(nameObjtxt,""+DoubleToStr(kk,2),ExtSizeTxt,"Arial",ExtNotFibo);
}
}
if ((ExtHidden==2 && k2<0) || ExtHidden!=2)
{
ObjectCreate(nameObj,OBJ_TREND,0,Time[numHighPrim],High[numHighPrim],Time[numHighLast],High[numHighLast]);
ObjectSet(nameObj,OBJPROP_RAY,false);
ObjectSet(nameObj,OBJPROP_STYLE,STYLE_DOT);
ObjectSet(nameObj,OBJPROP_COLOR,ExtLine);
}
}
}
}
}
}
afrh[0]=High[shift];
if (ExtFiboDinamic)
{
screenFiboD();
}
}
if (afrl[0]-Low[shift]!=0 && afrl[0]>0)
{
numLowPrim=0; numLowLast=0;
numHighPrim=shift; numHighLast=0;
LowPrim=Low[shift]; LowLast=0.0;
HighPrim=0.0; HighLast=0.0;
Angle=-100;
for (k=shift+1; k<=countBarEnd; k++)
{
if (zzH[k]>HighPrim) {HighPrim=High[k]; numHighPrim=k;}
if (zzL[k]>0.0 && zzL[k]==zz[k])
{
if (LowLast>0)
{
LowLast=Low[k]; numLowLast=k;
}
else {numLowLast=k; LowLast=Low[k];}
HL=High[numHighPrim]-Low[numLowLast];
kj=(LowPrim-LowLast)*1000/(numLowLast-numLowPrim);
if (HL>0 && (Angle<kj || Angle==-100)) // ???????? ???? ??????? ?????
{
Angle=kj;
HLp=High[numHighPrim]-Low[numLowPrim];
k1=MathCeil((numLowPrim+numLowLast)/2);
kj=HLp/HL;
nameObj="pl" + Time[numLowPrim] + "_" + Time[numLowLast];
nameObjtxt="pltxt" + Time[numLowPrim] + "_" + Time[numLowLast];
numOb=ObjectFind(nameObj);
if (numOb>-1)
{
if (kj>0.21 && kj<=5)
{
ObjectMove(nameObj,0,Time[numLowPrim],Low[numLowPrim]);
ObjectMove(nameObjtxt,0,Time[k1],MathAbs((Low[numLowPrim]+Low[numLowLast])/2));
kk=kj;
k2=1;
if (ExtDeltaType==2) for (ki=0;ki<=16;ki++) {if (MathAbs((fi[ki]-kj)/fi[ki])<=ExtDelta) {kk=fi[ki]; k2=-1; break;}}
if (ExtDeltaType==1) for (ki=0;ki<=16;ki++) {if (MathAbs(fi[ki]-kj)<=ExtDelta) {kk=fi[ki]; k2=-1; break;}}
if (k2<0)
{
if (ExtHidden!=4)
{
if (kk==0.886) // Gartley
ObjectSetText(nameObjtxt,fitxt[ki],ExtSizeTxt,"Arial", ExtGartley866);
else
ObjectSetText(nameObjtxt,fitxt[ki],ExtSizeTxt,"Arial",ExtPesavento);
}
}
else
if (ExtHidden==1 || ExtHidden==4)
ObjectSetText(nameObjtxt,""+DoubleToStr(kk,2),ExtSizeTxt,"Arial",ExtNotFibo);
}
else
{
ObjectDelete(nameObj);
ObjectDelete(nameObjtxt);
}
}
else
{
if (kj>0.21 && kj<=5)
{
kk=kj;
k2=1;
if (ExtDeltaType==2) for (ki=0;ki<=16;ki++) {if (MathAbs((fi[ki]-kj)/fi[ki])<=ExtDelta) {kk=fi[ki]; k2=-1; break;}}
if (ExtDeltaType==1) for (ki=0;ki<=16;ki++) {if (MathAbs(fi[ki]-kj)<=ExtDelta) {kk=fi[ki]; k2=-1; break;}}
if (k2<0)
{
if (ExtHidden!=4)
{
nameObj="pltxt" + Time[numLowPrim] + "_" + Time[numLowLast];
ObjectCreate(nameObj,OBJ_TEXT,0,Time[k1],MathAbs((Low[numLowPrim]+Low[numLowLast])/2));
if (kk==0.886) // Gartley
ObjectSetText(nameObj,fitxt[ki],ExtSizeTxt,"Arial", ExtGartley866);
else
ObjectSetText(nameObj,fitxt[ki],ExtSizeTxt,"Arial",ExtPesavento);
}
}
else
{
if (ExtHidden==1 || ExtHidden==4)
nameObj="pltxt" + Time[numLowPrim] + "_" + Time[numLowLast];
ObjectCreate(nameObj,OBJ_TEXT,0,Time[k1],MathAbs((Low[numLowPrim]+Low[numLowLast])/2));
ObjectSetText(nameObj,""+DoubleToStr(kk,2),ExtSizeTxt,"Arial",ExtNotFibo);
}
if ((ExtHidden==2 && k2<0) || ExtHidden!=2)
{
nameObj="pl" + Time[numLowPrim] + "_" + Time[numLowLast];
ObjectCreate(nameObj,OBJ_TREND,0,Time[numLowPrim],Low[numLowPrim],Time[numLowLast],Low[numLowLast]);
ObjectSet(nameObj,OBJPROP_RAY,false);
ObjectSet(nameObj,OBJPROP_STYLE,STYLE_DOT);
ObjectSet(nameObj,OBJPROP_COLOR,ExtLine);
}
}
}
}
}
}
afrl[0]=Low[shift];
if (ExtFiboDinamic)
{
screenFiboD();
}
}
countBarEnd=iBarShift(Symbol(),Period(),TimeBarEnd);
for (k=0; k<5; k++)
{
if (afrh[k]>0)
{
shift=iBarShift(Symbol(),Period(),afr[k]);
if (zz[shift]==0)
{
flagFrNew=true;
if (shift>numBar) numBar=shift;
afrm=true;
numHighPrim=shift; numHighLast=0;HighLast=0.0;
for (k1=shift+1; k1<=countBarEnd; k1++)
{
if (zzH[k1]>0)
{
HighLast=High[k1]; numHighLast=k1;
nameObj="ph" + Time[numHighPrim] + "_" + Time[numHighLast];
numOb=ObjectFind(nameObj);
if (numOb>-1)
{
ObjectDelete(nameObj);
nameObjtxt="phtxt" + Time[numHighPrim] + "_" + Time[numHighLast];
ObjectDelete(nameObjtxt);
}
}
}
}
}
if (afrl[k]>0)
{
shift=iBarShift(Symbol(),Period(),afr[k]);
if (zz[shift]==0)
{
flagFrNew=true;
if (shift>numBar) numBar=shift;
afrm=true;
numLowPrim=shift; numLowLast=0;LowLast=10000000;
for (k1=shift+1; k1<=countBarEnd; k1++)
{
if (zzL[k1]>0)
{
LowLast=Low[k1]; numLowLast=k1;
nameObj="pl" + Time[numLowPrim] + "_" + Time[numLowLast];
numOb=ObjectFind(nameObj);
if (numOb>-1)
{
ObjectDelete(nameObj);
nameObjtxt="pltxt" + Time[numLowPrim] + "_" + Time[numLowLast];
ObjectDelete(nameObjtxt);
}
}
}
}
}
}
matriza ();
}
countFractal();
if (Bars - counted_bars>2)
{
numLowPrim=0; numLowLast=0;
numHighPrim=0; numHighLast=0;
LowPrim=0.0; LowLast=0.0;
HighPrim=0.0; HighLast=0.0;
Angle=-100;
if (flagFrNew) countFr=1;
else countFr=ExtFractal;
for (k=0; (k<Bars-1 && countHigh1>0 && countFr>0); k++)
{
if (zzL[k]>0.0 && LowPrim==0.0 && HighPrim>0 && zzL[k]==zz[k]) {LowPrim=zzL[k]; numLowPrim=k;}
if (zzL[k]>0.0 && zzL[k]<LowPrim && HighPrim>0 && zzL[k]==zz[k]) {LowPrim=zzL[k]; numLowPrim=k;}
if (zzH[k]>0.0 && zzH[k]==zz[k])
{
if (HighPrim>0)
{
if (HighLast>0)
{
HighLast=High[k]; numHighLast=k;
}
else {numHighLast=k; HighLast=High[k];}
HL=High[numHighLast]-Low[numLowPrim];
kj=(HighPrim-HighLast)*10000/(numHighLast-numHighPrim);
if (HL>0 && (Angle>kj || Angle==-100)) // ???????? ???? ??????? ?????
{
Angle=kj;
HLp=High[numHighPrim]-Low[numLowPrim];
k1=MathCeil((numHighPrim+numHighLast)/2);
kj=HLp/HL;
if (kj>0.21 && kj<=5)
{
kk=kj;
k2=1;
if (ExtDeltaType==2) for (ki=0;ki<=16;ki++) {if (MathAbs((fi[ki]-kj)/fi[ki])<=ExtDelta) {kk=fi[ki]; k2=-1; break;}}
if (ExtDeltaType==1) for (ki=0;ki<=16;ki++) {if (MathAbs(fi[ki]-kj)<=ExtDelta) {kk=fi[ki]; k2=-1; break;}}
if (k2<0)
{
if (ExtHidden!=4)
{
nameObj="phtxt" + Time[numHighPrim] + "_" + Time[numHighLast];
ObjectCreate(nameObj,OBJ_TEXT,0,Time[k1],MathAbs((High[numHighPrim]+High[numHighLast])/2));
if (kk==0.886) // Gartley
ObjectSetText(nameObj,fitxt[ki],ExtSizeTxt,"Arial", ExtGartley866);
else
ObjectSetText(nameObj,fitxt[ki],ExtSizeTxt,"Arial",ExtPesavento);
}
}
else
{
if (ExtHidden==1 || ExtHidden==4)
{
nameObj="phtxt" + Time[numHighPrim] + "_" + Time[numHighLast];
ObjectCreate(nameObj,OBJ_TEXT,0,Time[k1],MathAbs((High[numHighPrim]+High[numHighLast])/2));
ObjectSetText(nameObj,""+DoubleToStr(kk,2),ExtSizeTxt,"Arial",ExtNotFibo);
}
}
if ((ExtHidden==2 && k2<0) || ExtHidden!=2)
{
nameObj="ph" + Time[numHighPrim] + "_" + Time[numHighLast];
ObjectCreate(nameObj,OBJ_TREND,0,Time[numHighPrim],High[numHighPrim],Time[numHighLast],High[numHighLast]);
ObjectSet(nameObj,OBJPROP_RAY,false);
ObjectSet(nameObj,OBJPROP_STYLE,STYLE_DOT);
ObjectSet(nameObj,OBJPROP_COLOR,ExtLine);
}
}
}
}
else
{numHighPrim=k; HighPrim=High[k];}
}
if (k>countBarEnd)
{
k=numHighPrim+1; countHigh1--; countFr--;
numLowPrim=0; numLowLast=0;
numHighPrim=0; numHighLast=0;
LowPrim=0.0; LowLast=0.0;
HighPrim=0.0; HighLast=0.0;
Angle=-100;
}
}
numLowPrim=0; numLowLast=0;
numHighPrim=0; numHighLast=0;
LowPrim=0.0; LowLast=0.0;
HighPrim=0.0; HighLast=0.0;
Angle=-100;
if (flagFrNew) countFr=1;
else countFr=ExtFractal;
for (k=0; (k<Bars-1 && countLow1>0 && countFr>0); k++)
{
if (zzH[k]>HighPrim && LowPrim>0) {HighPrim=High[k]; numHighPrim=k;}
if (zzL[k]>0.0 && zzL[k]==zz[k])
{
if (LowPrim>0)
{
if (LowLast>0)
{
LowLast=Low[k]; numLowLast=k;
}
else {numLowLast=k; LowLast=Low[k];}
HL=High[numHighPrim]-Low[numLowLast];
kj=(LowPrim-LowLast)*1000/(numLowLast-numLowPrim);
if (HL>0 && (Angle<kj || Angle==-100)) // ???????? ???? ??????? ?????
{
Angle=kj;
HLp=High[numHigПоказано первые 50% кода (символов: 27263)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.