Всем доброго времени суток. Сам студент, инженер, решил освоить ООП MQL5, но плавание по справке не приносит толкового результата. Поставил себе первичную задачу: написать индкатор. Но он должен выводить в отдельном окне не движение линии по графу, а числовые значения . Понимаю, что вопрос может звучать глупо, однако пока трудно понимается, но очень уж хочется. Возможна ли реализация поставленной самому себе задачи? Какие советы от сильных языка сего можете дать?
- Rак прорисовать 2 отдельных отрезка.
- Alert или Print в "Блокнот" из эксперта?
- Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
Переменные простые:
Max - максимум цены
Mid - средняя
Min - минимум
Open - открытие
Все переменные считывают!(без сохранения в БД) показатели в определенный период по паре и будут выдавать мне числовое значение. В силу сложности (по какой то причине) для меня в восприятии языка, пока имею только алгоритмическое представление, как и что делать. Help, comrades!)
Глобальная цель: из этих переменных в определенное время брать значения и подставлять под отдельные формулы, которые будут так же выдавать значения, анализироваться и выдавать аутпут влияющий на графическое отображение. В терминологии экономической (трейдинга) не силён, у меня скорее математический и проэктный интерес создать это. Если мною описанное ТЗ не ясно, могу описать подробнее. В голове все очень просто, а на деле заблудился в трёх соснах)
Не очень понял, проблема в выводе текста на экран, что ли? Так это как два пальца ))
input int FontSize = 10; input color FontColor = clrYellow; input string FontName = "Tahoma"; input int XOffset = 10; input int YOffset = 15; input int SpreadSmoothTicks = 20; string lNames[]={"Margin4lot= ", "PointPrice= ", "Leverage= 1:","SpreadSmooth= ","SpreadPrice= ","StopLevel= ","MarginCall= ", "StopOut= "}; void OnInit() { ObjectsDeleteAll(0,"SIP"); Sleep(200); ChartRedraw(); Sleep(200); for(int n=ArraySize(lNames)-1; n>=0; n--) //создаем 8 лейблов { if(!CreateLabel("SIP_"+lNames[ArraySize(lNames)-1-n],XOffset,YOffset*n+YOffset)) Print("CreateLabel returns false, n = ",IntegerToString(n)); } Sleep(200); ChartRedraw(); } //Создание лейбла, значения Font*** берутся из настроек индикатора bool CreateLabel(string name,int x,int y=10) { if(!ObjectCreate(0,name,OBJ_LABEL,0,0,0)) return false;; ObjectSetInteger(0,name,OBJPROP_ANCHOR,ANCHOR_LEFT_LOWER); ObjectSetInteger(0,name,OBJPROP_CORNER,CORNER_LEFT_LOWER); ObjectSetInteger(0,name,OBJPROP_XDISTANCE,x); ObjectSetInteger(0,name,OBJPROP_YDISTANCE,y); ObjectSetInteger(0,name,OBJPROP_FONTSIZE,FontSize); ObjectSetInteger(0,name,OBJPROP_COLOR,FontColor); ObjectSetInteger(0,name,OBJPROP_SELECTABLE,true); ObjectSetString(0,name,OBJPROP_FONT,FontName); ChartRedraw(); return true; } где-то выводим текст в лейблы ObjectSetString(0,"SIP_"+lNames[0],OBJPROP_TEXT,lNames[0]+DoubleToString(margin,2) + " MarginHedjed4lot= " + DoubleToString(marginHedged/m_accountInfo.Leverage(),2)); ObjectSetString(0,"SIP_"+lNames[1],OBJPROP_TEXT,lNames[1]+DoubleToString(m_symbolInfo.TickValue(),2)); ObjectSetString(0,"SIP_"+lNames[2],OBJPROP_TEXT,lNames[2]+IntegerToString(m_accountInfo.Leverage())); ObjectSetString(0,"SIP_"+lNames[3],OBJPROP_TEXT,lNames[3]+DoubleToString(sprd,_Digits) + ", RealSpread= " + DoubleToString(m_symbolInfo.Ask() - m_symbolInfo.Bid(),_Digits)); ObjectSetString(0,"SIP_"+lNames[4],OBJPROP_TEXT,lNames[4]+DoubleToString(price4lot,2)); ObjectSetString(0,"SIP_"+lNames[5],OBJPROP_TEXT,lNames[5]+DoubleToString(m_symbolInfo.StopsLevel(),0));
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь