Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 1131

 
Как сделать в пользовательском  индикаторе линию бид?

прописываю вот так

      ObjectCreate("line",OBJ_HLINE,windowIndex,0,Bid);
              
      ObjectSet("line",OBJPROP_COLOR,Red);
      ObjectSet("line",OBJPROP_WIDTH,1);

      WindowRedraw();  

но она один раз строится и так уже стоит. статическая.
а мне нужно чтобы она изменялась с каждым тиком, как линия бид на графике цены.
 
Alexey Viktorov:

Код суперский, но по-прежнему непонятен один момент

Вот мы создали объект, присвоили ему уровень цены (допустим цена последнего открытого +500п вверх для сетки покупок)

а я его взял и вручную перетащил ниже

как тогда будет выглядеть условие "если бид выше линии крыть все"   Как то должно где - то сохраняться его текущее положение согласно заданным перемещениям, т.е возможность получить уровень цены на котором он расположен.

по схеме

--запрос цены в тике

 --если она не удовлетворяет условиям закрытия

-- оставить все как есть 

ну и как я понял придется отдельный текстовый привязывать для обозначения  

 
igrok333:
Как сделать в пользовательском  индикаторе линию бид?

прописываю вот так

      ObjectCreate("line",OBJ_HLINE,windowIndex,0,Bid);
              
      ObjectSet("line",OBJPROP_COLOR,Red);
      ObjectSet("line",OBJPROP_WIDTH,1);

      WindowRedraw();  

но она один раз строится и так уже стоит. статическая.
а мне нужно чтобы она изменялась с каждым тиком, как линия бид на графике цены.
Почитайте про ObjectMove().
 

Добрый день!

 

Подскажите простейшую вещь:

Можно  рисовать индикатор только через массив индикатора или есть другие способы привязки к графику?

 

Вопрос в следующем - я собираю массив дат, по которым я потом хочу нарисовать отметки. И мне получается для этого необходимо будет проводить поиск по массиву time[], есть ли другие способы нанести на график соответствующие отметки?

 
Anttonnio:

Добрый день!

 

Подскажите простейшую вещь:

Можно  рисовать индикатор только через массив индикатора или есть другие способы привязки к графику?

 

Вопрос в следующем - я собираю массив дат, по которым я потом хочу нарисовать отметки. И мне получается для этого необходимо будет проводить поиск по массиву time[], есть ли другие способы нанести на график соответствующие отметки?

можете стрелочки нарисовать сами как OBJ_ARROW

то есть необязательно заводить индикаторные буферы на каждый чих :-)
 

Помогите фрагментом кода для советника! 

Как можно удалять ранее установленные отложенные ордера, которые находятся от текущей цены больше чем на 200 пунктов? 


 Функция OrderDelete привязывается к номеру ордера! А номер ордера в момент удаления может быть не известен!

 
Anton Sokolov:

Помогите фрагментом кода для советника! 

Как можно удалять ранее установленные отложенные ордера, которые находятся от текущей цены больше чем на 200 пунктов? 


 Функция OrderDelete привязывается к номеру ордера! А номер ордера в момент удаления может быть не известен!

В цикле пройтись по всем ордерам,  применить OrderSelect, на отложках - OrderTicket, потом удалять по тикету. Как может быть неизвестен номер тикета в таком случае, я как-то даже не представляю себе.

Кодобаза прямо таки нашпигована примерами кода, ищите и найдёте даже больше, чем искали. 

 

1. Есть какой-то удобный инструмент по синхронизации экспертов индикаторов и скриптов между терминалами?    (например на одном терминале программирую, затем нужно эксперта разослать в терминалы на которых идет торговля) 

 

2. Есть пример автоматического обновления (загрузки новой версии) эксперта на работающем графике? 

 
Anton Sokolov:

Подскажите как считает ордера функция OrdersTotal?

Допустим у меня 10 открытых ордеров (разнообразно buy и sell) и 10 отложенных ордеров (разнообразно buy limit и sell limit, buy stop и sell stop).

Открытие и выставление отложенных происходило случайным образом. 

Какие из них будут первыми по счету? От чего начинается отсчет? 

Запустите этот код, и почитайте журнал

bool flag=true;

void OnTick()
{
//--
if(flag)
  {
  for(int i=0; i<OrdersTotal(); i++)
   {
   if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
    {
     Print(i," = ",OrderOpenTime());
    }
   }
  flag=false;
}

//-
}
 
Anton Sokolov:

Подскажите как считает ордера функция OrdersTotal?

Допустим у меня 10 открытых ордеров (разнообразно buy и sell) и 10 отложенных ордеров (разнообразно buy limit и sell limit, buy stop и sell stop).

Открытие и выставление отложенных происходило случайным образом. 

Какие из них будут первыми по счету? От чего начинается отсчет? 

Где-то в справке разработчики сообщали, что никакая упорядоченность не гарантируется.
Причина обращения: