Первый советник

 

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


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


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

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

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

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


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

 
mckurt:

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

iSAR, (iHigh+iLow)/2

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

iAO

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

iAC

 
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)

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

 

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


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

 

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

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

 
Aleks_Ivan:

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

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


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


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


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

 

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


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


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


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


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


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

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

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


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


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


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


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


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


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


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

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


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