Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 197
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Посмотрел видео по работе с внешним индикатором, написал небольшой код посмотреть значения буферов в тестере:
void OnTick()
{
double Buf1=iCustom(NULL,0,"Shved-Supply-and-Demand-e600",0,1);
double Buf2=iCustom(NULL,0,"Shved-Supply-and-Demand-e600",1,1);
double Buf3=iCustom(NULL,0,"Shved-Supply-and-Demand-e600",2,1);
double Buf4=iCustom(NULL,0,"Shved-Supply-and-Demand-e600",3,1);
Comment("Buf1=",Buf1,"\n", "Buf2=",Buf2,"\n","Buf3=",Buf3,"\n","Buf4=",Buf4);
}
Зоны в режиме визуализации появляются и исчезают. А значение буферов все равно, всегда ноль. Неужели никак нельзя формализовать эти зоны в коде?
Может есть какая-то функция , кроме iCustom, которая подходит для таких индикаторов? Может кто-то сам писал сов с подобными индикаторами?
С помощью индикаторных буферов никак, в них хранятся значения фракталов.
В свойствах индикатора fractals_show = true; вы увидите их на графике
Зоны, графический обьект OBJ_RECTANGLE
Узнать значение этих зон, можно с помощью
ObjectGet
Возвращает значение указанного свойства объекта.
double ObjectGet(
string object_name, // имя объекта
int index // идентификатор свойства
);
В цикле перебираете все обьекты, находите нужный, и путь.
Примерно, как то так.
Знаете, а ведь прямо в этой ветке я выкладывал шаблон для трала, который в своих расчётах использует переданное в него значение индикатора. Поищите, не ленитесь.
Мне именно трейлинг корректный нужен по прибыли открытых позиций. их в конечном счёте либо 1 либо 3 и они связаны значением шага Step то есть стоппереворотная система. Отсюда и сложность, а может и наоборот проще по функции CalculateProfit() по всем ордерам трейлить. Я сейчас не могу понять как в данной схеме работы с ордерами значение индикатора может быть с трейлингом по общему профиту открытых позиций связано.
Мне именно трейлинг корректный нужен по прибыли открытых позиций. их в конечном счёте либо 1 либо 3 и они связаны значением шага Step то есть стоппереворотная система. Отсюда и сложность, а может и наоборот проще по функции CalculateProfit() по всем ордерам трейлить. Я сейчас не могу понять как в данной схеме работы с ордерами значение индикатора может быть с трейлингом по общему профиту открытых позиций связано.
Индикатором, его значением, ведь может служить не только значение, например, МАшки на нужном баре. В трал можно передавать значение цены, рассчитанное для перемещения общего стопа позиций.
Впрочем, не понятно что у вас за трал по прибыли открытых позиций - что, и когда именно он тралит.
Все тралы здесь. Из файла TrailingFuncLib.mq4 беру функцию TrailingStairs - ТРЕЙЛИНГ СТАНДАРТНЫЙ-СТУПЕНЧАСТЫЙ. Каждый ордер тралится независимо.
Индикатором, его значением, ведь может служить не только значение, например, МАшки на нужном баре. В трал можно передавать значение цены, рассчитанное для перемещения общего стопа позиций.
Впрочем, не понятно что у вас за трал по прибыли открытых позиций - что, и когда именно он тралит.
Впринципе, да, по средней цене мне как-то предлагали тралить. Вроде всё логично, но что значит средняя цена? Это (цена 1 ордера + Step*Point + (цена 2 ордера + Step*Point) + цена 3 ордера) / 3 ? То есть это много параметров - надо вызывать открытые позиции и текущую цену каждой позиции. Да в общем меня этот трейлинг не так напрягает как то что на тестах советник сливается. Это что же в реале будет. Нет можно настроить, но ведь опятьже мы ничего не знаем какой оборот примет график валюты через неделю месяц, то есть есть слабость одна - если открыто 3 ордера и контр-движение рынка - советник сливается от просадки. Значит надо думать об ограничении просадки и закрытии позиций до того как обнулится депозит. Короче говоря меня сейчас больше всего именно Фокс интересует)))
Сам додуматься не могу и инфы тоже конкретной не нашел(( Суть такая - обозначить в коде ценовые границы, ближайших зон, построенных индикатором. Начал писать код, но запутался, и не знаю правильно я делаю, или совсем не туда. Гляньте и направьте на путь истинный, плиз.
int obj_total=ObjectsTotal();
string name;
for(int i=0;i<obj_total;i++)
{
name = ObjectName(i);
if(ObjectType(name)==OBJ_RECTANGLE)
{
pr1=ObjectGet(name,OBJPROP_PRICE1);// верхняя цена зоны
pr2=ObjectGet(name,OBJPROP_PRICE2);// нижняя цена зоны
}
}
Разобрался - видимо терминалу не хватало памяти - закрыл пару чартов и заработало.
Спасибо - действительно, вычисления происходят.
А если переменные не int типа, а bool , то как быть?
Различия минимальные. Одна из переменных логическая.
При выводе будет написано true или false
Различия минимальные. Одна из переменных логическая.
При выводе будет написано true или false