Да, пробовал, если другие свойства не изменять - все просто принудительно переводится в чарт и все. А насчет того, что сразу садиться и т.д., не прочитав документации.
Да, я не величайший mql программист, однако, знаний достаточно, чтобы создать мультивалютный/мультитаймфреймовый сигнальный индикатор. Моя проблема только лишь в том, что я не нашел, где конкретно нужно изменить свойство (и какое свойство), чтобы поставить этот индикатор в окно индикатора, а не графика.
P.S. я и не думал, что такой простой вопрос вызовет такую бурю эмоций у вас, уважаемые форумчане
Выложите свой индикатор. Можно даже удалить все кроме OnInit(). Все, что ниже OnInit().
Приложу не сам индикатор, а функцию инициализации, где рисуются все объекты. Более чем уверен, что проблема именно на этом месте (возможно "0" в параметрах создания объекта нужно изменить на что-то)
int OnInit() { EventSetTimer(Timer); for (int x=0; x<23; x++) for (int y=0; y<9; y++) { ObjectCreate(0, "signal"+IntegerToString(x)+IntegerToString(y),OBJ_LABEL,0,0,0,0,0); // создаем очередную метку. Обратите внимание, что название метки // создается "на лету" и зависит от счетчиков "x" и "y" ObjectSetString (0, "signal"+IntegerToString(x)+IntegerToString(y), OBJPROP_FONT, "Wingdings");
// меняем шрифт на Wingdingsб чтобы получить доступ к символам ObjectSetInteger (0,"signal"+IntegerToString(x)+IntegerToString(y), OBJPROP_COLOR, Color_DontTrade);
// меняем цвет на синий ObjectSetInteger (0,"signal"+IntegerToString(x)+IntegerToString(y), OBJPROP_FONTSIZE, 65); ObjectSetString(0, "signal"+IntegerToString(x)+IntegerToString(y), OBJPROP_TEXT, CharToString (110));
// изменяем координату Х. // x*20 - каждая метка создается с интервалом в 20 пикселей по // горизонтали и напрямую зависит от счетчика "x" ObjectSetInteger(0, "signal"+IntegerToString(x)+IntegerToString(y),OBJPROP_YDISTANCE,y*55+50);
// изменяем координату Y. // y*20 - каждая метка создается с интервалом в 20 пикселей по // вертикали и напрямую зависит от счетчика "y" } for(int x=0;x<9;x++) { // все как обычно ObjectCreate(0, "textPeriod"+IntegerToString(x),OBJ_LABEL,0,0,0,0,0); ObjectSetInteger(0,"textPeriod"+IntegerToString(x),OBJPROP_XDISTANCE,5); ObjectSetInteger(0,"textPeriod"+IntegerToString(x),OBJPROP_YDISTANCE,x*55+85); ObjectSetInteger (0,"textPeriod"+IntegerToString(x), OBJPROP_COLOR, Color_TimeFrame);
// меняем цвет на синий ObjectSetInteger (0,"textPeriod"+IntegerToString(x), OBJPROP_FONTSIZE, 20); ObjectSetString(0,"textPeriod"+IntegerToString(x),OBJPROP_TEXT, periodString[x]); // используем массив periodString[], чтобы указать надписи }
for(int x=0;x<23;x++) { // все как обычно ObjectCreate(0, "textSymbol"+IntegerToString(x),OBJ_LABEL,0,0,0,0,0); ObjectSetInteger(0,"textSymbol"+IntegerToString(x),OBJPROP_XDISTANCE,x*55 +65); ObjectSetInteger(0,"textSymbol"+IntegerToString(x),OBJPROP_YDISTANCE, 45); ObjectSetInteger (0,"textSymbol"+IntegerToString(x), OBJPROP_COLOR, Color_Symbol);
// меняем цвет на синий ObjectSetInteger (0,"textSymbol"+IntegerToString(x), OBJPROP_FONTSIZE, 9); ObjectSetString(0,"textSymbol"+IntegerToString(x),OBJPROP_TEXT, aSymbol(x));
// используем массив periodString[], чтобы указать надписи return(0);
А где здесь обсуждаемые строки indicator_chart_window или indicator_separate_window ?
Приложите индикатор. Проверю и попробую без лишних слов помочь
Dmitry Fedoseev: Выложите свой индикатор. Можно даже удалить все кроме OnInit(). Все, что ниже OnInit().
в предыдущем ответе выложил.
Еще скажите, пожалуйста, заинтересовала возможность цеплять новости из метатрейдера. Можно ли это делать? Не говорю о полноценном алгоритме, но в какую сторону копать?
Еще скажите, пожалуйста, заинтересовала возможность цеплять новости из метатрейдера. Можно ли это делать? Не говорю о полноценном алгоритме, но в какую сторону копать?
Средствами mql не выкопать.
Если, конечно, Вы говорите не про метки на экране. Тогда, думаю, есть варианты.
Еще скажите, пожалуйста, заинтересовала возможность цеплять новости из метатрейдера. Можно ли это делать? Не говорю о полноценном алгоритме, но в какую сторону копать?
Не то выложили. Интересно то, что расположено от самого верха файла до функции OnInit().
Про новости незнаю, наверно только объекты смотреть на графики, но это календарь. А вот сами новости, никак.
я слышал, можно скриптом проверять наличие открытых ордеров и всю информацию с них брать.
Неужели ничего аналогичного нельзя сделать с новостями?
Про .net не знаю, не знаком. Самое простое - открываете календарь, добавляете новости на чарт, вкл. автообновление. Появляются объекты типа event. Перебираете их, отбираете нужные.
Хаха. Так он графическими объектами рисует. У ObjectCreate() есть параметр sub_window - в нем надо указать номер подокна, а он узнается через WindowFind().
Но этого мало, надо, чтобы в подоконе был такой же диапазон значений как на графике цены, потому нужно создать буфер и заполнить его ценовыми значениями.
Да, пробовал, если другие свойства не изменять - все просто принудительно переводится в чарт и все. А насчет того, что сразу садиться и т.д., не прочитав документации.
Да, я не величайший mql программист, однако, знаний достаточно, чтобы создать мультивалютный/мультитаймфреймовый сигнальный индикатор. Моя проблема только лишь в том, что я не нашел, где конкретно нужно изменить свойство (и какое свойство), чтобы поставить этот индикатор в окно индикатора, а не графика.
P.S. я и не думал, что такой простой вопрос вызовет такую бурю эмоций у вас, уважаемые форумчане
Приложу не сам индикатор, а функцию инициализации, где рисуются все объекты. Более чем уверен, что проблема именно на этом месте (возможно "0" в параметрах создания объекта нужно изменить на что-то)
{
EventSetTimer(Timer);
for (int x=0; x<23; x++)
for (int y=0; y<9; y++)
{
ObjectCreate(0, "signal"+IntegerToString(x)+IntegerToString(y),OBJ_LABEL,0,0,0,0,0);
// создаем очередную метку. Обратите внимание, что название метки
// создается "на лету" и зависит от счетчиков "x" и "y"
ObjectSetString (0, "signal"+IntegerToString(x)+IntegerToString(y), OBJPROP_FONT, "Wingdings");
// меняем шрифт на Wingdingsб чтобы получить доступ к символам
ObjectSetInteger (0,"signal"+IntegerToString(x)+IntegerToString(y), OBJPROP_COLOR, Color_DontTrade);
// меняем цвет на синий
ObjectSetInteger (0,"signal"+IntegerToString(x)+IntegerToString(y), OBJPROP_FONTSIZE, 65);
ObjectSetString(0, "signal"+IntegerToString(x)+IntegerToString(y), OBJPROP_TEXT, CharToString (110));
//делаем квадратики
ObjectSetInteger(0, "signal"+IntegerToString(x)+IntegerToString(y),OBJPROP_XDISTANCE,x*55+60);
// изменяем координату Х.
// x*20 - каждая метка создается с интервалом в 20 пикселей по
// горизонтали и напрямую зависит от счетчика "x"
ObjectSetInteger(0, "signal"+IntegerToString(x)+IntegerToString(y),OBJPROP_YDISTANCE,y*55+50);
// изменяем координату Y.
// y*20 - каждая метка создается с интервалом в 20 пикселей по
// вертикали и напрямую зависит от счетчика "y"
}
for(int x=0;x<9;x++)
{
// все как обычно
ObjectCreate(0, "textPeriod"+IntegerToString(x),OBJ_LABEL,0,0,0,0,0);
ObjectSetInteger(0,"textPeriod"+IntegerToString(x),OBJPROP_XDISTANCE,5);
ObjectSetInteger(0,"textPeriod"+IntegerToString(x),OBJPROP_YDISTANCE,x*55+85);
ObjectSetInteger (0,"textPeriod"+IntegerToString(x), OBJPROP_COLOR, Color_TimeFrame);
// меняем цвет на синий
ObjectSetInteger (0,"textPeriod"+IntegerToString(x), OBJPROP_FONTSIZE, 20);
ObjectSetString(0,"textPeriod"+IntegerToString(x),OBJPROP_TEXT, periodString[x]);
// используем массив periodString[], чтобы указать надписи
}
for(int x=0;x<23;x++)
{
// все как обычно
ObjectCreate(0, "textSymbol"+IntegerToString(x),OBJ_LABEL,0,0,0,0,0);
ObjectSetInteger(0,"textSymbol"+IntegerToString(x),OBJPROP_XDISTANCE,x*55 +65);
ObjectSetInteger(0,"textSymbol"+IntegerToString(x),OBJPROP_YDISTANCE, 45);
ObjectSetInteger (0,"textSymbol"+IntegerToString(x), OBJPROP_COLOR, Color_Symbol);
// меняем цвет на синий
ObjectSetInteger (0,"textSymbol"+IntegerToString(x), OBJPROP_FONTSIZE, 9);
ObjectSetString(0,"textSymbol"+IntegerToString(x),OBJPROP_TEXT, aSymbol(x));
// используем массив periodString[], чтобы указать надписи
return(0);
А где здесь обсуждаемые строки indicator_chart_window или indicator_separate_window ?
Приложите индикатор. Проверю и попробую без лишних слов помочь
Выложите свой индикатор. Можно даже удалить все кроме OnInit(). Все, что ниже OnInit().
в предыдущем ответе выложил.
Еще скажите, пожалуйста, заинтересовала возможность цеплять новости из метатрейдера. Можно ли это делать? Не говорю о полноценном алгоритме, но в какую сторону копать?
в предыдущем ответе выложил.
Еще скажите, пожалуйста, заинтересовала возможность цеплять новости из метатрейдера. Можно ли это делать? Не говорю о полноценном алгоритме, но в какую сторону копать?
Средствами mql не выкопать.
Если, конечно, Вы говорите не про метки на экране. Тогда, думаю, есть варианты.
Средствами mql не выкопать.
а средствами "со стороны", например, .net и т.д.?
я слышал, можно скриптом проверять наличие открытых ордеров и всю информацию с них брать.
Неужели ничего аналогичного нельзя сделать с новостями?
в предыдущем ответе выложил.
Еще скажите, пожалуйста, заинтересовала возможность цеплять новости из метатрейдера. Можно ли это делать? Не говорю о полноценном алгоритме, но в какую сторону копать?
Не то выложили. Интересно то, что расположено от самого верха файла до функции OnInit().
Про новости незнаю, наверно только объекты смотреть на графики, но это календарь. А вот сами новости, никак.
Приложите индикатор. В предыдущем ответе отсутствуют обсуждаемые строки indicator_chart_window или indicator_separate_window
Проверю и попробую без лишних слов помочь
а средствами "со стороны", например, .net и т.д.?
я слышал, можно скриптом проверять наличие открытых ордеров и всю информацию с них брать.
Неужели ничего аналогичного нельзя сделать с новостями?
Приложите индикатор. В предыдущем ответе отсутствуют обсуждаемые строки indicator_chart_window или indicator_separate_window
Проверю и попробую без лишних слов помочь
Хаха. Так он графическими объектами рисует. У ObjectCreate() есть параметр sub_window - в нем надо указать номер подокна, а он узнается через WindowFind().
Но этого мало, надо, чтобы в подоконе был такой же диапазон значений как на графике цены, потому нужно создать буфер и заполнить его ценовыми значениями.