// проверка роста ADX > 20, или просто рост ADX ---- проверка силы движения. if (x<20 && x0>20) {f3 = 1; }
не выполнено, а сделка открыта
Судя по комментарию на скрине - вы контролируете нулевой бар для принятия решений.
Это ни есть гут... На нулевом баре индикаторы во время формирования бара могут много раз ходить туда-сюда, тем самым создавая ложные сигналы (дребезг).
Чтобы этого избежать, проверяйте первый, уже сформированный бар.
Помогите пожалуйста. Визулаьно на граффике часто замечаю что цена словно бъется об какой то уровень в нем как правило хай или лоу свечей практически равны между собой. Но как представить это математически не знаю. Если не трудно натыкайте ссылок с данной тематикой или с рахработками какими, а то 3 дня копаю форум и базу но подобного найти не получается.
Пытаюсь вывести на экран информацию о предыдущей свече (ненулевой бар) - бычья или медвежья свечя, размер тела и теней и отношение теней к телу свечи.
Но как то не выходит каменный цветочек. Выводятся неверные значения.
int start()
{
int counted_bars=IndicatorCounted();
if (counted_bars<0) return(-1); //---- check for possible errorsif (counted_bars>0) counted_bars--; //---- last counted bar will be recountedint limit=Bars-counted_bars;
double kerzen_typ; //тип свечиstring kerzen_name; //наименование свечиdouble kerzen_body; //размер тела свечиdouble kerzen_shadow_up; //размер верхней тениdouble kerzen_shadow_down; //размер нижней тениdouble kerzen_shadow2body_up; //отношение верхней тени к размеру телаdouble kerzen_shadow2body_down; //отношение нижней тени к размеру тела//---- main loopfor(int bar=0; bar<limit; bar++)
{
//определение контрольной свечки - белая, черная или додж и сбор информацииif (Close[bar]>Open[bar])
{
kerzen_typ=1;
kerzen_name="бычья или белая свеча";
kerzen_shadow_up=High[bar]-Close[bar];
kerzen_shadow_down=Open[bar]-Low[bar];
kerzen_body=Close[bar]-Open[bar];
}
if (Open[bar]>Close[bar])
{
kerzen_typ=-1;
kerzen_name="медвежья или черная свеча";
kerzen_shadow_up=High[bar]-Open[bar];
kerzen_shadow_down=Close[bar]-Low[bar];
kerzen_body=(Open[bar]-Close[bar]);
}
if (Open[bar]==Close[bar])
{
kerzen_typ=0;
kerzen_name="додж";}
kerzen_shadow_up=High[bar]-Open[bar];
kerzen_shadow_down=Close[bar]-Low[bar];
}
//определение соотношения тени к телу свечки if (kerzen_body==0)
{
kerzen_shadow2body_up=kerzen_shadow_up;
kerzen_shadow2body_down=kerzen_shadow_down;
}
if (kerzen_body!=0)
{
kerzen_shadow2body_up=kerzen_shadow_up/kerzen_body;
kerzen_shadow2body_down=kerzen_shadow_down/kerzen_body;
}
//---- doneComment (
"Контрольный бар типа ",kerzen_name,"\n",
"Верхняя тень - ",kerzen_shadow_up*10000," в ",kerzen_shadow2body_up, " раз больше","\n",
"Тело - ",kerzen_body*10000,"\n",
"Нижняя тень - ",kerzen_shadow_down*10000," в ",kerzen_shadow2body_down, " раз больше"
);
return(0);
}
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Тикет остается какой был
????
А как тогда проверить закрылся ордер или нет?
Спасибо большое за рекомендацию, я уже почти догадался так сделать, только не помню если ордер сработал, то ticket принимает значение -10?
тикет не меняется. Просто OrderCloseTime у него становится больше нуля
А если сработает стоп или профит он же стает меньше нуля, если я не ошибаюсь -1 ?
Как правильно поставить условие ? Подскажите пожалуйста.
А если сработает стоп или профит он же стает меньше нуля, если я не ошибаюсь -1 ?
Как правильно поставить условие ? Подскажите пожалуйста.
Он не станет другим, а останется прежним. Закрытые позиции переходят в список истории сделок с теми же самыми тикетами.
Перебирайте этот самый список истории сделок и ищите там ордер.
Зачем так-то? Выводите в одном Comment`е все флаги сразу.
Вот тут:
роста по ADX не было, то есть условие
// проверка роста ADX > 20, или просто рост ADX ---- проверка силы движения.
if (x<20 && x0>20) {f3 = 1; }
не выполнено, а сделка открыта
роста по ADX не было, то есть условие
// проверка роста ADX > 20, или просто рост ADX ---- проверка силы движения.
if (x<20 && x0>20) {f3 = 1; }
не выполнено, а сделка открыта
Судя по комментарию на скрине - вы контролируете нулевой бар для принятия решений.
Это ни есть гут... На нулевом баре индикаторы во время формирования бара могут много раз ходить туда-сюда, тем самым создавая ложные сигналы (дребезг).
Чтобы этого избежать, проверяйте первый, уже сформированный бар.
Приветствую!
Пытаюсь вывести на экран информацию о предыдущей свече (ненулевой бар) - бычья или медвежья свечя, размер тела и теней и отношение теней к телу свечи.
Но как то не выходит каменный цветочек. Выводятся неверные значения.
Приветствую!
Пытаюсь вывести на экран информацию о предыдущей свече (ненулевой бар) - бычья или медвежья свечя, размер тела и теней и отношение теней к телу свечи.
Но как то не выходит каменный цветочек. Выводятся неверные значения.
А зачем цикл если берется только 1 бар? просто вместо "bar" 1 использовать. Только проверять на новые бары чтобы на каждом тике все не пересчитывать.
А если сработает стоп или профит он же стает меньше нуля, если я не ошибаюсь -1 ?
Как правильно поставить условие ? Подскажите пожалуйста.
еще раз. ticket не изменяется.
самый простой вариант (схематично)