
3ТЭ10У-0002 секция Б by Pavel888, on Flickr
РУССКИЙ ЯЗЫК/Russian language.
В НАБОРЕ представлен индикатор ТМА канал - (Triangular Moving Average, TMA) один из основных компонентов ТС Победа. По возможности индикаторы идут с исходным кодом (файл mql).
Успешного применения этого индикатора в работе!
АНГЛИЙСКИЙ ЯЗЫК/English language.
The SET contains the TMA channel indicator (Triangular Moving Average, TMA), one of the main components of the Pobeda trading system. If possible, indicators are supplied with source code (mql file).
Good luck with this indicator!
С уважением, Павел aka Pavel888.
ОПИСАНИЕ ИНДИКАТОРА
1. Общий вид индикатора, описание.
2. Код индикатора.
3. Базовые настройки индикатора.
4. Формула расчёта индикатора.
5. Видеообзор индикатора.
6. Автор индикатора.
1. Общий вид индикатора, описание:
TMA расшифровывается как Triangular Moving Average, что переводится как «Треугольная скользящая средняя». Индикатор следует за ценой. Он является запаздывающим, так как всегда несколько отстает от текущей цены. Расчет TMA похож на расчет простой скользящей средней, но с дополнительным сглаживанием. Есть рисующие и нерисующие версии индикатора.
2. Код индикатора:
//+------------------------------------------------------------------+
//| TriangularMA centered bands.mq4 |
//| mladen |
//| forex-tsd elite section only |
//+------------------------------------------------------------------+
#property copyright "mladen"
#property link "mladenfx@gmail.com"
#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 LimeGreen
#property indicator_color2 Red
#property indicator_color3 Green
#property indicator_style2 STYLE_DOT
#property indicator_style3 STYLE_DOT
//
//
//
//
//
extern string TimeFrame = "current time frame";
extern int HalfLength = 56;
extern int Price = PRICE_CLOSE;
extern double ATRMultiplier = 2.0;
extern int ATRPeriod = 100;
extern bool Interpolate = true;
extern bool alertsOn = false;
extern bool alertsOnCurrent = false;
extern bool alertsOnHighLow = false;
extern bool alertsMessage = false;
extern bool alertsSound = false;
extern bool alertsEmail = false;
//
//
//
//
//
double buffer1[];
double buffer2[];
double buffer3[];
double trend[];
//
//
//
//
//
string indicatorFileName;
bool calculateValue;
bool returnBars;
int timeFrame;
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
//
//
//
//
int init()
{
IndicatorBuffers(4);
HalfLength=MathMax(HalfLength,1);
SetIndexBuffer(0,buffer1); SetIndexDrawBegin(0,HalfLength);
SetIndexBuffer(1,buffer2); SetIndexDrawBegin(1,HalfLength);
SetIndexBuffer(2,buffer3); SetIndexDrawBegin(2,HalfLength);
SetIndexBuffer(3,trend);
//
//
//
//
//
indicatorFileName = WindowExpertName();
returnBars = TimeFrame=="returnBars"; if (returnBars) return(0);
calculateValue = TimeFrame=="calculateValue"; if (calculateValue) return(0);
timeFrame = stringToTimeFrame(TimeFrame);
//
//
//
//
//
IndicatorShortName(timeFrameToString(timeFrame)+" TMA bands )"+HalfLength+")");
return(0);
}
int deinit() { return(0); }
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
//
//
//
//
//
int start()
{
int counted_bars=IndicatorCounted();
int i,j,k,limit;
if(counted_bars if(counted_bars>0) counted_bars--;
limit=MathMin(Bars-1,Bars-counted_bars+HalfLength);
if (returnBars) { buffer1[0] = limit+1; return(0); }
//
//
//
//
//
if (calculateValue || timeFrame==Period())
{
for (i=limit; i>=0; i--)
{
double sum = (HalfLength+1)*iMA(NULL,0,1,0,MODE_SMA,Price,i);
double sumw = (HalfLength+1);
for(j=1, k=HalfLength; j {
sum += k*iMA(NULL,0,1,0,MODE_SMA,Price,i+j);
sumw += k;
if (j {
sum += k*iMA(NULL,0,1,0,MODE_SMA,Price,i-j);
sumw += k;
}
}
//
//
//
//
//
double range = iATR(NULL,0,ATRPeriod,i+10)*ATRMultiplier;
buffer1 = sum/sumw;
buffer2 = buffer1+range;
buffer3 = buffer1-range;
//
//
//
//
//
trend = 0;
if (alertsOnHighLow)
{
if (High > buffer2) trend = 1;
if (Low ) trend = -1;
}
else
{
if (Close > buffer2) trend = 1;
if (Close ) trend = -1;
}
}
if (!calculateValue) manageAlerts();
return(0);
}
//
//
//
//
//
limit = MathMax(limit,MathMin(Bars-1,iCustom(NULL,timeFrame,indicatorFileName,"returnBars",0,0)*timeFrame/Period()));
for(i=limit; i>=0; i--)
{
int y = iBarShift(NULL,timeFrame,Time);
buffer1 = iCustom(NULL,timeFrame,indicatorFileName,"calculateTma",HalfLength,Price,ATRMultiplier,ATRPeriod,0,y);
buffer2 = iCustom(NULL,timeFrame,indicatorFileName,"calculateTma",HalfLength,Price,ATRMultiplier,ATRPeriod,1,y);
buffer3 = iCustom(NULL,timeFrame,indicatorFileName,"calculateTma",HalfLength,Price,ATRMultiplier,ATRPeriod,2,y);
trend = iCustom(NULL,timeFrame,indicatorFileName,"calculateTma",HalfLength,Price,ATRMultiplier,ATRPeriod,3,y);
//
//
//
//
//
if (timeFrame if (!Interpolate) continue;
//
//
//
//
//
datetime time = iTime(NULL,timeFrame,y);
for(int n = 1; i+n = time; n++) continue;
for(k = 1; k {
buffer1[i+k] = buffer1 +(buffer1[i+n]-buffer1)*k/n;
buffer2[i+k] = buffer2 +(buffer2[i+n]-buffer2)*k/n;
buffer3[i+k] = buffer3 +(buffer3[i+n]-buffer3)*k/n;
}
}
//
//
//
//
//
manageAlerts();
return(0);
}
//+-------------------------------------------------------------------
//|
//+-------------------------------------------------------------------
//
//
//
//
//
void manageAlerts()
{
if (alertsOn)
{
if (alertsOnCurrent)
int whichBar = 0;
else whichBar = 1; whichBar = iBarShift(NULL,0,iTime(NULL,timeFrame,whichBar));
if (trend[whichBar] != trend[whichBar+1])
{
if (trend[whichBar] == 1) doAlert(whichBar,"up");
if (trend[whichBar] ==-1) doAlert(whichBar,"down");
}
}
}
//
//
//
//
//
void doAlert(int forBar, string doWhat)
{
static string previousAlert="nothing";
static datetime previousTime;
string message;
if (previousAlert != doWhat || previousTime != Time[forBar]) {
previousAlert = doWhat;
previousTime = Time[forBar];
//
//
//
//
//
message = StringConcatenate(Symbol()," at ",TimeToStr(TimeLocal(),TIME_SECONDS)," "+timeFrameToString(timeFrame)+" TMA bands price penetrated ",doWhat," band");
if (alertsMessage) Alert(message);
if (alertsEmail) SendMail(StringConcatenate(Symbol(),"TMA bands "),message);
if (alertsSound) PlaySound("alert2.wav");
}
}
//+-------------------------------------------------------------------
//|
//+-------------------------------------------------------------------
//
//
//
//
//
string sTfTable[] = {"M1","M5","M15","M30","H1","H4","D1","W1","MN"};
int iTfTable[] = {1,5,15,30,60,240,1440,10080,43200};
//
//
//
//
//
int stringToTimeFrame(string tfs)
{
tfs = StringUpperCase(tfs);
for (int i=ArraySize(iTfTable)-1; i>=0; i--)
if (tfs==sTfTable || tfs==""+iTfTable) return(MathMax(iTfTable,Period()));
return(Period());
}
string timeFrameToString(int tf)
{
for (int i=ArraySize(iTfTable)-1; i>=0; i--)
if (tf==iTfTable) return(sTfTable);
return("");
}
//
//
//
//
//
string StringUpperCase(string str)
{
string s = str;
for (int length=StringLen(str)-1; length>=0; length--)
{
int char = StringGetChar(s, length);
if((char > 96 && char 223 && char s = StringSetChar(s, length, char - 32);
else if(char > -33 && char s = StringSetChar(s, length, char + 224);
}
return(s);
}
3. Базовые настройки индикатора.
4. Формула расчёта индикатора.
SMA — простое скользящее среднее;
N — число периодов для скользящего среднего.
5. Видеообзор индикатора.
6. Автор индикатора.
Автор неизвестен.
СПИСОК И КОМПЛЕКТАЦИЯ ВСЕХ ИНДИКАТОРОВ
10.2 TMA slope true 4.30 EX & MQL
10.2 TMA slope v.1.4B 4.30 EX & MQL
10.2 TMA TRUE v2.1 5.2 EX & MQL
10.2 TMATrueSlope NT v7.13 EX
10.2 TMATrueSlope NT v7.13~ EX
alb TriangularMA_ jcfb price zone mtf & alerts EX & MQL
dynamic_zone_tma_centered_mtf EX & MQL
dynamic_zone_tma_centered_mtf_nmc EX & MQL
dynamic_zone_tma_nrp__mtf__arrows_alerts EX & MQL
dynamic_zone_tmacentered EX & MQL
DZ_TMAcentered_mtf EX & MQL
ExtremeTMA info 040 EX & MQL
ExtremeTMAInfo EX & MQL
ExtremeTMALine EX & MQL
good_TMALine EX
KC EX & MQL
KC_mtf EX & MQL
MladenDZ_TMA_Bars_MTF EX & MQL
NT TMA-CSS-SP EX
NT TMATrue SlopeHisto MTF EX
Rsi TMA centered bands EX & MQL
RSI-TMA-v-Renko EX & MQL
Sky TMA EX & MQL
SnakeForce - simple TMA EX & MQL
TM555 EX & MQL
TMA - KC EX & MQL
TMA centered MACD v1 TT EX & MQL
TMA State Analizer EX
TMA WD stab01 EX & MQL
TMA with Distances S&N EX & MQL
TMA with Distances S&N 1.02 EX
TMA with Distances EX & MQL
TMA with Distances_Size EX & MQL
TMA Без понтов EX & MQL
TMA EX & MQL
TMA_Fair EX & MQL
TMA_Fair _625 EX & MQL
tma_nrp__bands_mtf__arrows_alerts__3 EX & MQL
tma_ribbon_filled_alerts_mtf_2 EX & MQL
TMA_Turn_Signal EX & MQL
TMA+CG mladen EX & MQL
TMA+CG - b646 EX & MQL
TMA+CG EX & MQL
TMA+CG_den EX & MQL
TMA+CG_For_MxS EX & MQL
TMA+CG-b625-Oll EX & MQL
TMA+KC EX & MQL
TMA+KC+Alert EX & MQL
tmacentered_amp_bands_2.01___mtf EX & MQL
tmacentered_amp_bands_2.02_mtf EX & MQL
TMALine_2 EX & MQL
TMALine_2_for_Mix EX & MQL
TMALineForStateAnalizer EX & MQL
TmaSlope.v1.5 Normalized EX & MQL
TmaSlope.v1.5 Pobeda EX & MQL
TmaSlope.v1.5 S&N EX & MQL
TmaSlope.v1.5_Not_False EX
TmaTrue with Distances EX & MQL
TmaTrue with Distances (1) EX & MQL
TmaTrue EX & MQL
TriangularMA centered abands alerts 2 EX & MQL
TriangularMA centered bands - mtf & alerts EX & MQL
ОПИСАНИЯ И СКРИНЫ ИНДИКАТОРОВ
10.2 TMA slope true 4.30

10.2 TMA slope v.1.4B 4.30
без скрина
10.2 TMA TRUE v2.1 5.2

10.2 TMATrueSlope NT v7.13
без скрина
10.2 TMATrueSlope NT v7.13~

alb TriangularMA_ jcfb price zone mtf & alerts

dynamic_zone_tma_centered_mtf

dynamic_zone_tma_centered_mtf_nmc
без скрина
dynamic_zone_tma_nrp__mtf__arrows_alerts

dynamic_zone_tmacentered
без скрина
DZ_TMAcentered_mtf
без скрина
ExtremeTMA info 040

ExtremeTMAInfo

ExtremeTMALine

good_TMALine

KC

KC_mtf

MladenDZ_TMA_Bars_MTF

NT TMA-CSS-SP

NT TMATrue SlopeHisto MTF

Rsi TMA centered bands

RSI-TMA-v-Renko

Sky TMA

SnakeForce - simple TMA

TM555

TMA - KC
без скрина (аналог индикатора KC)
TMA centered MACD v1 TT

TMA State Analizer

TMA WD stab01

TMA with Distances S&N

TMA with Distances S&N 1.02

TMA with Distances

TMA with Distances_Size
без скрина
TMA Без понтов

TMA

TMA_Fair
без скрина
TMA_Fair _625
без скрина
tma_nrp__bands_mtf__arrows_alerts__3

tma_ribbon_filled_alerts_mtf_2

TMA_Turn_Signal
скорее всего нерабочий; есть открытый код для ремонта.
TMA+CG mladen

TMA+CG - b646
без скрина
TMA+CG
без скрина
TMA+CG_den
без скрина
TMA+CG_For_MxS
без скрина
TMA+CG-b625-Oll
без скрина
TMA+KC

TMA+KC+Alert
без скрина
tmacentered_amp_bands_2.01___mtf

tmacentered_amp_bands_2.02_mtf
без скрина
TMALine_2

TMALine_2_for_Mix
без скрина
TMALineForStateAnalizer

TmaSlope.v1.5 Normalized

TmaSlope.v1.5 Pobeda

TmaSlope.v1.5 S&N
без скрина
TmaSlope.v1.5_Not_False
без скрина
TmaTrue with Distances

TmaTrue with Distances (1)
без скрина
TmaTrue

TriangularMA centered abands alerts 2
без скрина
TriangularMA centered bands - mtf & alerts
без скрина
ПОЛЕЗНЫЕ ССЫЛКИ
Как установить индикатор в терминал МТ4
Как тестировать индикатор в терминале МТ4
Как настроить уведомления на почту в MT4
Как компилировать старые MQ4 файлы под новые билды MetaTrader 4
Расшифровка часто встречающихся сокращений в названии индикаторов.
alert - перевод с английского - сигнал. Индикатор при достижении определённых значений, установленных пользователем в настройках, посылает сигнал (разными способами - звуковой, уведомление на почту и так далее).
Пример:
arrows - перевод с английского - стрелки. Индикатор может отображать стрелками на графике возможное движение цены в этом направлении.
Пример:
Histogram (Hist) - перевод с английского - гистограмма. Показания индикатора в виде гистограммы.
Пример:
mtf - Multi Time Frame - перевод с английского - мультитаймфреймовый индикатор. Индикатор на установленном таймфрейме отображает данные с более старшего периода. Пока свеча старшего периода не закрыта - индикатор может менять свои показания.
Пример:
Smoothed - перевод с английского - сглаженный. Индикатор на установленном таймфрейме отображается в виде плавных линий.
Пример:
ИСТОРИЯ ОБНОВЛЕНИЙ
НАБОР ТМА (2016.02.24) 17 загрузок
НАБОР ТМА (2016.02.25) 07 загрузок
НАБОР ТМА (2016.02.26) 644 загрузок










