автоматическая торговля по индикатору

 
хочу полностью автоматизировать торговлю по индикатору, изучаю язык MGL4 но не могу понять как сделать чтоб по сигналу индикатора происходила какая либо сделка.подскажите кто сможет. напишите код для примера
 

индикатор какой?

картинку сюда со входами вставьте

 
fred2008w:
напишите код для примера
Уже написан. МАСD Sample. В стандартной поставке МТ4
 

MACD Sample не работает он пишет ошибку 131. пользуюсь индикатором BB_MACD_v1.01. не могу вставить его код 

 

вот его код :

#property indicator_separate_window
#property indicator_buffers 4
#property indicator_color1 Lime //bbMacd up
#property indicator_color2 Magenta //bbMacd up
#property indicator_color3 Blue //Upperband
#property indicator_color4 Red //Lowerband
//---- indicator parameters
extern int FastLen = 12;
extern int SlowLen = 26;
extern int Length = 10;
extern int barsCount = 400;
extern double StDv = 2.5;
//----
int loopbegin;
int shift;
double zeroline;
//---- indicator buffers
double ExtMapBuffer1[]; // bbMacd
double ExtMapBuffer2[]; // bbMacd
double ExtMapBuffer3[]; // Upperband Line
double ExtMapBuffer4[]; // Lowerband Line
//---- buffers
double bbMacd[];
double Upperband[];
double Lowerband[];
double avg[];
double bbMacdline;
double sDev;
double mean;
double sumSqr;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- 6 additional buffers are used for counting.
IndicatorBuffers(8);
//---- drawing settings
SetIndexBuffer(0, ExtMapBuffer1); // bbMacd line
SetIndexStyle(0, DRAW_ARROW);
SetIndexArrow(0, 108);
IndicatorDigits(Digits + 1);
//----
SetIndexBuffer(1, ExtMapBuffer2); // bbMacd line
SetIndexStyle(1, DRAW_ARROW);
SetIndexArrow(1, 108);
IndicatorDigits(Digits + 1);
//----
SetIndexBuffer(2, ExtMapBuffer3); // Upperband line
SetIndexStyle(2, DRAW_LINE, STYLE_SOLID, 1);
IndicatorDigits(Digits + 1);
//----
SetIndexBuffer(3, ExtMapBuffer4); // Lowerband line
SetIndexStyle(3, DRAW_LINE, STYLE_SOLID, 1);
IndicatorDigits(Digits + 1);
//----
SetIndexBuffer(4, bbMacd);
SetIndexBuffer(5, Upperband);
SetIndexBuffer(6, Lowerband);
SetIndexBuffer(7, avg);
//---- name for DataWindow and indicator subwindow label
IndicatorShortName("BB MACD(" + FastLen + "," + SlowLen + "," + Length+")");
SetIndexLabel(0, "bbMacd");
SetIndexLabel(1, "Upperband");
SetIndexLabel(2, "Lowerband");
//---- initialization done
return(0);
}
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom BB_MACD |
//+------------------------------------------------------------------+
int start()
{
int limit;
int counted_bars = IndicatorCounted();
if(counted_bars < 0) return(-1);
if(counted_bars > 0) counted_bars--;
if (barsCount > 0)
limit = MathMin(Bars - counted_bars,barsCount);
else limit = Bars - counted_bars;
//----
for(int i = 0; i < limit; i++)
bbMacd[i] = iMA(NULL, 0, FastLen, 0, MODE_EMA, PRICE_CLOSE, i) -
iMA(NULL, 0, SlowLen, 0, MODE_EMA, PRICE_CLOSE, i);
//----
for(i = 0; i < limit; i++)
{
avg[i] = iMAOnArray(bbMacd, 0, Length, 0, MODE_EMA, i);
sDev = iStdDevOnArray(bbMacd, 0, Length, MODE_EMA, 0, i);
Upperband[i] = avg[i] + (StDv * sDev);
Lowerband[i] = avg[i] - (StDv * sDev);
ExtMapBuffer1[i]=bbMacd[i]; // Uptrend bbMacd
ExtMapBuffer2[i]=bbMacd[i]; // downtrend bbMacd
ExtMapBuffer3[i]=Upperband[i]; // Upperband
ExtMapBuffer4[i]=Lowerband[i]; // Lowerband
//----
if(bbMacd[i] > bbMacd[i+1])
ExtMapBuffer2[i] = EMPTY_VALUE;
//----
if(bbMacd[i] < bbMacd[i+1])
ExtMapBuffer1[i] = EMPTY_VALUE;
}
//---- done
return(0);
}
//+------------------------------------------------------------------+

 
 
fred2008w:

MACD Sample не работает он пишет ошибку 131. пользуюсь индикатором BB_MACD_v1.01. не могу вставить его код 


ошибка 131 обычно возникает из-за того, что код был написан для 4-х знака, а пытаются тестировать в 5-ти знаке

ЗЫ: в хэлпе описание ошибок есть

 
IgorM:


ошибка 131 обычно возникает из-за того, что код был написан для 4-х знака, а пытаются тестировать в 5-ти знаке

ЗЫ: в хэлпе описание ошибок есть


ошибка 131 - неправильный объём и 5-знак здесь ни при чём

коды ошибок в документации https://docs.mql4.com/ru/constants/errors

 
abolk:


ошибка 131 - неправильный объём и 5-знак здесь ни при чём

коды ошибок в документации https://docs.mql4.com/ru/constants/errors


угу, на память решил написать ;) - тогда еще проще, топикстартеру нужно поставить вместо 0.01 лота 0.1

ЗЫ: код советника нужен а не индикатора, индикатор если работает, зачем он нам 

 
IgorM:


угу, на память решил написать ;) - тогда еще проще, топикстартеру нужно поставить вместо 0.01 лота 0.1

ЗЫ: код советника нужен а не индикатора, индикатор если работает, зачем он нам

а если минимальный лот равен 1 (единичке)?
 
abolk:
а если минимальный лот равен 1 (единичке)?


а если плечо 1:100 ?

;)

тут вроде у человека совершенно ничего не работает - наверно только пробует разобраться, зачем ему эти трудности, хотя если хотите - помогите ему, я не буду отвлекать, пойду почитаю пока отдыхаю от кодов

Причина обращения: