XMA
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «!!!-mt4 xma.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор XMA для MetaTrader 4 — комплексный аналитический инструмент, отображающий на графике несколько скользящих средних, информационные панели и светофор торговых сигналов. Он рассчитывает линии ценовой динамики, зоны поддержки и сопротивления, а также интегрирует стохастик для формирования визуальных сигналов о возможных точках входа.
Индикатор отображает три основных типа линий (ценовую, циклическую и трендовую) и дополнительные буферы, которые можно включать или отключать через настройки. Визуальная информация включает текстовые метки с текущими данными по цене, спреду, дневным максимумам и минимумам.
Система уведомлений поддерживает всплывающие окна, звуковые и push-уведомления при смене сигнала. Светофор сигналов (BUY/SELL/WAIT) позволяет быстро оценить текущую рыночную ситуацию без глубокого анализа графика.
Настройки программы
| Настройка | Описание |
|---|---|
| KPeriod | Период быстрой линии стохастика, используемый для определения торговых сигналов индикатора. |
| showInfoText | Включает или отключает отображение текстовой информации о текущем сигнале на графике. |
| placeInfoTextInWindow | Номер окна, в котором размещается информационный текстовый блок индикатора. |
| moveInfoBoxUpDown | Вертикальное смещение информационного блока на графике в пикселях. |
| showTRAFFICLIGHT | Включает или отключает отображение светофора торговых сигналов на графике. |
| alertsOn | Включает или отключает отправку уведомлений при смене торгового сигнала. |
Поиск по коду файла
#property indicator_chart_window
#property indicator_buffers 19
extern int KPeriod=34,DPeriod=13,Slowing=2;
extern bool showBands=TRUE; int BarsCount=1700,maPeriod=180;
double maxCH=0.,minCH=0.,Inc1=0.,Inc2=0.,Inc3=0.; double Res1[],Sup1[],Res2[],Sup2[];
extern bool showInfoText=true,showLargeText=true,showInfoBox=true;
extern int placeInfoTextInWindow=0;
extern int moveInfoBoxUpDown=30,moveInfoBoxLeftRight=0,movePriceSideways=0,movePriceUpDown=0;
extern bool showTRAFFICLIGHT=TRUE,showTimer=TRUE,DrawYdayHighLow=false;
extern bool alertsOn=false,alertsOnCurrent=true,alertsmsg=false,alertsSound=false,alertsNotify=false;
double Priceline[],Pricelineb[],Breakline[],Breaklineb[],Cycleline[],Cyclelineb[],StocBuffer[];
double Trendline[],Trendlineb[],MiddleI[],MiddleII[],Slope[],MiddleX[],MiddleXX[],SlopeX[],trend[];
string TimeFrame="Current time frame",SymbolPair="",ID="XMA",indicatorFileName;
color PanelBgd=clrBlack,PriceCol,txt1col,txt2col,txt3col,Boxbgd=C'10,20,30',Panelcol=C'40,50,60';
string FontType="Arial Black",txt1,txt2,txt3,txtX,strMAType;
double DecNos,myPoint,mPoint,data1;
double SetPoint() {if(Digits< 4) mPoint= 0.01; else mPoint= 0.0001; return(mPoint);}
int tmp,sec,min,hor,barTime,curTime,per,TimeStart,TimeFinish,slopebars=1;
string cTime, sHor, sMin, sSec, sper;
int window,FontSize=11,FontSize2=12,timeFrame,previous,pipsize;
int pos_sideways=0,pos_updown=-20,text_size=19;
color textcolUP=C'40,50,60',textcolDN=C'40,50,60',textcolWT=C'40,50,60',Panetpgd2=C'40,50,60';
#define RedLight -1
#define OverBoughtLight 0
#define OverSoldLight 1
#define GreenLight 2
#define OrangeLight 3
#define PowerFailure -999
color PanelBgd1=C'10,20,30',PanelBgd2=C'20,30,40',PanelBgd3=C'40,50,60';
int Corner=1,Window=0; bool showSignalLight=true;
extern bool Indicator_On=true; bool Deinitialized; int ChartScale,Width1,Width2,Width3,Width4,Width5;
int init() {
// код доступен только после оплаты
}
int deinit() {maxCH=0; minCH=0; return(0);}
int start() {
// код доступен только после оплаты
}if(!Indicator_On){if(!Deinitialized) {deinit(); Deinitialized=true;} return(0);}
int i,limit,counted_bars=IndicatorCounted(); if(counted_bars>0) counted_bars--; limit=Bars-counted_bars;
for(i=limit; i>=0; i--) Priceline[i]=iMA(NULL,0,2,0,MODE_LWMA,PRICE_CLOSE,i);
for(i=limit; i>=0; i--) Pricelineb[i]=Priceline[i];
for(i=limit; i>=0; i--) Breakline[i]=iMAOnArray(Priceline,Bars,18,0,MODE_LWMA,i);
for(i=limit; i>=0; i--) Breaklineb[i]=Breakline[i];
for(i=limit; i>=0; i--) Cycleline[i]=iMAOnArray(Breakline,Bars,34,0,MODE_LWMA,i);
for(i=limit; i>=0; i--) Cyclelineb[i]=Cycleline[i];
for(i=limit; i>=0; i--) Trendline[i]=iMAOnArray(Cycleline,Bars,maPeriod,0,MODE_EMA,i);
for(i=limit; i>=0; i--) Trendlineb[i]=Trendline[i];
if(iBars(NULL,0)<BarsCount) BarsCount=iBars(NULL,0)-maPeriod-1; for(i=BarsCount; i>=0; i--) {
double m=Trendline[i];
double top=High[i]-m; if(top>maxCH) maxCH=top;
double bot= Low[i]-m; if(bot<minCH) minCH=bot;
if(MathAbs(maxCH)> MathAbs(minCH)) Inc3=maxCH; else Inc3=minCH;
Inc1=Inc3*0.382; Inc2=Inc3*0.854;
Res1[i]=m+Inc1; Sup1[i]=m-Inc1;
Res2[i]=m+Inc2; Sup2[i]=m-Inc2;}
datetime TimeArray[]; counted_bars=IndicatorCounted(); if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--; limit=Bars-counted_bars; for(i=limit; i>=0; i--) {
string MarketPrice=DoubleToStr(Bid,Digits-1);
StocBuffer[i]=iStochastic(NULL,0,KPeriod,DPeriod,Slowing,MODE_EMA,1,MODE_MAIN,i);
if(Slope[limit]==-1) CleanPoint(limit,MiddleI,MiddleII);
Slope[i]=Slope[i]; MiddleI[i]=EMPTY_VALUE; MiddleII[i]=EMPTY_VALUE;
if(Priceline[i]>Trendline[i]) {Slope[i]= 1;}
if(Priceline[i]<Trendline[i]) {Slope[i]=-1;}
if(Slope[i]==-1) PlotPoint(i,MiddleI,MiddleII,Trendline);
if(SlopeX[limit]==-1) CleanPoint(limit,MiddleX,MiddleXX);
SlopeX[i]=SlopeX[i]; MiddleX[i]=EMPTY_VALUE; MiddleXX[i]=EMPTY_VALUE;
if(Priceline[i]>Cycleline[i]) {SlopeX[i]= 1;}
if(Priceline[i]<Cycleline[i]) {SlopeX[i]=-1;}
if(SlopeX[i]==-1) PlotPoint(i,MiddleX,MiddleXX,Cycleline);
txt1=" *** DO NOT TRADE ***"; txt1col=clrDarkGray; PriceCol=clrSilver; trend[i]= 0;
if(Priceline[i]>Cycleline[i] && Priceline[i]>Breakline[i] && StocBuffer[i]>50.)
{txt1=" *** POSSIBLE BUY ***"; txt1col=clrDeepSkyBlue; PriceCol=clrDeepSkyBlue; trend[i]= 1;}
if(Priceline[i]<Cycleline[i] && Priceline[i]<Breakline[i] && StocBuffer[i]<50.)
{txt1=" *** POSSIBLE SELL ***"; txt1col=clrViolet; PriceCol=clrRed; trend[i]=-1;}
if(showInfoText) {txtPanels(ID+"Brax1",8,-1,"ggggggggggg",FontSize2+5,"Webdings",Panelcol);
txtLabels(ID+"Brax2",17,1); ObjectSetText(ID+"Brax2",timeFrameToString(timeFrame)+" "+txt1,FontSize2-1,FontType,txt1col);}
int LightButp=Determine_StopLight(); Show_TrafficLights(LightButp);
if(showInfoBox) {makePanel2(ID+"Xard1",4,129,"g",70,"Webdings",Panelcol);
makePanel2(ID+"Xard2",4,212,"g",70,"Webdings",Panelcol);
makePanel2(ID+"Xard3",9,134,"g",62,"Webdings",Boxbgd);
makePanel2(ID+"Xard4",9,216,"g",62,"Webdings",Boxbgd);
string OPEN=""; double OpenToday= iOpen(NULL,1440,0); OPEN=(DoubleToStr(OpenToday,DecNos));
double ydayhigh=iHigh(Symbol(),PERIOD_D1,1), ydaylow=iLow(Symbol(),PERIOD_D1,1);
double spreadx=(MarketInfo(SymbolPair,MODE_BID));
if(spreadx>=1 && spreadx<=9.99) int shiftspreadx=+13;
else if(spreadx>=0 && spreadx<=0.9999) shiftspreadx=+12;
else if(spreadx>=10 && spreadx<=99.99) shiftspreadx=+13;
else if(spreadx>=100 && spreadx<=999.99) shiftspreadx=+12;
else if(spreadx>=1000 && spreadx<=9999.99) shiftspreadx=+12;
else if(spreadx>=10000 && spreadx<=99999.99)shiftspreadx=+14;
makePanel2(ID+"Xard5",shiftspreadx,155,DoubleToStr(MarketInfo(SymbolPair,MODE_BID),DecNos),16,"Arial Black",PriceCol);
double spread=(Ask-Bid)/myPoint;
if(spread>=1 && spread<=9.99)int shiftspread=-1;
else if(spread>=10 && spread<=99.99)shiftspread=-3;
else if(spread>=100 && spread<=999.99)shiftspread=-6;
makePanel2(ID+"Xard6",18+shiftspread,179,"SPRD: "+DoubleToStr((Ask-Bid)*MathPow(10,Digits)/pipsize,1),
FontSize-1,FontType,Snow); Show_Timer(); RefreshRates();
string PIPS=""; double CLOSE=iClose(NULL,1440,0); PIPS=DoubleToStr((CLOSE-OpenToday)/Point/pipsize,0); color colorPIPS;
if(CLOSE>=OpenToday) {colorPIPS=clrAqua;} if(CLOSE<OpenToday) {colorPIPS=clrViolet;}
makePanel2(ID+"Xard8",13,134,StringSubstr(SymbolPair,0,7),18,"Impact",clrWhite);
makePanel2(ID+"Xard9",12,211,"Daily Open",10,"Arial Black",colorPIPS);
makePanel2(ID+"Xard10",21,224,OPEN,13,FontType,colorPIPS);
makePanel2(ID+"Xard11",54,246,"P2Op",10,"Arial Bold",clrSnow);
makePanel2(ID+"Xard12",14,246,PIPS,11,"Arial BoПоказано первые 50% кода (символов: 20242)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.