[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 1101

 
raduga7:
уважаемые знатоки MQL4

На метастоке понятно If((Ref(H,-1) >Ref(H,0)) AND (Ref(H,-2) < Ref(H,-1) ), Ref( H,-1),PREV); а вот в MQL4 совсем новичок.

метасток не видел ни разу, а сам МТ4/МТ% по синтаксису почти один в один с Си/Си++

в учебнике/справке есть примеры оператора if() : https://book.mql4.com/ru/operators/if вроде ничего сложного

что такое функции и как их самому написать тоже есть инфа: https://book.mql4.com/ru/operators/function

 
Danil93:
Ошибка 4109 торговля не разрешена. Как исправить?


Сервак не даёт торговать - видать выходной у него, ну или в настройках терминала нет галочки, разрешающей торг. Поставьте вот так (Сервис - Настройки):

 
IgorM:

метасток не видел ни разу, а сам МТ4/МТ% по синтаксису почти один в один с Си/Си++

в учебнике/справке есть примеры оператора if() : https://book.mql4.com/ru/operators/if вроде ничего сложного

что такое функции и как их самому написать тоже есть инфа: https://book.mql4.com/ru/operators/function


Я ранее плотно сидел на Метастоке. Увы - МТ4 - проще и удобнее. Правда в Метастоке индикаторов куда больше. Но изучение MQl устраняет эту проблему. Тем более, что даже без языка кодобаза МТ и так не малая.
 
спасибо за внимание просто первый день с МТК работаю. Вот и написал такой вопрос. Но вот поковирялся в гугле и нашëл что искал.

Правда ещë не нашëл решения с гэпами. Так что если кому не лень скиньте кодик.


//+------------------------------------------------------------------+

//| Support and Resistance |
//| Copyright © 2004 Barry Stander |
//| http://myweb.absa.co.za/stander/4meta/ |
//+------------------------------------------------------------------+
#property copyright "Click here: Barry Stander"
#property link "http://myweb.absa.co.za/stander/4meta/&quot;

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 Blue

//---- buffers
double v1[];
double v2[];
double val1;
double val2;
int i;

int init()
{

IndicatorBuffers(2);

//---- drawing settings
SetIndexArrow(0, 119);
SetIndexArrow(1, 119);

SetIndexStyle(0,DRAW_ARROW,STYLE_DOT,1,Red);
SetIndexDrawBegin(0,i-1);
SetIndexBuffer(0, v1);
SetIndexLabel(0,"Resistance");


SetIndexStyle(1,DRAW_ARROW,STYLE_DOT,1,Blue);
SetIndexDrawBegin(1,i-1);
SetIndexBuffer(1, v2);
SetIndexLabel(1,"Support");

return(0);
}

int start()
{

i=Bars;
while(i>=0)
{

val1 = iFractals(NULL, 0, MODE_UPPER,i);
if (val1 > 0)
v1[i]=High[i]+(High[i]-Low[i]);
else
v1[i] = v1[i+1];

val2 = iFractals(NULL, 0, MODE_LOWER,i);
if (val2 > 0)
v2[i]=Low[i];
else
v2[i] = v2[i+1];

i--;
}
return(0);
}

//+------------------------------------------------------------------+

 
raduga7, не понятно, что значит "Индикатор вызывает цену"? Ну отыскал индюк нужную Вам цену. Дальше-то что ему с нею сделать нужно? Просто внести в свой буфер и хранить ни где не отрисовывая? Хранить для целей использования в кодах других программ?
 

Нет естестественно линию цены он будет вырисовывать на графике, как написано в индицаторе опубликованном выше


//---- drawing settings
SetIndexArrow(0, 119);
SetIndexArrow(1, 119);

SetIndexStyle(0,DRAW_ARROW,STYLE_DOT,1,Red);
SetIndexDrawBegin(0,i-1);
SetIndexBuffer(0, v1);
SetIndexLabel(0,"Resistance");

===================================================

Ещë один вопрос .
А можно ли в одном окне показывать несколько графиков 2 или 3 с разными timeframe? И есть ли уже готовые наработки или примеры ?

 
raduga7:


Ещë один вопрос .
А можно ли в одном окне показывать несколько графиков 2 или 3 с разными временными промежутками? И есть ли уже готовые наработки или примеры ?

временные промежутки? таймфрейм?

в индикаторах МТ есть некое неудобства - в качестве координат X и Y индикаторы используют цену и время, время в свою очередь тоже делится на бары и конкретное указание времени в виде типа datetime, если индикатор рисует с помощью индикаторных буферов, то однозначно он будет рисовать по барам, а если индикатор использует графические объекты, то указанное время

если у Вас вопрос о количестве линий - буферов индикатора, тогда в МТ4 максимально 8 шт на один индикатор, но никто не запрещает использовать несколько индикаторов

 

Здравствуйте, можно вопрос такой задать, может ли индикатор брать значения бара заданного временем через внешние переменные?

К примеру если внести дату во внешние переменные - 2011год 6 января 04часа 25 минут, как это можно сделать в индикаторе, заранее спасибо.
 
Eliza:

Здравствуйте, можно вопрос такой задать, может ли индикатор брать значения бара заданного временем через внешние переменные?

К примеру если внести дату во внешние переменные - 2011год 6 января 04часа 25 минут, как это можно сделать в индикаторе, заранее спасибо.


iBarShift

iTime

можно комбинировать, примерно так:

iBarShift(NULL,PERIOD_D1,Time[100])

ну а внешние переменные - способ обмена данными между различными экспертами/индикаторами, не пойму при чем тут внешние переменные

 
raduga7:

Нет естестественно линию цены он будет вырисовывать на графике, как написано в индицаторе опубликованном выше


//---- drawing settings
SetIndexArrow(0, 119);
SetIndexArrow(1, 119);

SetIndexStyle(0,DRAW_ARROW,STYLE_DOT,1,Red);
SetIndexDrawBegin(0,i-1);
SetIndexBuffer(0, v1);
SetIndexLabel(0,"Resistance");

===================================================

Ещë один вопрос .
А можно ли в одном окне показывать несколько графиков 2 или 3 с разными timeframe? И есть ли уже готовые наработки или примеры ?




Вы не сказали, что Вам нужна отрисовка - Вы сказали, что нашли подобное в гугле. Ну а DRAW_ARROW - это не линия - это стрелка (может использоваться и просто символ из таблицы допустимых символов). Комп - это дурачёк, который понимает только "Есть сигнал - Нет сигнала" - ему нужно давать точные инструкции. Поэтому тут нужно точно знать, что конкретно помимо найденных цен Вам нужно.
Причина обращения: