Любые вопросы новичков по 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
Вы точно посмотрели, последний код, что опубликовали? Если да, то мне нужен отдых... спасибо.