Miscellaneous
0
Views
0
Downloads
0
Favorites
PriceSound_FIBOFAN
//+------------------------------------------------------------------+
//| PriceSound_FIBOFAN.mq4 |
//| Roll |
//| Ôèáîâååð ñî çâóêîì. |
//+------------------------------------------------------------------+
#property copyright "Roll"
#property link "http://www.mql4.com/ru/users/Roll"
#property indicator_chart_window
/* Èñòî÷íèêè: 1)- èíäèêàòîð PriceAlert(v.1.1)îò api(http://codebase.mql4.com/download/17987).
Èíäèêàòîð PriceAlert ðàáîòàåò ñ ãîðèçîíòàëüíîé(ìè)ëèíèåé(ìè).
"Èíäèêàòîð àâòîìàòè÷åñêè îïðåäåëÿåò ìîìåíò ïåðåñå÷åíèÿ öåíîé ëèíèè è àêòèâèçèðóåò ñèãíàë"(api).
2)- Èíäèêàòîð PriceSound_trendline(http://codebase.mql4.com/ru/7601).Ðàáîòàåò â òåñòåðå.
Èíäèêàòîð PriceSound_trendline ðàáîòàåò ñ òðåíäîâîé(ìè) ëèíèåé(ìè).
Äëÿ ñèãíàëà ïðåäïî÷òåíèå îòäàåòñÿ çâóêó,ïîýòîìó çâóêîâîé ôàéë äîëæåí áûòü èíäèâèäóàëüíûì è
ïðîäîëæèòåëüíîñòüþ ïðîèãðûâàíèÿ íåñêîëüêî ñåêóíä.Íà ãðàôèêå ìîæåò íàõîäèòñÿ íåñêîëüêî
òàêèõ òðåíäîâûõ ëèíèé ñ ðàçëè÷íûìè íàçâàíèÿìè(íåñêîëüêî èíäèêàòîðîâ PriceSound_trendline).
Çàìå÷àíèå: Âî âðåìÿ çàïóñêà èíäèêàòîðû PriceSound_...(PriceSound_trendline,PriceSound_channel,
PriceSound_Fibochannel,PriceSound_Fibolevels,PriceSound_FIBOFAN)óñòàíàâëèâàþò èëè ïðåäëàãàþò óñòàíîâèòü"ñâîè"îáúåêòû(ïî óìîë÷àíèþ),
Åñëè ïîëüçîâàòåëü ñîãëàñåí (ñì.âíåøíèå ïåðåìåííûå),òî"îáúåêò"óñòàíàâëèâàåòñÿ íåìíîãî âûøå ðûíêà.
Äàëåå îáúåêò ïîëüçîâàòåëåì âûäåëÿåòñÿ è ïåðåìåùàåòñÿ(D&d),íàïðèìåð,äëÿ ïîñòðîåíèÿ ëèíèé ïîääåðæêè/ñîïðîòèâëåíèÿ è ò.ï.
================================================================
PriceSound_FIBOFAN ðàáîòàåò ñ îáúåêòîì "âååð Ôèáîíà÷÷è"(OBJ_FIBOFAN),êîòîðûé íà ôèáî-ëèíèÿõ
ïåðåìåùàåò ÷åòûðå òðåíäîâûõ ëèíèé ñî ñâîéñòâàìè èíäèêàòîðà PriceSound_trendline.
PriceSound_FIBOFAN ðàáîòàåò â òåñòåðå.
================================================================
*/
extern bool Sound_Play=true; //ðàçðåøåíèå íà çâóê
extern string UniqueName1="Fibofan38_1";//íàçâàíèå 1 òðåíäîâîé ëèíèè
extern color LineColor1=Magenta; //öâåò 1 ëèíèè
extern int LineWidth1=2; //øèðèíà 1 ëèíèè
extern string Sound1="connect.wav"; //íàçâàíèå çâóêîâîãî ôàéëà äëÿ 1 òðåíäîâîé ëèíèè
extern string UniqueName2="Fibofan50_1";//íàçâàíèå 2 òðåíäîâîé ëèíèè
extern color LineColor2=Gold; //öâåò 2 ëèíèè
extern int LineWidth2=2; //øèðèíà 2 ëèíèè
extern string Sound2="news.wav"; //íàçâàíèå çâóêîâîãî ôàéëà äëÿ 2 òðåíäîâîé ëèíèè
extern string UniqueName3="Fibofan62_1";//íàçâàíèå 3 òðåíäîâîé ëèíèè
extern color LineColor3=Pink; //öâåò 3 ëèíèè
extern int LineWidth3=2; //øèðèíà 3 ëèíèè
extern string Sound3="connect.wav"; //íàçâàíèå çâóêîâîãî ôàéëà äëÿ 3 òðåíäîâîé ëèíèè
extern string UniqueName4="Fibofan70_1";//íàçâàíèå 4 òðåíäîâîé ëèíèè
extern color LineColor4=YellowGreen; //öâåò 4 ëèíèè
extern int LineWidth4=2; //øèðèíà 4 ëèíèè
extern string Sound4="news.wav"; //íàçâàíèå çâóêîâîãî ôàéëà äëÿ 4 òðåíäîâîé ëèíèè
extern bool Ind_levels=false; //ðàçðåøåíèå/çàïðåò èíäèêàöèè óðîâíåé Ôèáîâååðà
extern int DistPips=0; //Åñëè ìåíüøå 10-àâò.óñòàíîâêà.Ðåãóëèðîâêà ðàññòîÿíèÿ îò èçîáðàæåíèÿ ÷èñëà ïóíêòîâ äî ñîîòâ.ïðÿìîé
extern color FIBOFANlevelColor=YellowGreen;//öâåò óðîâíåé Ôèáîâååðà
extern bool Create_FIBOFAN=true; //ðàçðåøåíèå/çàïðåò íà îáðàçîâàíèå OBJ_FIBOFAN (Ôèáîâååðà)
extern string Name_FIBOFAN="FIBOFAN_1"; //íàçâàíèå OBJ_FIBOFAN (Ôèáîâååðà)
extern bool Del_FIBOFAN=false; //çàïðåò/ðàçðåøåíèå íà óäàëåíèå çàäàííîãî OBJ_FIBOFAN (Ôèáîâååðà)
int ArrShift;bool Active;string PipsTextName;double LastLevel,LastPrice,TradePoint;
static double lastLevel_38,lastLevel_50,lastLevel_62,lastLevel_70,lastPrice_38,lastPrice_50,lastPrice_62,lastPrice_70;
int init()
{if(Digits==3||Digits==5)TradePoint=Point*10;else TradePoint=Point;LastLevel=0;LastPrice=0;
lastLevel_38=0;lastLevel_50=0;lastLevel_62=0;lastLevel_70=0;
lastPrice_38=0;lastPrice_50=0;lastPrice_62=0;lastPrice_70=0;Active=true;return(0);}
int deinit()
{if(UninitializeReason()==REASON_REMOVE){ObjectDelete(Name_FIBOFAN);
ObjectDelete(UniqueName1);PipsTextName=UniqueName1+" Pips";ObjectDelete(PipsTextName);
ObjectDelete(UniqueName2);PipsTextName=UniqueName2+" Pips";ObjectDelete(PipsTextName);
ObjectDelete(UniqueName3);PipsTextName=UniqueName3+" Pips";ObjectDelete(PipsTextName);
ObjectDelete(UniqueName4);PipsTextName=UniqueName4+" Pips";ObjectDelete(PipsTextName);
lastLevel_38=0;lastLevel_50=0;lastLevel_62=0;lastLevel_70=0;
lastPrice_38=0;lastPrice_50=0;lastPrice_62=0;lastPrice_70=0;}return(0);}
//+--------Custom indicator iteration function------------------+
int start()
{datetime c0,c2,cc0,cc2;double c1,c3,a,b,cp,cp2;
switch(Period())
{case PERIOD_M1: if(Period()==PERIOD_M1) {ArrShift=10; break;}
case PERIOD_M5: if(Period()==PERIOD_M5) {ArrShift=12; break;}
case PERIOD_M15:if(Period()==PERIOD_M15){ArrShift=15; break;}
case PERIOD_M30:if(Period()==PERIOD_M30){ArrShift=30; break;}
case PERIOD_H1: if(Period()==PERIOD_H1) {ArrShift=50; break;}
case PERIOD_H4: if(Period()==PERIOD_H4) {ArrShift=100; break;}
case PERIOD_D1: if(Period()==PERIOD_D1) {ArrShift=200; break;}
case PERIOD_W1: if(Period()==PERIOD_W1) {ArrShift=500; break;}
case PERIOD_MN1:if(Period()==PERIOD_MN1){ArrShift=1000;break;}}
if(Del_FIBOFAN)
{if(ObjectFind(UniqueName1)==0)PriceSound_trendline(UniqueName1,LineColor1,Sound1,ArrShift,lastLevel_38,lastPrice_38);
if(ObjectFind(UniqueName2)==0)PriceSound_trendline(UniqueName2,LineColor2,Sound2,ArrShift,lastLevel_50,lastPrice_50);
if(ObjectFind(UniqueName3)==0)PriceSound_trendline(UniqueName3,LineColor3,Sound3,ArrShift,lastLevel_62,lastPrice_62);
if(ObjectFind(UniqueName4)==0)PriceSound_trendline(UniqueName4,LineColor4,Sound4,ArrShift,lastLevel_70,lastPrice_70);
if(ObjectFind(Name_FIBOFAN)==0)ObjectDelete(Name_FIBOFAN);return(0);}
if(ObjectFind(Name_FIBOFAN)!=0&&Create_FIBOFAN)
{cp=Close[0]+(10+ArrShift)*TradePoint;cp2=cp+ArrShift*TradePoint;
ObjectCreate(Name_FIBOFAN,OBJ_FIBOFAN,0,Time[25],cp,Time[0],cp2);}
else if((ObjectFind(Name_FIBOFAN)==0&&!Create_FIBOFAN)||ObjectFind(Name_FIBOFAN)==0)
{ObjectSet(Name_FIBOFAN,OBJPROP_COLOR,DarkTurquoise);ObjectSet(Name_FIBOFAN,OBJPROP_STYLE,1);
if(Ind_levels)
{ObjectSet(Name_FIBOFAN,OBJPROP_FIBOLEVELS,4);ObjectSet(Name_FIBOFAN,OBJPROP_FIRSTLEVEL,0.382);
ObjectSet(Name_FIBOFAN,OBJPROP_FIRSTLEVEL+1,0.50);ObjectSet(Name_FIBOFAN,OBJPROP_FIRSTLEVEL+2,0.618);
ObjectSet(Name_FIBOFAN,OBJPROP_FIRSTLEVEL+3,0.70);ObjectSetFiboDescription(Name_FIBOFAN,0,"38");
ObjectSetFiboDescription(Name_FIBOFAN,1,"50");ObjectSetFiboDescription(Name_FIBOFAN,2,"62");
ObjectSetFiboDescription(Name_FIBOFAN,3,"70");}else if(!Ind_levels)ObjectSet(Name_FIBOFAN,OBJPROP_FIBOLEVELS,1);
ObjectSet(Name_FIBOFAN,OBJPROP_LEVELCOLOR,FIBOFANlevelColor);c0=ObjectGet(Name_FIBOFAN,0);
c1=ObjectGet(Name_FIBOFAN,1);c2=ObjectGet(Name_FIBOFAN,2);c3=ObjectGet(Name_FIBOFAN,3);}
else if(ObjectFind(Name_FIBOFAN)!=0){Alert("No FIBOFAN - ",Name_FIBOFAN," !");return(0);}
a=c3-c1;cc0=c0;cc2=c2;
if(ObjectFind(UniqueName1)!=0){b=c3-0.382*a;
ObjectCreate(UniqueName1,OBJ_TREND,0,cc0,c1,cc2,b);ObjectSetText(UniqueName1,"Price alert Fibofan 1",0);
ObjectSet(UniqueName1,OBJPROP_COLOR,LineColor1);ObjectSet(UniqueName1,OBJPROP_WIDTH,LineWidth1);}
if(ObjectFind(UniqueName1)==0){b=c3-0.382*a;ObjectMove(UniqueName1,0,cc0,c1);
ObjectMove(UniqueName1,1,cc2,b);ObjectSet(UniqueName1,OBJPROP_WIDTH,LineWidth1);
PriceSound_trendline(UniqueName1,LineColor1,Sound1,ArrShift,lastLevel_38,lastPrice_38);}
if(ObjectFind(UniqueName2)!=0){b=c3-0.5*a;
ObjectCreate(UniqueName2,OBJ_TREND,0,cc0,c1,cc2,b);ObjectSetText(UniqueName2,"Price alert Fibofan 2",0);
ObjectSet(UniqueName2,OBJPROP_COLOR,LineColor2);ObjectSet(UniqueName2,OBJPROP_WIDTH,LineWidth2);}
if(ObjectFind(UniqueName2)==0){b=c3-0.5*a;ObjectMove(UniqueName2,0,cc0,c1);
ObjectMove(UniqueName2,1,cc2,b);ObjectSet(UniqueName2,OBJPROP_WIDTH,LineWidth2);
PriceSound_trendline(UniqueName2,LineColor2,Sound2,ArrShift,lastLevel_50,lastPrice_50);}
if(ObjectFind(UniqueName3)!=0){b=c3-0.618*a;
ObjectCreate(UniqueName3,OBJ_TREND,0,cc0,c1,cc2,b);ObjectSetText(UniqueName3,"Price alert Fibofan 3",0);
ObjectSet(UniqueName3,OBJPROP_COLOR,LineColor3);ObjectSet(UniqueName3,OBJPROP_WIDTH,LineWidth3);}
if(ObjectFind(UniqueName3)==0){b=c3-0.618*a;ObjectMove(UniqueName3,0,cc0,c1);
ObjectMove(UniqueName3,1,cc2,b);ObjectSet(UniqueName3,OBJPROP_WIDTH,LineWidth3);
PriceSound_trendline(UniqueName3,LineColor3,Sound3,ArrShift,lastLevel_62,lastPrice_62);}
if(ObjectFind(UniqueName4)!=0){b=c3-0.7*a;
ObjectCreate(UniqueName4,OBJ_TREND,0,cc0,c1,cc2,b);ObjectSetText(UniqueName4,"Price alert Fibofan 4",0);
ObjectSet(UniqueName4,OBJPROP_COLOR,LineColor4);ObjectSet(UniqueName4,OBJPROP_WIDTH,LineWidth4);}
if(ObjectFind(UniqueName4)==0){b=c3-0.7*a;ObjectMove(UniqueName4,0,cc0,c1);
ObjectMove(UniqueName4,1,cc2,b);ObjectSet(UniqueName4,OBJPROP_WIDTH,LineWidth4);
PriceSound_trendline(UniqueName4,LineColor4,Sound4,ArrShift,lastLevel_70,lastPrice_70);}return(0);}
//+-------------------------------------------------------------+
void PriceSound_trendline(string UniqueName,color LineColor,string Sound,int arrShift,double lastLevel,double lastPrice)
{PipsTextName=StringConcatenate(UniqueName," ","Pips");if(DistPips>=10)ArrShift=DistPips;else ArrShift=arrShift;
LastLevel=lastLevel;LastPrice=lastPrice;
if(ObjectFind(PipsTextName)==-1){double cp=LastLevel;if(cp==0)cp=LastLevel+(10+ArrShift)*TradePoint;
ObjectCreate(PipsTextName,OBJ_TEXT,0,Time[0],cp);}
ObjectSet(PipsTextName,OBJPROP_TIME1,Time[0]);double newlevel=ObjectGetValueByShift(UniqueName,0);
if(Active){ObjectSet(UniqueName,OBJPROP_COLOR,LineColor);ObjectSetText(UniqueName,"Price sound Fibofan - Active",0);
double Pips=MathAbs(NormalizeDouble((newlevel-Close[0])/TradePoint,Digits));
if(Digits==3||Digits==5)ObjectSetText(PipsTextName,DoubleToStr(Pips,1),14,"Terminal",LineColor);
else ObjectSetText(PipsTextName,DoubleToStr(Pips,0),14,"Terminal",LineColor);}
if(Close[0]>newlevel)ObjectSet(PipsTextName,OBJPROP_PRICE1,newlevel-ArrShift*TradePoint);
if(Close[0]<newlevel)ObjectSet(PipsTextName,OBJPROP_PRICE1,newlevel+ArrShift*TradePoint);
if(LastLevel!=newlevel){LastLevel=newlevel;LastPrice=0;
ObjectSetText(UniqueName,"Price sound Fibofan - Active",0);Active=true;}
if(Active&&LastPrice!=0&&((LastPrice<LastLevel&&Close[0]>=LastLevel)||(LastPrice>LastLevel&&Close[0]<=LastLevel)))
{if(Sound_Play)PlaySound(Sound);else Active=false;ObjectSetText(PipsTextName,"",14,"Terminal",LineColor);
ObjectSetText(UniqueName,"Price sound Fibofan - Inactive",0);ObjectSet(UniqueName,OBJPROP_COLOR,Blue);}
if(UniqueName==UniqueName1){lastLevel_38=LastLevel;lastPrice_38=Close[0];}
if(UniqueName==UniqueName2){lastLevel_50=LastLevel;lastPrice_50=Close[0];}
if(UniqueName==UniqueName3){lastLevel_62=LastLevel;lastPrice_62=Close[0];}
if(UniqueName==UniqueName4){lastLevel_70=LastLevel;lastPrice_70=Close[0];}}
//+-------------------------------------------------------------+
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
---