...или, может, через дополнительные буфера как-то?...............
Если добавить в начале индикатора:
#property strict
то, я думаю, Вы сможете понять, в чем дело. Индикатор вообще перестанет работать по ошибке выхода за пределы массива.
Если добавить в начале индикатора:
то, я думаю, Вы сможете понять, в чем дело. Индикатор вообще перестанет работать по ошибке выхода за пределы массива.
Интересно, Спасибо!
Вот только легче не стало))))
по поводу:
ObjectCreate("BuyTg"[i],OBJ_TEXT,0,Time[i+1],Low[i+1]-st1*Point);
пишет:
implicit conversion from 'number' to 'string'
Интересно, Спасибо!
Вот только легче не стало))))
по поводу:
ObjectCreate("BuyTg"[i],OBJ_TEXT,0,Time[i+1],Low[i+1]-st1*Point);
пишет:
implicit conversion from 'number' to 'string'
По поводу последнего, это легко, здесь неявное преобразование из integer в string. Здесь нужно i преобразовать в string например, так:
ObjectCreate("BuyTg"+(string)i,OBJ_TEXT,0,Time[i+1],Low[i+1]-st1*Point);
или так:
ObjectCreate("BuyTg"+IntegerToString(i),OBJ_TEXT,0,Time[i+1],Low[i+1]-st1*Point);
Подскажите, кто знает.
Как текст писать через буфер?
Т.е., надо расположить определённый текст на графике в определённом месте. Функция OBJ_TEXT не работает на истории. Кроме того, при изменении настроек индюка текст - как объект - не изменится, а перепишется "сверху". Если вставить OBJ_DELET, все текстовые метки будут переписываться при каждом тике, что тоже не есть гуд.
Идея же в том, чтобы значения на графике на истории менялись с изменением настроек индюка.
Не хватает у меня образования для реализации этой идеи. Помогите, пожалуйста, кто может/знает.
Подскажите, кто знает.
Как текст писать через буфер?
Т.е., надо расположить определённый текст на графике в определённом месте. Функция OBJ_TEXT не работает на истории. Кроме того, при изменении настроек индюка текст - как объект - не изменится, а перепишется "сверху". Если вставить OBJ_DELET, все текстовые метки будут переписываться при каждом тике, что тоже не есть гуд.
Идея же в том, чтобы значения на графике на истории менялись с изменением настроек индюка.
Не хватает у меня образования для реализации этой идеи. Помогите, пожалуйста, кто может/знает.
Просто внимательно посмотрите на рисунок, потом на описание, а потом изучите код в документации и всё будет.
https://docs.mql4.com/ru/constants/objectconstants/enum_object/obj_text
- docs.mql4.com
Просто внимательно посмотрите на рисунок, потом на описание, а потом изучите код в документации и всё будет.
https://docs.mql4.com/ru/constants/objectconstants/enum_object/obj_text
Видел я эту статью, разумеется. На мой взгляд:
1) слишком громоздко
2) что-то я совершенно не понял оператор TextCreate. И не только я, но и MetaEditor его тоже не понимает)))))
Интересно, Спасибо!
Вот только легче не стало))))
по поводу:
ObjectCreate("BuyTg"[i],OBJ_TEXT,0,Time[i+1],Low[i+1]-st1*Point);
пишет:
implicit conversion from 'number' to 'string'
Вы точно с BuyTg и c SellTg разобрались? Поняли, что в приведенном коде это реально пустое место, из которого Вы хотите что-то получить?
Подскажите, кто знает.
Как текст писать через буфер?
Т.е., надо расположить определённый текст на графике в определённом месте. Функция OBJ_TEXT не работает на истории. Кроме того, при изменении настроек индюка текст - как объект - не изменится, а перепишется "сверху". Если вставить OBJ_DELET, все текстовые метки будут переписываться при каждом тике, что тоже не есть гуд.
Идея же в том, чтобы значения на графике на истории менялись с изменением настроек индюка.
Не хватает у меня образования для реализации этой идеи. Помогите, пожалуйста, кто может/знает.
Строки через буфер не отображаются, только символы. Ведь буфер - это число типа double. Некуда там строку записывать.
Все тексты отображаются через OBJ_TEXT. Прекрасно работает. Удалять на каждом тике информацию, конечно же, не нужно. Это делается один раз при инициализации индикатора или при подкачке истории. На каждом новом тике нужно будет отобразить новый текст или изменить последний имеющийся. В чем именно загвоздка? Покажите код (код вставляется через кнопку SRC).
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Добрый День!
Идея:
Под собственно сигналом на основном графике индюк должен рисовать ещё и результаты вычислений. То есть - стрелка, под ней цифра. Написал вот такую штуку:
(выдержки)
//---- indicator settings
#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 Blue
#property indicator_color2 Red
#property indicator_color3 White
//---- indicator buffers
double BufferUp[],BufferDn[],BufferCl[],BuyTg[],SellTg[];
int st,st1, nA, i;
int init()
{
IndicatorBuffers(3);
//---- drawing settings
SetIndexStyle(0,DRAW_ARROW,2,1);
SetIndexArrow(0,233);
SetIndexStyle(1,DRAW_ARROW,2,1);
SetIndexArrow(1,234);
SetIndexStyle(2,DRAW_ARROW,2,2);
SetIndexArrow(2,251);
SetIndexBuffer(0,BufferUp);//стрелка синяя верх
SetIndexBuffer(1,BufferDn);//стрелка красная вниз
SetIndexBuffer(2,BufferCl);//крестик
return(0);}
int start()
{
……………………………..
for(i=limit1; i>=0; i--)
{
if(nA == 0)
{
if(……………………………)
{
BuyTg[i] = Close[i] + ……………………………;
// Print("BuyTg=",BuyTg[i]," ADX=",ADX[i]);
ObjectCreate("BuyTg"+i,OBJ_TEXT,0,Time[i+1],Low[i+1]-st1*Point);
ObjectSetText("BuyTg"+i,DoubleToStr(BuyTg[i],5),10,NULL,White);
BufferUp[i+1]=Low[i+1]-st*Point;
nA = 20;
}
}
//=========================================
это - покупка, дальше - продажа, то же самое....
Так вот - самое интересное:
1) БУФЕРА-СТРЕЛКИ ОН РИСУЕТ, А ЦИФРЫ НЕ ХОЧЕТ, ХОТЬ ТРЕСНИ! И НА ИСТОРИИ, И ОН-ЛАЙН. Иногда - рисует, но как-то выборочно.....)))
2) А если рисует цифру, то вместо вот этого самого BuyTg[i] выдаёт нули. Послушно, как велено с пятью дополнительными нулями после запятой!
3) Печатать (Print) в журнале не хочет вообще ничего! Поэтому я его заремил за ненадобностью.
4) Пробовал ObjectCreate("BuyTg"[i],.........) - один хрен.
ПОМОГИТЕ, ЛЮДИ ДОБРЫЕ! КАК ЕГО ЗАСТАВИТЬ РАБОТАТЬ???