Как совместить Периоды iClose - страница 2

 
Aleksey Semenov:
функция "принт" или "коммент" вам в помощь, если невидно где косяк то выводите инфу на экран или в лог, говорят очень помогает
Согласен это помогает, но я и говорю что есть косяк, только в одну голову уже не получается решить! Решил что тут помогут разобраться
 
Ihor Herasko:
CLD1 - это значение цены, а нужно передать таймфрейм, т. е. 1, 5, 15, 30, 60, 240, 1440, 10080 или 43200. Но никак не что-то типа 1.325648, коим является значение в переменной CLD1. В Вашем случае, наверное, HTF.
НЕТ погодите мне ж таки и нужно передать значение закрытия бара - это и есть цена. Только передаю я эти значения в CLD, с нужным ТФ! Напишите своё представление по двум ТФ - уперся , не догоняю Я
 
КАК СРАВНИТЬ ЦЕНЫ ЗАКРЫТИЯ БАРОВ НА НУЖНОМ ТАЙМФРЕЙМЕ? ОПИШИТЕ ПОЖАЛУЙСТА ПРИМЕР
 

Вот цена закрытия дневного бара с индексом 1 (первый бар слева от сформированного):

iClose(NULL, PERIOD_D1, 1)

или в контексте Вашего кода:

iClose(NULL, HTF, 1)

Далее сравниваете это значение с тем, чем нужно. Если нужно сравнить цены закрытия двух (например, соседних, дневных баров), то:

if (iClose(NULL, HTF, 1) > iClose(NULL, HTF, 2))
{
   // Закрытие предыдущего бара выше закрытия предпредыдущего бара
}

По сути Вашего вопроса в первом посте, по-моему, уже все ясно. Нужно:

extern int  HTF =1440,      //Старший ТФ для определения пробоя уровня уровня 

            LTF =30,        //Младший ТФ для определения консолидации

            Tol = 150;         //Толеранс от Линии

bool  OTBOI=false;

double Line = 1.0050; // ориентир

double   CLD1,CLM1,CLM2,CLM3,CLM4;

CLD1=iClose(NULL,HTF,1); CLD2=iClose(NULL,HTF,2); //Закрытие баров на старшем ТФ 

CLM1=iClose(NULL,LTF,1);CLM2=iClose(NULL,LTF,2);CLM3=iClose(NULL,LTF,3);CLM4=iClose(NULL,LTF,4); //Закрытие баров на младшем ТФ



if(CLD1 > Line)
   if (CLM1 < Line && CLM2 < Line && CLM3 < Line && HLM4 > Line && CLM1 > Line - Tol * Point && CLM2 > Line - Tol * Point
       && CLM3 > Line - Tol * Point && CLM4 > Line - Tol * Point)
      OTBOI = true;
Правда, непонятно, как определяется значение HLM4. В коде его нет.
 
 
Ну вот что и получается с помощью этого iClose(NULL,HTF,1) я выяснил где закрылась свеча на нужном ТФ. Так? так! отправляю цену закрытия в CLD1. И потом сравниваю CLD1 с Line
 
Print показывает что CLD1 = 0. А отдельно если вставить iClose(NULL,HTF,1) показывает то что нужно. Вопрос : почему не присваивает CLD1 значение из  iClose(NULL,HTF,1) ????????????????
 
Так и не понял почему не передаётся цена закрытия. Пришлось CMD1 и др. удалить из кода и писать как есть)) iClose(NULL,HTF,1)< Line, iClose(NULL,LTF,1)< Line и.т.д . Я то всего лишь хотел сократить))))
 
Rewerpool:
Так и не понял почему не передаётся цена закрытия. Пришлось CMD1 и др. удалить из кода и писать как есть)) iClose(NULL,HTF,1)< Line, iClose(NULL,LTF,1)< Line и.т.д . Я то всего лишь хотел сократить))))
Не увидел в коде переменной CMD1. Какую именно переменную имеете в виду?
 
Ihor Herasko:
Не увидел в коде переменной CMD1. Какую именно переменную имеете в виду?

Наверное, CLD1

Причина обращения: