Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Разбираетесь в своей области? Поделитесь этим с миллионами трейдеров!
Сергей Таболин
539
Сергей Таболин 2016.05.04 04:22 

Приветствую всех.

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

Вот у меня именно такой случай. Помогите понять )))

if(checkSignal()) открываем покупку;
else не открываем покупку;

//=====================
bool checkSignal()
{
   //return(false);

   if     (buffer_WPR[0] >= -80 && buffer_WPR[1] < -80)     return(true);  // 
   else if(buffer_WPR[0] >  -50)                            return(false); // не больше -50
   else if(buffer_WPR[0] >  buffer_WPR[1] &&
           buffer_WPR[1] >= -80 &&
           buffer_WPR[2] <  -80)                            return(true);

   return(false);
}

Вроде ничего сложного, но результат совершенно не понятен:

результат результат2

Почему открылась сделка, если 1-е и 3-е условие не выполнились, а проверка второго условия однозначно запрещает торговлю...... ??????
А если расскоментировать первую строку, то, как и должно, ни один ордер не ставится.

Или это вопрос в сервисдеск? 

Bicus
2395
Bicus 2016.05.04 05:38  
Сергей Таболин

Или это вопрос в сервисдеск? 

Явно скобок не хватает.
Dmitry Fedoseev
42634
Dmitry Fedoseev 2016.05.04 06:02  
После открытия позиции выведите в журнал через print() значения индикаторов из условий и посмотрите что там.
Ihor Herasko
8892
Ihor Herasko 2016.05.04 06:33  
Это проблема использования данных технических индикаторов на нулевом баре. Те значения, которые были в период развития бара, однозначно не совпадают с теми, которые видны по закрытию бара. не используйте значения с нулевого бара.
Сергей Таболин
539
Сергей Таболин 2016.05.04 07:17  

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Заклинило...

Ihor Herasko, 2016.05.04 06:33

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

В данном случае нулевой бар - это не текущий, а предыдущий.

CopyBuffer(handle_WPR,0,1,5,buffer_WPR);

При открытии бара значения предыдущих заносятся в буфер.

Valeriy Korobeynik
24671
Valeriy Korobeynik 2016.05.04 08:02  
Сергей Таболин:

В данном случае нулевой бар - это не текущий, а предыдущий.

При открытии бара значения предыдущих заносятся в буфер.

ArraySetAsSeries(buffer_WPR, true);
Vladimir Karputov
Модератор
42383
Vladimir Karputov 2016.05.04 08:26  
Сергей Таболин:

В данном случае нулевой бар - это не текущий, а предыдущий.

Нулевой, не нулевой... Лучше оперируйте таким понятием как "самый правый бар".

 

Сергей Таболин:

Походу это уже вопрос в сервисдеск ((( 

 Лучше разберитесь с индикатором и обработкой "самого правого бара".

Sergey Gridnev
4907
Sergey Gridnev 2016.05.04 08:38  
Karputov Vladimir:

Нулевой, не нулевой... Лучше оперируйте таким понятием как "самый правый бар".


Какая разница, какими терминами ему оперировать, если он копирует из буфера 5 значений, начиная с 1-го (с не самого правого бара по вашей терминологии).

 

Karputov Vladimir:

 Лучше разберитесь с индикатором и обработкой "самого правого бара".

 

Разбираться ему надо не с самым правым баром, а с его левым соседом .

Сергей Таболин
539
Сергей Таболин 2016.05.04 08:46  

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Заклинило...

Karputov Vladimir, 2016.05.04 08:26

Нулевой, не нулевой... Лучше оперируйте таким понятием как "самый правый бар".

 

 Лучше разберитесь с индикатором и обработкой "самого правого бара".

Я не первый день работаю с нулевыми барами. Самый правый бар никакого отношения к нулевому не имеет (за исключением момента копирования значений в буфер, именно в этот момент и определяется какой бар будет нулевым CopyBuffer(handle_WPR,0,СМЕЩЕНИЕ_ОТ_САМОГО_ПРАВОГО_БАРА,5,buffer_WPR);

К тому же на картинках подписано какой именно бар нулевой, какой первый и какой второй. 

Vladimir Karputov
Модератор
42383
Vladimir Karputov 2016.05.04 08:56  
Сергей Таболин:

Я не первый день работаю с нулевыми барами. Самый правый бар никакого отношения к нулевому не имеет (за исключением момента копирования значений в буфер, именно в этот момент и определяется какой бар будет нулевым CopyBuffer(handle_WPR,0,СМЕЩЕНИЕ_ОТ_САМОГО_ПРАВОГО_БАРА,5,buffer_WPR);

К тому же на картинках подписано какой именно бар нулевой, какой первый и какой второй. 

Вот я и говорю, Вам не нужно оперировать понятием "нулевой бар" - путаете всё.
Сергей Таболин
539
Сергей Таболин 2016.05.04 09:23  

Ошибочка вышла... В визуальном всё то же... Значения индикатора считываются верно, но почему то неверно обрабатываются.

 

buf[0] == -33 и позиция открыта, но в условии же прописано, что если нулевой больше -50, то не открывать. 

Вот и как это понимать? Как то, что -33 меньше чем -50??? 

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