Возможно ли привязать отображение графических объектов к конкретному графику? - страница 4

 
Да уже вроде определились, что тут реализовать программно. А большего и не нужно :)
 
На самом деле, понятно, как это сделать. Эксперт, скрипт, индикатор - не важно. При создании графического объекта пишем в дескриптор символ пары. Перед каждым обновлением экрана проверяем дескрипторы объектов и устанавливаем параметр видимости EMPTY для тех, чей символ не совпадает с текущим символом.
 
alexx_v:
Перетянуть с обзора рынка мышей.
Заканчивайте колдовать, у меня и индикаторы переползают
 
ммм?
 

я думаю это недокументированный способ вызова шаблона (перетаскивание мышью)

а старый график старого инструмента исчезает - на его месте новый инструмент с теми же настройками

 
Да интересно получается быстрая смена инструмента по шаблону.
 
Тип того, к тому же "шаблон" можно менять вместе с инструментом.
 
alexx_v:

Спасибо, хорошая идея. Достаточно в описании объекта писать Символ графика, и сравнивать. Не совпадает - умножать значения на -1, а если совпадает и значения отрицательные - опять же умножать на -1.

Кстати я ж советника написал, а сюда не выложил, может кому и понадобится. Только он под конкретно прямоугольники заточен - кому надо перезаточит я думаю )

//+------------------------------------------------------------------+
//|                                                 Object Hider.mq4 |
//|                      Copyright © 2011, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
  int    obj_total=ObjectsTotal(16);
  for(int i=0;i<obj_total;i++)
    {
     string obj_name=ObjectName(i);
     string obj_descript=ObjectDescription(obj_name);
     double obj_price1=ObjectGet(obj_name,OBJPROP_PRICE1);
     double obj_price2=ObjectGet(obj_name,OBJPROP_PRICE2);
     if ((obj_descript!=Symbol() && obj_price1>0) || (obj_descript==Symbol() && obj_price1<0))
       {
        ObjectSet(obj_name,OBJPROP_PRICE1,obj_price1*(-1));
        ObjectSet(obj_name,OBJPROP_PRICE2,obj_price2*(-1));
        
        Print(i," ",obj_name,obj_descript,ObjectGet(obj_name,OBJPROP_PRICE1),ObjectGet(obj_name,OBJPROP_PRICE2));
       }         
    }
  WindowRedraw(); 
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
  
//----
   return(0);
  }
//+------------------------------------------------------------------+

Вроде работает. Хотелось бы чтоб он был шустрее - покааа дождется тика после смены символа графика.. :(

ЗЫ: исправил, стал шустрее.

 

1) Делать все в ините

2) На выходе из цикла WindowRedraw();

 
Всё вместе делать или что-то одно?
Причина обращения: