#property indicator_separate_window // Прорисовка индикатора в отдельном окне
//#property indicator_chart_window // Прорисовка индикатора в окне с графиком
#property indicator_buffers 2 // Общее количество буферов для расчета индикаторов#property indicator_color1 Red // Первый индикатор: Цвет индикатора#property indicator_width1 1 // Первый индикатор: Толщина линии индикатора#property indicator_style1 0 // Первый индикатор: Стиль линии#property indicator_color2 Green // Второй индикатор: Цвет индикатора#property indicator_width2 1 // Второй индикатор: Толщина линии индикатора#property indicator_style2 0 // Второй индикатор: Стиль линии
Здесь инициализация индикаторов. Их два.
Затем инициализируешь буфер. У тебя это double MomBuffer[];
Т.к. у тебя будет использоваться только один индикатор (одна линия на графике), то второй индикатор тебе не нужен.
Далее секция init:
int init()
{
//---- indicators
SetIndexStyle(0,DRAW_LINE,indicator_style1,indicator_width1,indicator_color1);
SetIndexBuffer(0,MomBuffer);
//----return(0);
}
Всё. С начальным определением закончили.
Теперь сама обработка с прорисовкой. Приведу примитив, т.к. не знаю, какие именно данные ты будешь брать и за какой период.
int start()
{
int counted_bars=IndicatorCounted();
//----for (int i=0; i<Bars; i++)
{
MA1 = iMA(NULL, PERIOD_H1, 2, 0, MODE_SMA, PRICE_OPEN, i);
MA2 = iMA(NULL, PERIOD_H1, 24, 0, MODE_SMA, PRICE_OPEN, i);
MomBuffer[i] = (MA1 + MA2)/2; // Здесь будет твоя формула ... Я привёл формулу средней между двумя МА на каждом баре
}
//----return(0);
}
Заметь, если будешь использовать, например, значения МА1 из предыдущей свечи, то т.к. цикл идёт в сторону увеличения, переменнаяi в формуле iMA должна быть i+1.
Если используешь две линии на графике, то надо проинициализировать вторую переменную-буфер.
Пожалуйста, помогите мне понять, как рисовать правильно линии с помощью индикатора.
Проблема стала следующей. Мне надо чтобы данный индикатор позволял перемещать линию и в окне показывал значения, где находиться данная линия.
Мне надо понять, как будет устроен данный код.
Везде рыл, но такого не нашёл - даже приблизительно.
Если не сможешь скопировать прикрепленный учебник по языку mql4, то найди в инете . В нем найди раздел -Создание пользовательских индикаторов. Там товарищ все хорошо разжевывает, то бишь объясняет что к чему. Успехов
alexgen:
Если не сможешь скопировать прикрепленный учебник по языку mql4, то найди в инете . В нем найди раздел -Создание пользовательских индикаторов. Там товарищ все хорошо разжевывает, то бишь объясняет что к чему. Успехов
Пишу индикатор и есть вопрос
Как можно вывести среднее значение баров за определённый период.
Вот код.
Я не умею делать запрос истории и работать с буфером.
Помогите пожалуйста.
#property indicator_chart_window
extern int TekstSize = 15 ;
extern int MomPeriod=1;
double MomBuffer[];
int init()
{
return(0);
}
int deinit()
{
ObjectDelete("FreMargin");
ObjectDelete("Tip");
return(0);
}
int start()
{
int i;
string Market_Price0 = DoubleToStr((((High[MomPeriod])-Low[MomPeriod]))*10000,0); //макс бар//
ObjectCreate("FreMargin", OBJ_LABEL, 0, 0, 0);
ObjectSetText("FreMargin", Market_Price0+" Свободно средств", TekstSize, "Arial Bold", Red);
ObjectSet("FreMargin", OBJPROP_CORNER, 2);
ObjectSet("FreMargin", OBJPROP_XDISTANCE, 2);
ObjectSet("FreMargin", OBJPROP_YDISTANCE, 460);
return(0);
}
Работа с буфером. Покажу на примере:
Здесь инициализация индикаторов. Их два.
Затем инициализируешь буфер. У тебя это double MomBuffer[];
Т.к. у тебя будет использоваться только один индикатор (одна линия на графике), то второй индикатор тебе не нужен.
Далее секция init:
Всё. С начальным определением закончили.
Теперь сама обработка с прорисовкой. Приведу примитив, т.к. не знаю, какие именно данные ты будешь брать и за какой период.
Заметь, если будешь использовать, например, значения МА1 из предыдущей свечи, то т.к. цикл идёт в сторону увеличения, переменная i в формуле iMA должна быть i+1.
Если используешь две линии на графике, то надо проинициализировать вторую переменную-буфер.
Всё. Удачи.
Если что - пиши!
Пожалуйста, помогите мне понять, как рисовать правильно линии с помощью индикатора.
Проблема стала следующей. Мне надо чтобы данный индикатор позволял перемещать линию и в окне показывал значения, где находиться данная линия.
Мне надо понять, как будет устроен данный код.
Везде рыл, но такого не нашёл - даже приблизительно.
Если не сможешь скопировать прикрепленный учебник по языку mql4, то найди в инете . В нем найди раздел -Создание пользовательских индикаторов. Там товарищ все хорошо разжевывает, то бишь объясняет что к чему. Успехов
Некромант?