Miscellaneous
0
Views
0
Downloads
0
Favorites
ZZ_Ensign_Fibo_v2
//+------------------------------------------------------------------+
//| |
//| Copyright © 1999-2008, MetaQuotes Software Corp. |
//| http://www.metaquotes.ru |
//+------------------------------------------------------------------+
#property copyright "nen"
#property link "http://onix-trade.net/forum/index.php?s=&showtopic=118&view=findpost&p=69113"
//----
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Yellow
//---- indicator parameters
extern int minBars= 12;
extern int minSize=50;
//----
extern bool ExtFiboType=true;
extern bool ExtFiboDinamic=false;
extern bool ExtFiboStatic=false;
extern int ExtFiboStaticNum=2;
extern color ExtFiboS=Teal;
extern color ExtFiboD=Sienna;
// Ïåðåìåííûå äëÿ âèë Ýíäðþñà
extern int ExtPitchfork=0;
extern color ExtLinePitchfork=MediumBlue;
//-------------------------------------
// Ìàññèâû äëÿ ZigZag
// Ìàññèâ äëÿ îòðèñîâêè ZigZag
double zz[];
// Ìàññèâ ìèíèìóìîâ ZigZag
double zzL[];
// Ìàññèâ ìàêñèìóìîâ ZigZag
double zzH[];
// Ìàòðèöà äëÿ ïîèñêà èñ÷åçíóâøèõ áàðîâ afr - ìàññèâ çíà÷åíèé âðåìåíè ïÿòè ïîñëåäíèõ ôðàêòàëîâ è îòðèñîâêè äèíàìè÷åñêèõ è ñòàòè÷åñêèõ ôèá
// afrl - ìèíèìóìû, afrh - ìàêñèìóìû
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};
int cPoint=0,numOb;
bool afrm;
string nameObj;
// Ïåðåìåííûå èíäèêàòîðà ZigZag ïîäîáíîãî âñòðîåííîìó â Ensign
double si,di,lLast=0,hLast=0;
int fs,countBar;
int ai,bi,ai0,bi0;
datetime tai,tbi,ti;
bool fh=false,fl=false,fcount0;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
IndicatorBuffers(3);
//---- drawing settings
// ZigZag
SetIndexStyle(0,DRAW_SECTION);
SetIndexBuffer(0,zz);
SetIndexEmptyValue(0,0.0);
SetIndexBuffer(1,zzL);
SetIndexBuffer(2,zzH);
if (minSize!=0) {di=minSize*Point; countBar=minBars;}
if (ExtFiboDinamic || ExtFiboStatic)
{
if (Point*10==1) cPoint=1;
else if (Point*100==1) cPoint=2;
else if (Point*1000==1) cPoint=3;
else if (Point*10000==1) cPoint=4;
else if (Point*100000==1) cPoint=5;
}
if (ExtFiboStaticNum<2) ExtFiboStaticNum=2;
if (ExtFiboStaticNum>9) ExtFiboStaticNum=9;
//----
return(0);
}
//+------------------------------------------------------------------+
//| Äåèíèöèàëèçàöèÿ. Óäàëåíèå âñåõ òðåíäîâûõ ëèíèé è òåêñòîâûõ îáúåêòîâ
//+------------------------------------------------------------------+
int deinit()
{
ObjectDelete("fiboS1");ObjectDelete("fiboD1");ObjectDelete("pitchfork1");ObjectDelete("pmediana1");
return(0);
}
//********************************************************
// ÍÀ×ÀËÎ
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int start()
{
int i,n,cbi;
cbi=Bars-IndicatorCounted()-1;
//---------------------------------
for(i=cbi; i>=0; i--)
{
//-------------------------------------------------
// Óñòàíàâëèâàåì íà÷àëüíûå çíà÷åíèÿ ìèíèìóìà è ìàêñèìóìà áàðà
if (lLast==0) {lLast=Low[i];hLast=High[i];
}
// Îïðåäåëÿåì íàïðàâëåíèå òðåíäà äî ïåðâîé òî÷êè ñìåíû òðåíäà.
// Èëè äî òî÷êè íà÷àëà ïåðâîãî ëó÷à çà ëåâûì êðàåì.
if (fs==0)
{
if (lLast<Low[i] && hLast<High[i]) {fs=1; hLast=High[i]; si=High[i]; ai=i; tai=Time[i];} // òðåíä âîñõîäÿùèé
if (lLast>Low[i] && hLast>High[i]) {fs=2; lLast=Low[i]; si=Low[i]; bi=i; tbi=Time[i];} // òðåíä íèñõîäÿùèé
}
if (ti!=Time[i])
{
// çàïîìèíàåì çíà÷åíèå íàïðàâëåíèÿ òðåíäà fs íà ïðåäûäóùåì áàðå
ti=Time[i];
ai0=iBarShift(Symbol(),Period(),tai);
bi0=iBarShift(Symbol(),Period(),tbi);
fcount0=false;
if ((fh || fl) && countBar>0) {countBar--; if (i==0 && countBar==0) fcount0=true;
}
// Îñòàíîâêà. Îïðåäåëåíèå äàëüíåéøåãî íàïðàâëåíèÿ òðåíäà.
if (fs==1)
{
if (hLast>High[i] && !fh) fh=true;
if (i==0)
{
if (Close[i+1]<lLast && fh) {fs=2; afrm=true; countBar=minBars; fh=false;}
if (countBar==0 && si-di>Low[i+1] && High[i+1]<hLast && ai0>i+1 && fh && !fcount0) {fs=2; countBar=minBars; fh=false;
}
if (fs==2) // Òðåäí ñìåíèëñÿ ñ âîñõîäÿùåãî íà íèñõîäÿùèé íà ïðåäûäóùåì áàðå
{
zz[ai0]=High[ai0];
zzH[ai0]=High[ai0];
lLast=Low[i+1];
si=Low[i+1];
bi=i+1;
tbi=Time[i+1];
}
}
else
{
if (Close[i]<lLast && fh) {fs=2; afrm=true; countBar=minBars; fh=false;
}
if (countBar==0 && si-di>Low[i] && High[i]<hLast && fh) {fs=2; countBar=minBars; fh=false;
}
if (fs==2) // Òðåäí ñìåíèëñÿ ñ âîñõîäÿùåãî íà íèñõîäÿùèé
{
zz[ai]=High[ai];
zzH[ai]=High[ai];
lLast=Low[i];
si=Low[i];
bi=i;
tbi=Time[i];
}
}
}
else // fs==2
{
if (lLast<Low[i] && !fl) fl=true;
if (i==0)
{
if (Close[i+1]>hLast && fl) {fs=1; afrm=true; countBar=minBars; fl=false;
}
if (countBar==0 && si+di<High[i+1] && Low[i+1]>lLast && bi0>i+1 && fl && !fcount0) {fs=1; countBar=minBars; fl=false;
}
if (fs==1) // Òðåäí ñìåíèëñÿ ñ íèñõîäÿùåãî íà âîñõîäÿùèé íà ïðåäûäóùåì áàðå
{
zzL[bi0]=Low[bi0];
zz[bi0]=Low[bi0];
hLast=High[i+1];
si=High[i+1];
ai=i+1;
tai=Time[i+1];
}
}
else
{
if (Close[i]>hLast && fl) {fs=1; afrm=true; countBar=minBars; fl=false;
}
if (countBar==0 && si+di<High[i] && Low[i]>lLast && fl) {fs=1; countBar=minBars; fl=false;
}
if (fs==1) // Òðåäí ñìåíèëñÿ ñ íèñõîäÿùåãî íà âîñõîäÿùèé
{
zz[bi]=Low[bi];
zzL[bi]=Low[bi];
hLast=High[i];
si=High[i];
ai=i;
tai=Time[i];
}
}
}
}
// Ïðîäîëæåíèå òðåíäà
if (fs==1 && High[i]>si) {ai=i; tai=Time[i]; afrm=true; hLast=High[i]; si=High[i]; countBar=minBars; fh=false;
}
if (fs==2 && Low[i]<si) {bi=i; tbi=Time[i]; afrm=true; lLast=Low[i]; si=Low[i]; countBar=minBars; fl=false;
}
//===================================================================================================
// Íóëåâîé áàð. Ðàñ÷åò ïåðâîãî ëó÷à ZigZag-a
if (i==0)
{
ai0=iBarShift(Symbol(),Period(),tai);
bi0=iBarShift(Symbol(),Period(),tbi);
//----
if (fs==1) {for(n=bi0-1; n>=0; n--) {zzH[n]=0; zz[n]=0;} zz[ai0]=High[ai0]; zzH[ai0]=High[ai0]; zzL[ai0]=0;
}
if (fs==2) {for(n=ai0-1; n>=0; n--) {zzL[n]=0; zz[n]=0;} zz[bi0]=Low[bi0]; zzL[bi0]=Low[bi0]; zzH[bi0]=0;
}
// if (fs==1) { for (n=bi0-1; n>0; n--) {zz[n]=0;} zz[ai0]=High[ai0];}
// if (fs==2) {for (n=ai0-1; n>0; n--) {zz[n]=0;} zz[bi0]=Low[bi0];}
}
//====================================================================================================
}
matriza();
}
//--------------------------------------------------------
// Ôîðìèðîâàíèå ìàòðèöû. Íà÷àëî.
// Ìàòðèöà èñïîëüçóåòñÿ äëÿ ïîèñêà èñ÷åçíóâøèõ ôðàêòàëîâ.
// Ýòî èíñòðóìåíò êîìïåíñàöèè íåïðåäâèäåííûõ çàêèäîíîâ ñòàíäàðòíîãî ZigZag-a.
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void matriza()
{
if (afrm && (ExtFiboStatic || ExtFiboDinamic || ExtPitchfork>0))
{
int shift,k,k1;
double ab2,ac2,bc2;
datetime tab2,tac2,tbc2;
k=0;
for(shift=0; shift<Bars && k<10; shift++)
{
if (zz[shift]>0)
{
afr[k]=Time[shift];
if (zz[shift]==zzL[shift]) {afrl[k]=Low[shift]; afrh[k]=0.0;}
if (zz[shift]==zzH[shift]) {afrh[k]=High[shift]; afrl[k]=0.0;}
k++;
}
}
afrm=false;
// Âûâîä ñòàòè÷åñêèõ è äèíàìè÷åñêèõ ôèá.
if (ExtFiboStatic)
{
ExtFiboStatic=false;
screenFiboS();
}
if (ExtFiboDinamic)
{
screenFiboD();
}
if (ExtPitchfork>0)
{
// nameObj="pf" + Period() + "_" + afr[3];
nameObj="pitchfork1";
numOb=ObjectFind(nameObj);
if (numOb>-1) ObjectDelete(nameObj);
if (afrl[3]>0)
{
ObjectCreate(nameObj,OBJ_PITCHFORK,0,afr[3],afrl[3],afr[2],afrh[2],afr[1],afrl[1]);
}
else
{
ObjectCreate(nameObj,OBJ_PITCHFORK,0,afr[3],afrh[3],afr[2],afrl[2],afr[1],afrh[1]);
}
ObjectSet(nameObj,OBJPROP_STYLE,STYLE_SOLID);
ObjectSet(nameObj,OBJPROP_COLOR,ExtLinePitchfork);
//----
if (ExtPitchfork==2)
{
k1=MathCeil((iBarShift(Symbol(),Period(),afr[3])+iBarShift(Symbol(),Period(),afr[2]))/2);
tab2=Time[k1];
k1=MathCeil((iBarShift(Symbol(),Period(),afr[2])+iBarShift(Symbol(),Period(),afr[1]))/2);
tbc2=Time[k1];
k1=MathCeil((iBarShift(Symbol(),Period(),afr[3])+iBarShift(Symbol(),Period(),afr[1]))/2);
tac2=Time[k1];
// nameObj="pm" + Period() + "_" + afr[3];
nameObj="pmediana1";
numOb=ObjectFind(nameObj);
if (numOb>-1) ObjectDelete(nameObj);
if (afrl[3]>0)
{
ObjectCreate(nameObj,OBJ_TREND,0,tab2,(afrl[3]+afrh[2])/2,tbc2,(afrh[2]+afrl[1])/2);
}
else
{
ObjectCreate(nameObj,OBJ_TREND,0,tab2,(afrh[3]+afrl[2])/2,tbc2,(afrl[2]+afrh[1])/2);
}
ObjectSet(nameObj,OBJPROP_STYLE,STYLE_DASH);
ObjectSet(nameObj,OBJPROP_COLOR,ExtLinePitchfork);
}
}
}
return ;
}
//--------------------------------------------------------
// Ôîðìèðîâàíèå ìàòðèöû. Êîíåö.
//--------------------------------------------------------
//--------------------------------------------------------
// Âûâîä ôèá ñòàòè÷åñêèõ. Íà÷àëî.
//--------------------------------------------------------
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void screenFiboS()
{
double fibo_0, fibo_100, fiboPrice, fiboPrice1;
//----
nameObj="fiboS1";
numOb=ObjectFind(nameObj);
if (numOb>-1) ObjectDelete(nameObj);
if (afrl[ExtFiboStaticNum-1]>0)
{
fibo_0=afrh[ExtFiboStaticNum];fibo_100=afrl[ExtFiboStaticNum-1];
fiboPrice=afrh[ExtFiboStaticNum]-afrl[ExtFiboStaticNum-1];fiboPrice1=afrl[ExtFiboStaticNum-1];
}
else
{
fibo_0=afrl[ExtFiboStaticNum];fibo_100=afrh[ExtFiboStaticNum-1];
fiboPrice=afrl[ExtFiboStaticNum]-afrh[ExtFiboStaticNum-1];fiboPrice1=afrh[ExtFiboStaticNum-1];
}
ObjectCreate(nameObj,OBJ_FIBO,0,afr[2],fibo_0,afr[1],fibo_100);
ObjectSet(nameObj,OBJPROP_LEVELSTYLE,STYLE_DOT);
ObjectSet(nameObj,OBJPROP_LEVELCOLOR,ExtFiboS);
//----
if (ExtFiboType)
{
ObjectSet(nameObj,OBJPROP_FIBOLEVELS,18);
fibo_patterns(fiboPrice, fiboPrice1);
}
else
{
ObjectSet(nameObj,OBJPROP_FIBOLEVELS,11);
fibo_standart (fiboPrice, fiboPrice1);
}
//----
return ;
}
//--------------------------------------------------------
// Âûâîä ôèá ñòàòè÷åñêèõ. Êîíåö.
//--------------------------------------------------------
//--------------------------------------------------------
// Âûâîä ôèá äèíàìè÷åñêèõ. Íà÷àëî.
//--------------------------------------------------------
void screenFiboD()
{
double fibo_0, fibo_100, fiboPrice, fiboPrice1;
//----
nameObj="fiboD1";
numOb=ObjectFind(nameObj);
if (numOb>-1) ObjectDelete(nameObj);
if (afrh[1]>0) {fibo_0=afrh[1];fibo_100=afrl[0];fiboPrice=afrh[1]-afrl[0];fiboPrice1=afrl[0];}
else {fibo_0=afrl[1];fibo_100=afrh[0];fiboPrice=afrl[1]-afrh[0];fiboPrice1=afrh[0];}
//----
ObjectCreate(nameObj,OBJ_FIBO,0,afr[2],fibo_0,afr[1],fibo_100);
ObjectSet(nameObj,OBJPROP_LEVELSTYLE,STYLE_DOT);
ObjectSet(nameObj,OBJPROP_LEVELCOLOR,ExtFiboD);
if (ExtFiboType)
{
ObjectSet(nameObj,OBJPROP_FIBOLEVELS,18);
fibo_patterns(fiboPrice, fiboPrice1);
}
else
{
ObjectSet(nameObj,OBJPROP_FIBOLEVELS,14);
fibo_standart (fiboPrice, fiboPrice1);
}
//----
return ;
}
//--------------------------------------------------------
// Âûâîä ôèá äèíàìè÷åñêèõ. Êîíåö.
//--------------------------------------------------------
//--------------------------------------------------------
// Ôèáû ñ ïàòòåðíàìè. Íà÷àëî.
//--------------------------------------------------------
void fibo_patterns(double fiboPrice,double fiboPrice1)
{
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL,0);
ObjectSetFiboDescription(nameObj, 0, "0 --> "+DoubleToStr(fiboPrice1, cPoint) );
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+1,0.382);
ObjectSetFiboDescription(nameObj, 1, "38.2 --> "+DoubleToStr(fiboPrice*0.382+fiboPrice1, cPoint) );
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+2,0.5);
ObjectSetFiboDescription(nameObj, 2, "50.0 --> "+DoubleToStr(fiboPrice*0.5+fiboPrice1, cPoint) );
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+3,0.618);
ObjectSetFiboDescription(nameObj, 3, "61.8 --> "+DoubleToStr(fiboPrice*0.618+fiboPrice1, cPoint) );
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+4,0.707);
ObjectSetFiboDescription(nameObj, 4, "70.7 --> "+DoubleToStr(fiboPrice*0.707+fiboPrice1, cPoint) );
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+5,0.786);
ObjectSetFiboDescription(nameObj, 5, "78.6 --> "+DoubleToStr(fiboPrice*0.786+fiboPrice1, cPoint) );
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+6,0.841);
ObjectSetFiboDescription(nameObj, 6, "84.1 --> "+DoubleToStr(fiboPrice*0.841+fiboPrice1, cPoint) );
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+7,0.886);
ObjectSetFiboDescription(nameObj, 7, "88.6 --> "+DoubleToStr(fiboPrice*0.886+fiboPrice1, cPoint) );
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+8,1.0);
ObjectSetFiboDescription(nameObj, 8, "100.0 --> "+DoubleToStr(fiboPrice+fiboPrice1, cPoint) );
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+9,1.127);
ObjectSetFiboDescription(nameObj, 9, "112.8 --> "+DoubleToStr(fiboPrice*1.128+fiboPrice1, cPoint) );
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+10,1.272);
ObjectSetFiboDescription(nameObj, 10, "127.2 --> "+DoubleToStr(fiboPrice*1.272+fiboPrice1, cPoint) );
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+11,1.414);
ObjectSetFiboDescription(nameObj, 11, "141.4 --> "+DoubleToStr(fiboPrice*1.414+fiboPrice1, cPoint) );
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+12,1.618);
ObjectSetFiboDescription(nameObj, 12, "161.8 --> "+DoubleToStr(fiboPrice*1.618+fiboPrice1, cPoint) );
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+13,2.0);
ObjectSetFiboDescription(nameObj, 13, "200.0 --> "+DoubleToStr(fiboPrice*2.0+fiboPrice1, cPoint) );
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+14,2.414);
ObjectSetFiboDescription(nameObj, 14, "241.4 --> "+DoubleToStr(fiboPrice*2.414+fiboPrice1, cPoint) );
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+15,2.618);
ObjectSetFiboDescription(nameObj, 15, "261.8 --> "+DoubleToStr(fiboPrice*2.618+fiboPrice1, cPoint) );
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+16,4.236);
ObjectSetFiboDescription(nameObj, 16, "423.6 --> "+DoubleToStr(fiboPrice*4.236+fiboPrice1, cPoint) );
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+17,6.854);
ObjectSetFiboDescription(nameObj, 17, "685.4 --> "+DoubleToStr(fiboPrice*6.854+fiboPrice1, cPoint) );
//----
return ;
}
//--------------------------------------------------------
// Ôèáû ñ ïàòòåðíàìè. Êîíåö.
//--------------------------------------------------------
//--------------------------------------------------------
// Ôèáû ñòàíäàðòíûå. Íà÷àëî.
//--------------------------------------------------------
void fibo_standart(double fiboPrice,double fiboPrice1)
{
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL,0);
ObjectSetFiboDescription(nameObj, 0, "0 --> "+DoubleToStr(fiboPrice1, cPoint) );
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+1,0.146);
ObjectSetFiboDescription(nameObj, 1, "14.6 --> "+DoubleToStr(fiboPrice*0.146+fiboPrice1, cPoint) );
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+2,0.236);
ObjectSetFiboDescription(nameObj, 2, "23.6 --> "+DoubleToStr(fiboPrice*0.236+fiboPrice1, cPoint) );
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+3,0.382);
ObjectSetFiboDescription(nameObj, 3, "38.2 --> "+DoubleToStr(fiboPrice*0.382+fiboPrice1, cPoint) );
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+4,0.5);
ObjectSetFiboDescription(nameObj, 4, "50.0 --> "+DoubleToStr(fiboPrice*0.5+fiboPrice1, cPoint) );
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+5,0.618);
ObjectSetFiboDescription(nameObj, 5, "61.8 --> "+DoubleToStr(fiboPrice*0.618+fiboPrice1, cPoint) );
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+6,0.764);
ObjectSetFiboDescription(nameObj, 6, "76.4 --> "+DoubleToStr(fiboPrice*0.764+fiboPrice1, cPoint) );
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+7,0.854);
ObjectSetFiboDescription(nameObj, 7, "85.4 --> "+DoubleToStr(fiboPrice*0.854+fiboPrice1, cPoint) );
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+8,1.0);
ObjectSetFiboDescription(nameObj, 8, "100.0 --> "+DoubleToStr(fiboPrice+fiboPrice1, cPoint) );
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+9,1.236);
ObjectSetFiboDescription(nameObj, 9, "1.236 --> "+DoubleToStr(fiboPrice*1.236+fiboPrice1, cPoint) );
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+10,1.618);
ObjectSetFiboDescription(nameObj, 10, "161.8 --> "+DoubleToStr(fiboPrice*1.618+fiboPrice1, cPoint) );
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+11,2.618);
ObjectSetFiboDescription(nameObj, 11, "261.8 --> "+DoubleToStr(fiboPrice*2.618+fiboPrice1, cPoint) );
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+12,4.236);
ObjectSetFiboDescription(nameObj, 12, "423.6 --> "+DoubleToStr(fiboPrice*4.236+fiboPrice1, cPoint) );
ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+13,6.854);
ObjectSetFiboDescription(nameObj, 13, "685.4 --> "+DoubleToStr(fiboPrice*6.854+fiboPrice1, cPoint) );
//----
return ;
}
//--------------------------------------------------------
// Ôèáû ñòàíäàðòíûå. Êîíåö.
//--------------------------------------------------------
Comments
Markdown Formatting Guide
# H1
## H2
### H3
**bold text**
*italicized text*
[title](https://www.example.com)

`code`
```
code block
```
> blockquote
- Item 1
- Item 2
1. First item
2. Second item
---