Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Статьи помогут закрепить твои знания. Заходи и читай!
mckurt
44
mckurt 2010.09.10 11:04 

Здравствуйте!


Решил написать первый советник. Скорее, не для прибыльной работы, а для практических наработок в MQL.


Первые пара вопросов, ответ на которые никак не найду:

1. Как вернуть положение индикатора PARABOLIC SAR (положение относительно центра бара: выше или ниже)

2. Вернуть значение индикатора AO

3. Вернуть значение индикатора AC


Заранее благодарю!

o_O
Модератор
23614
o_O 2010.09.10 11:09  
mckurt:

1. Как вернуть положение индикатора PARABOLIC SAR (положение относительно центра бара: выше или ниже)

iSAR, (iHigh+iLow)/2

2. Вернуть значение индикатора AO

iAO

3. Вернуть значение индикатора AC

iAC

mckurt
44
mckurt 2010.09.10 12:15  
sergeev:

iSAR, (iHigh+iLow)/2

iAO

iAC



Большое спасибо!


Только вот я немного не правильно выразился: по индикаторам AO и АС меня интересуют цвета: зелёный или красный. Как это выяснить?


Вот тут чуть написал, код проверяет значение SAR относительно среднего значения предыдущего бара и прибавляет или отнимает от переменной P единицу.


Но никак не компилируется, какая-то синтаксическая ошибка

int start()
{
//----
int P = 0;

double s = iSAR (NULL, 0, 0.02, 0.2,-1);

double sr = (iHigh(NULL,0, -1)+iLow(NULL,NULL, -1))/2;

{

if (s < sr)
{

P = P - 1;
}

else

{

P = P+1;
//----
return(0);
}



Ошибка при компиляции - '\end_of_program' - ending bracket '}' expected C:\Program Files\MetaTrader NordFX\experts\sheff.mq4 (27, 1)

Буду благодарен кто поможет!

mckurt
44
mckurt 2010.09.10 13:11  

С ошибкой разобрался, убрал return.


Открыт вопрос: как вернуть цвет индикаторов AO и AC

Иваныч
139
Иваныч 2010.09.10 13:12  

2-я и предпоследняя скобки лишние

Прим: и Стиль ужасный, сразу и не увидишь. Пиши по образцу: для начала через мастера

mckurt
44
mckurt 2010.09.10 14:01  
Aleks_Ivan:

2-я и предпоследняя скобки лишние

Прим: и Стиль ужасный, сразу и не увидишь. Пиши по образцу: для начала через мастера


Ок, ошибку исправил, всё работает.


Теперь вот нужно вернуть цвет индикаторов AO и АС


дописал: вопрос закрыт

mckurt
44
mckurt 2010.09.11 07:39  

Теперь я расписал расчёт торговых критериев, результат которой - это значение переменной P


Если P => 2, то покупаем.


Если P <= - 2, то продаём.


Стоп ставим на iATR (-1)*2, без TP.


Выход из позиции, если (-2 < P < 2)


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

techno
1226
techno 2010.09.11 08:05  
У тебя куча ошибок, кроме всего прочего что названо еще ты ставишь смещение на индикаторах -1, это совершенно не верно, нужно писать от 0 и далее в положительную сторону. Отрицательным это значение быть не может!!! По поведу цветов, для обоих индюков это выясняется одинаково, если значение индикатора на баре меньше чем было на предыдущем баре, то гистограмма будет красной и наоборот если больше, будет зеленый.
mckurt
44
mckurt 2010.09.11 08:38  
Techno:
У тебя куча ошибок, кроме всего прочего что названо еще ты ставишь смещение на индикаторах -1, это совершенно не верно, нужно писать от 0 и далее в положительную сторону. Отрицательным это значение быть не может!!! По поведу цветов, для обоих индюков это выясняется одинаково, если значение индикатора на баре меньше чем было на предыдущем баре, то гистограмма будет красной и наоборот если больше, будет зеленый.

Да, с этим всем я разобрался, спасибо!


Меня вторая проблема беспокоит:


Теперь я расписал расчёт торговых критериев, результат которой - это значение переменной P


Если P => 2, то покупаем.


Если P <= - 2, то продаём.


Стоп ставим на iATR (-1)*2, без TP.


Выход из позиции, если (-2 < P < 2)


Нет ли какого-нибудь готового простого шаблона, где я мог бы привязать свои условия?
Alexey Subbotin
4998
Alexey Subbotin 2010.09.11 08:41  
плюс переменная Р объявлена на локальном уровне, поэтому каждый раз при вызове старт() она будет обнуляться, т.е. значения +/-2 не будут достигнуты никогда. Надо либо объявить ее как static, либо как глобальную, и инициализировать в init().
mckurt
44
mckurt 2010.09.11 08:57  

Ок, перенесу в init.


Хотя, если расчёт критерий будет производится внутри start() и, фактически, пересчитываться после каждого тика... Зачем тогда?

/ /12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий