Изменить таймфрейм графика

 
Пишу советник, нужно значение индюка с двух ТФ, через iCustom инфа не видергивается (там один буфер, и чертит три линии), поэтому беру координаты линий через график, так что интересует нет ли функции смены таймфрейма графика.
Или, кто может, расскажите как достать инфу с прикрепленного индюка, хотя первый вариант предпочтительней.
Заранее СПАСИБО.
Файлы:
 
justMAX:
Пишу советник, нужно значение индюка с двух ТФ, через iCustom инфа
не видергивается (там один буфер, и чертит три линии), поэтому
беру координаты линий через график, так что интересует нет ли
функции смены таймфрейма графика.

Или, кто может, расскажите как достать инфу с прикрепленного
индюка, хотя первый вариант предпочтительней.
Первый вопрос неясен.
Нестандартный метод получения данных с наброшенного в режиме визуального тестирования индикатора есть.
Можно добавить в индикатор постановку графических объектов с нужными параметрами,  а в советнике искать эти
объекты и снимать с них параметры. Но это будет работать только в режиме визуального тестирования и в демо/реале.
ИМХО, проще поковыряться с индикатором и iCustom.
 
granit77:
justMAX:
Пишу советник, нужно значение индюка с двух ТФ, через iCustom инфа
не видергивается (там один буфер, и чертит три линии), поэтому
беру координаты линий через график, так что интересует нет ли
функции смены таймфрейма графика.

Или, кто может, расскажите как достать инфу с прикрепленного
индюка, хотя первый вариант предпочтительней.
Первый вопрос неясен.
Нестандартный метод получения данных с наброшенного в режиме визуального тестирования индикатора есть.
Можно добавить в индикатор постановку графических объектов с нужными параметрами, а в советнике искать эти
объекты и снимать с них параметры. Но это будет работать только в режиме визуального тестирования и в демо/реале.
ИМХО, проще поковыряться с индикатором и iCustom.

Проще все расчеты перенести в советник по любым наперед заданным тайм-фреймам.  В данном случае другого варианта нет. Хотя варианты есть конечно, но лучше их не использовать.
 
Vinin:


Проще все расчеты перенести в советник по любым наперед заданным
тайм-фреймам.  В данном случае другого варианта нет. Хотя
варианты есть конечно, но лучше их не использовать.

То есть нельзя просто на графике переключить таймфрейм? Неужели нет способа?
Если так, то подскажите как в индикаторе выделить в отдельные буферы координаты линий на нужном баре.
 
justMAX:
Vinin:


Проще все расчеты перенести в советник по любым наперед заданным
тайм-фреймам. В данном случае другого варианта нет. Хотя
варианты есть конечно, но лучше их не использовать.

То есть нельзя просто на графике переключить таймфрейм? Неужели нет способа?
Если так, то подскажите как в индикаторе выделить в отдельные буферы координаты линий на нужном баре.

Средствами MQL переключить нельзя ( но на форуме это неоднократно обсцждалось, реализации есть). Но это уже будет не тестирование.

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

Для тестирования способ не подходит - заглядывание в будущее.

Самы простой способ, расчет в советнике. Просто перенести его из индикатора в советник.

 

Средствами MQL переключить нельзя ( но на форуме это неоднократно
обсцждалось, реализации есть). Но это уже будет не тестирование.



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



Для тестирования способ не подходит - заглядывание в будущее.



Самы простой способ, расчет в советнике. Просто перенести его
из индикатора в советник.





Что ж буду пробовать, спасибо.
 
#property copyright "justMAX"

extern double lot=1;
int ticket=-1;


int start()
{


if(ticket==-1)      
{
if(iCustom(NULL,0,"_#PatSim_black1",0,1)==High[1])
ticket=OrderSend(NULL,OP_SELL,lot,Bid,5*Point,0,0,0,777,0,Red); 

if(iCustom(NULL,0,"_#PatSim_black1",0,1)==Low[1])
ticket=OrderSend(NULL,OP_BUY,lot,Ask,5*Point,0,0,0,777,0,Green); 
}

if(ticket>=0)   
if(OrderSelect(ticket,SELECT_BY_TICKET))
{
if(OrderType()==OP_BUY)
if(iCustom(NULL,0,"_#PatSim_black",0,1)==High[1])
if(OrderClose(ticket,OrderLots(),Bid,10,Green))
ticket=-1;

if(OrderType()==OP_SELL)
if(iCustom(NULL,0,"_#PatSim_black",0,1)==Low[1])
if(OrderClose(ticket,OrderLots(),Ask,10,Red))
ticket=-1;
} 
     
return(0);
}

Это малая, но основная часть моего первого советника, на тестировании в встроенном тестере не открываются сделки, хотя должны - индюк дает сигналы.
Прошу сказать в чем ошибка, опыта в этой среде нет, хотя знаю С++.
Спасибо
 
Сократил код для малого куска времени, на котором тестирую, где есть вершины 117.18 и 119.83, и все равно количество сделок 0.
В чем дело?


#property copyright "justMAX"
 
extern double lot=1;
int ticket;
 
 
int start()
{
 
if(Low[1]==117.18)
ticket=OrderSend(NULL,OP_BUY,lot,Ask,5*Point,0,0,0,777,0,Green); 
 
 
if(High[1]==119.83)
OrderClose(ticket,lot,Bid,10,Green);
     
return(0);
}
 
justMAX:
В чем дело?
Не сочтите за отписку, но есть много простейших способов отладки советников,  описанных, в том числе,
и здесь, на форуме. Поэтому, прежде, чем задавать вопросы, следует вывести через Print и (или) Comment промежуточные
данные, например, Low[1], High[1], ticket, iCustom и пр. Обязательна обработка ошибок с выводом и анализом кода ошибки.
Кроме того, при прямых сравнениях double возможны накладки, лучше использовать обходные пути.
Обсуждения таких и подобных проблем и куски требуемых кодов щедро разбросаны по форуму - пользуйтесь поиском и хелпом.
После этого 90% вопросов снимется.
На оставшиеся 10% местные профи охотно Вам ответят - всегда приятно помочь человеку, который и сам упорно копает.
 
justMAX:
if(iCustom(NULL,0,"_#PatSim_black1",0,1)==High[1])
ticket=OrderSend(NULL,OP_SELL,lot,Bid,5*Point,0,0,0,777,0,Red); 

if(iCustom(NULL,0,"_#PatSim_black1",0,1)==Low[1])
ticket=OrderSend(NULL,OP_BUY,lot,Ask,5*Point,0,0,0,777,0,Green); 



Выделил, то что мне не понравилось. Читайте также что пишет в логах.
 
justMAX:
Сократил код для малого куска времени, на котором тестирую, где есть вершины 117.18 и 119.83, и все равно количество сделок 0.
В чем дело?


if(Low[1]==117.18)

 
if(High[1]==119.83)


Поищи что пишут люди о сравнении действительных чисел.
Это есть тут же на форуме.
Причина обращения: