Рисование горизонтальных и вертикальных линий...

 

В общем столкнулся с тем, что нужно сделать разметку в MT5 предварительную, после чего сделать расчеты. Но так и не понял как это верно делать =( То есть у меня есть время, когда мне нужно нарисовать вертикальные линии, после чего горизонтальные и расчеты по ценам сделать. Даже Фибоначи туда подходит почти, правда все время не совпадает =(

Выходи из ситуации:

1. Советник?

2. Индикатор?

3. Еще что-то?

То есть это нечто вроде рисования и отчета, то есть после просто окошко с итогами, что получилось за определенный период. Но как это сделать на mql5 я понять не могу... Он сильно отличается от привычных более Delphi/php/VisualStudio...

 
sergey087:

В общем столкнулся с тем, что нужно сделать разметку в MT5 предварительную, после чего сделать расчеты. Но так и не понял как это верно делать =( То есть у меня есть время, когда мне нужно нарисовать вертикальные линии, после чего горизонтальные и расчеты по ценам сделать. Даже Фибоначи туда подходит почти, правда все время не совпадает =(

Выходи из ситуации:

1. Советник?

2. Индикатор?

3. Еще что-то?

То есть это нечто вроде рисования и отчета, то есть после просто окошко с итогами, что получилось за определенный период. Но как это сделать на mql5 я понять не могу... Он сильно отличается от привычных более Delphi/php/VisualStudio...

к сожалению ничего  :-(

у MT хромая проблема - положение/дистанции будущих баров Поэтому горизонтальные уровни вы ещё можете разметить, а вертикальные метки и тренды покажут "в молоко"

вы каждую неделю, в понедельник рано утром,  должны корректировать разметку

 

Ничего не понял, но я вертикальные хочу выставить по времени. То есть буквально вписать туда 16:00 для графика GPB/JPY вертикальная линия красного цвета. Потом еще штук 4-5 таких же. Потом по ценам, которые получились построить горизонтальные линии. Далее уже рассчет по этим ценам...

Проблема в том, куда потом все это выводить? Тут нет как в том же Delphi возможности просто компонент добавить и вывести все на него =(

 
sergey087:

Ничего не понял, но я вертикальные хочу выставить по времени. То есть буквально вписать туда 16:00 для графика GPB/JPY вертикальная линия красного цвета. Потом еще штук 4-5 таких же. Потом по ценам, которые получились построить горизонтальные линии. Далее уже рассчет по этим ценам...

Проблема в том, куда потом все это выводить? Тут нет как в том же Delphi возможности просто компонент добавить и вывести все на него =(

выведите всё в Delphi раз вы его хорошо знаете.

 
Сейчас это скорее php, Delphi уже "не тот", а вот как я выведу? Как мне получить котировки по времени? API я так и не понял как работает и есть ли оно вообще ...
 
sergey087:
Сейчас это скорее php, Delphi уже "не тот", а вот как я выведу? Как мне получить котировки по времени? API я так и не понял как работает и есть ли оно вообще ...

Delhi как Дельфи :-) Сейчас насколько знаю есть Лазарус и даже им пользуются и развивают.

К примеру - есть инструмент которым вы лично хорошо владеете. И сейчас сейчас заинтересовались Форекс.

У вас появился порог: одновременно надо разбираться с форекс(с рынком) и с прикладной/программной частью.."Боливар не вынесет двоих :-)"

Есть MT (или иной терминал) программную часть которого вы не знаете. Сделайте/найдите/закажите бридж к вашей системе. А то что наработается для эффективности потом можно перекинуть в MT.

 

Сделайте/найдите/закажите бридж к вашей системе.

Я про API... Ну то есть какой-то интерфейс программный, желательно, конечно универсальный вроде XML или подобного. Которого насколько я понял не существует... Только архивы можно выгружать оптом. Хотя в MT5 как бы есть выгрузка почти до текущего момента через его интерфейс, никакого API я не видел, так чтобы из PHP отправить POST/GET запрос к примеру...

Я об этом, что такое "бридж" я понятия не имею. Что это?

 

Там внизу даже код есть

https://www.mql5.com/ru/docs/constants/objectconstants/enum_object/obj_vline

Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_VLINE
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_VLINE
  • www.mql5.com
//| Создает вертикальную линию                                       |               time=0,                          width=1,            //| Перемещение вертикальной линии                                   | //| Удаляет вертикальную линию                                       |...
 
https://www.mql5.com/ru/docs/constants/objectconstants/enum_object/obj_hline
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_HLINE
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_HLINE
  • www.mql5.com
//| Создает горизонтальную линию                                     |                 price=0,                         width=1,            //| Перемещение горизонтальной линии                                 | //| Удаляет горизонтальную линию                                     |...
 

Какой-то ерунды тут понаписали для ТС, кто-то из старичков сегодня выразился, что тут "форум программистов" ))) Ну-ну... Горе-программистов, зачем-то Дельфи приплели.... ТС, никого не слушайте, вот функции для вывода. Они, по идее, есть где-то в хелпе, но я взял из своего проекта, все работает и в MQL5, и в MQL4.

Думаю, сами приведете в нужный вид, я выложу, как есть.

long NumVLine = 0;
double priceLine[10]; //значения цен


//пример для вертикальных линий, рисовать можно абсолютно любые, хоть вертикальные, хоть наклонные
void DrawVertLines(datetime tp1, datetime tp2)
{
//    datetime tp1 = StringToTime(TimePoint1);
//    datetime tp2 = StringToTime(TimePoint2);
    string sname = MQLInfoString(MQL_PROGRAM_NAME) + IntegerToString(NumVLine++); 

    string name = sname + "_v1";
    TrendCreate(0, name, 0, tp1, priceLine[0], tp1, priceLine[4], clrCoral, STYLE_SOLID, 3); // первая верт. линия
    name = sname + "_v2";
    TrendCreate(0, name, 0, tp2, priceLine[0], tp2, priceLine[4], clrCoral,  STYLE_SOLID, 3); // вторая верт. линия
}

//+------------------------------------------------------------------+ 
//| Создает линию тренда по заданным координатам                     | 
//+------------------------------------------------------------------+ 
bool TrendCreate(const long            chart_ID=0,        // ID графика 
                 const string          name="TrendLine",  // имя линии 
                 const int             sub_window=0,      // номер подокна 
                 datetime              time1=0,           // время первой точки 
                 double                price1=0,          // цена первой точки 
                 datetime              time2=0,           // время второй точки 
                 double                price2=0,          // цена второй точки 
                 const color           clr=clrRed,        // цвет линии 
                 const ENUM_LINE_STYLE style=STYLE_SOLID, // стиль линии 
                 const int             width=1,           // толщина линии 
                 const bool            back=false,//true,        // на заднем плане 
                 const bool            selection=false,    // выделить для перемещений 
                 const bool            ray_left=false,    // продолжение линии влево 
                 const bool            ray_right=false,   // продолжение линии вправо 
                 const bool            hidden=false,       // скрыт в списке объектов 
                 const long            z_order=0)         // приоритет на нажатие мышью 
{ 
//--- установим координаты точек привязки, если они не заданы 
    //ChangeTrendEmptyPoints(time1,price1,time2,price2); 
//--- сбросим значение ошибки 
    ResetLastError(); 
//--- создадим трендовую линию по заданным координатам 
    if(!ObjectCreate(chart_ID,name,OBJ_TREND,sub_window,time1,price1,time2,price2)) 
    { 
        Print(__FUNCTION__, ": не удалось создать линию тренда! Код ошибки = ",GetLastError()); 
        return(false); 
    } 
//--- установим цвет линии 
    ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr); 
//--- установим стиль отображения линии 
    ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style); 
//--- установим толщину линии 
    ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width); 
//--- отобразим на переднем (false) или заднем (true) плане 
    ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back); 
//--- включим (true) или отключим (false) режим перемещения линии мышью 
//--- при создании графического объекта функцией ObjectCreate, по умолчанию объект 
//--- нельзя выделить и перемещать. Внутри же этого метода параметр selection 
//--- по умолчанию равен true, что позволяет выделять и перемещать этот объект 
    ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE, false);//selection); 
    ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED, false);//selection); 
//--- включим (true) или отключим (false) режим продолжения отображения линии влево 
    ObjectSetInteger(chart_ID,name,OBJPROP_RAY_LEFT,ray_left); 
//--- включим (true) или отключим (false) режим продолжения отображения линии вправо 
    ObjectSetInteger(chart_ID,name,OBJPROP_RAY_RIGHT,ray_right); 
//--- скроем (true) или отобразим (false) имя графического объекта в списке объектов 
    ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden); 
//--- установим приоритет на получение события нажатия мыши на графике 
    ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order); 
//--- успешное выполнение 
    return true; 
} 
 
Alexey Volchanskiy:

Какой-то ерунды тут понаписали для ТС, кто-то из старичков сегодня выразился, что тут "форум программистов" ))) Ну-ну... Горе-программистов, зачем-то Дельфи приплели.... ТС, никого не слушайте, вот функции для вывода. Они, по идее, есть где-то в хелпе, но я взял из своего проекта, все работает и в MQL5, и в MQL4.

Думаю, сами приведете в нужный вид, я выложу, как есть.

курят много, выходные же ;)
Причина обращения: