Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Я пытаюсь сделать кнопку сброса лота, но мне нужно получить гораздолучший результат, чем этот, но я не могу.
( Мне не нравятся все мои ea и индикаторы Button objects, потому что все они очень уродливые, как этот. )
Мне нужно две вещи от вас, ребята, кто может помочь и дать мне хороший совет, пожалуйста, мне очень нужна ваша помощь.
Я потратил много времени и не могу понять, в чем проблема с моим кодом.
Заранее спасибо.
//--- второй раз отредактировано - пока я писал этот комментарий, возможно, я дремал...
ObjectSetString ( 0, "button lot reset", OBJPROP_TEXT , "x" );
ObjectSetString ( 0, "button lot reset", OBJPROP_FONT , "Verdana" );
ObjectSetInteger ( 0, "button lot reset", OBJPROP_FONTSIZE , 14 );
ObjectSetInteger ( 0, "button lot reset", OBJPROP_XDISTANCE , 16 );
ObjectSetInteger ( 0, "button lot reset", OBJPROP_YDISTANCE , 16 );
ObjectSetInteger ( 0, "button lot reset", OBJPROP_XSIZE , 18 );
ObjectSetInteger ( 0, "button lot reset", OBJPROP_YSIZE , 18 );
ObjectSetInteger ( 0, "button lot reset", OBJPROP_CORNER , CORNER_LEFT_UPPER );
ObjectSetInteger ( 0, "button lot reset", OBJPROP_COLOR , White );
ObjectSetInteger ( 0, "button lot reset", OBJPROP_BGCOLOR , Black );
ObjectSetInteger ( 0, "button lot reset", OBJPROP_BORDER_COLOR , Black );
ObjectSetInteger ( 0, "button lot reset", OBJPROP_STATE , false );
ObjectSetInteger ( 0, "button lot reset", OBJPROP_BACK , false );
ObjectSetInteger ( 0, "button lot reset", OBJPROP_SELECTABLE , false );
ObjectSetInteger ( 0, "button lot reset", OBJPROP_SELECTED , false );
ObjectSetInteger ( 0, "button lot reset", OBJPROP_HIDDEN , true );
ObjectSetInteger ( 0, "button lot reset", OBJPROP_ZORDER , true );
//| Create the button |
//+------------------------------------------------------------------+
bool ButtonCreate(const long chart_ID=0, // chart's ID
const string name="Button", // button name
const int sub_window=0, // subwindow index
const int x=0, // X coordinate
const int y=0, // Y coordinate
const int width=50, // button width
const int height=18, // button height
const ENUM_BASE_CORNER corner=CORNER_LEFT_UPPER, // chart corner for anchoring
const string text="Button", // text
const string font="Arial", // font
const int font_size=10, // font size
const color clr=clrBlack, // text color
const color back_clr=C'236,233,216', // background color
const color border_clr=clrNONE, // border color
const bool state=false, // pressed/released
const bool back=false, // in the background
const bool selection=false, // highlight to move
const bool hidden=true, // hidden in the object list
const long z_order=0) // priority for mouse click
{
//--- reset the error value
ResetLastError();
//--- create the button
if(!ObjectCreate(chart_ID,name,OBJ_BUTTON,sub_window,0,0))
{
Print(__FUNCTION__,
": failed to create the button! Error code = ",GetLastError());
return(false);
}
//--- set button coordinates
ObjectSetInteger(chart_ID,name,OBJPROP_XDISTANCE,x);
ObjectSetInteger(chart_ID,name,OBJPROP_YDISTANCE,y);
//--- set button size
ObjectSetInteger(chart_ID,name,OBJPROP_XSIZE,width);
ObjectSetInteger(chart_ID,name,OBJPROP_YSIZE,height);
//--- set the chart's corner, relative to which point coordinates are defined
ObjectSetInteger(chart_ID,name,OBJPROP_CORNER,corner);
//--- set the text
ObjectSetString(chart_ID,name,OBJPROP_TEXT,text);
//--- set text font
ObjectSetString(chart_ID,name,OBJPROP_FONT,font);
//--- set font size
ObjectSetInteger(chart_ID,name,OBJPROP_FONTSIZE,font_size);
//--- set text color
ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
//--- set background color
ObjectSetInteger(chart_ID,name,OBJPROP_BGCOLOR,back_clr);
//--- set border color
ObjectSetInteger(chart_ID,name,OBJPROP_BORDER_COLOR,border_clr);
//--- display in the foreground (false) or background (true)
ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
//--- set button state
ObjectSetInteger(chart_ID,name,OBJPROP_STATE,state);
//--- enable (true) or disable (false) the mode of moving the button by mouse
ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
//--- hide (true) or display (false) graphical object name in the object list
ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
//--- set the priority for receiving the event of a mouse click in the chart
ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
//--- successful execution
return(true);
}
//+------------------------------------------------------------------+
Пожалуйста, вы можете просто использовать функцию из документации "как есть" для создания кнопок, просто добавьте ее в нижнюю часть вашего кода и вы можете вызвать функцию и передать параметры.
Тогда вы сможете просто вызывать:
Также
Спасибо, я исправил, просто это была ошибка.
--------------------------------------------
Пожалуйста, вы можете просто использовать функцию из документации "как есть" для создания кнопок, просто добавьте ее внизу вашего кода и вы можете вызвать функцию и передать параметры.
Тогда вы можете просто вызвать:
Спасибо, Марко, это мне очень помогло, и коды моего советника выглядят как очищенные.
Также я хотел бы спросить о следующем коде, что это такое, как он работает? (даже я читал об этом, но я не понимаю более четко).
Пожалуйста, объясните немного подробнее, заранее спасибо.
----------------------------------------
Также мне нужно использовать void вместо bool, как в приведенном ниже коде, таккакой из них лучше?
// or
void ButtonCreate(...)
Функция возвращает true или false в зависимости от того, было ли создание кнопки успешным или нет, поэтому от вас зависит, хотите ли вы проверить, что кнопка действительно была создана.
Что касается второго вопроса, то всплывающая подсказка - это то, что становится видимым при наведении курсора мыши на объект на графике.
То, как вы работаете сейчас, имеет ограничения.
Если вы хотите расширить возможности, прочитайте следующие статьи:
https://www.mql5.com/en/search#!keyword=graphical%20interfaces&module=mql5_module_articles
Функция возвращает true или false в зависимости от того, было ли создание кнопки успешным или нет, поэтому от вас зависит, хотите ли вы проверить, что кнопка действительно была создана.
Что касается второго вопроса, то всплывающая подсказка - это то, что становится видимым при наведении курсора мыши на объект на графике.
То, как вы работаете сейчас, имеет ограничения.
Если вы хотите расширить их, пожалуйста, прочитайте следующие статьи:
https://www.mql5.com/en/search#!keyword=graphical%20interfaces&module=mql5_module_articles
Огромная благодарность.
WOW, вы станете моим человеком, мистер Марко.
( с момента вашего первого комментария - вы мне очень помогли - вы всегда стараетесь понять мои проблемы - еще раз огромное спасибо )
Мне нужно использовать формат файла .PNG в коде моего советника, для иконки LotSize.
Но я нашел только формат файла .BMP, так что может ли кто-нибудь помочь мне / посоветовать мне?
Если любой комментарий может быть быстро очень ценю, просто я спешу немного больше.
Заранее спасибо.
Я пытаюсь сделать так: если размер лота больше значения лота, то "Состояние истинно", если меньше, то "Состояние ложно".
( когда я нажимаю 'Reset' объект переходит в состояние 'State false' и после увеличения размера лота состояние не переходит в true )
Является ли приведенный ниже код неправильным?
if ( sparam == _namelotRset )
{
if ( _lotSize > _lotValue )
{
ObjectSetInteger( 0, sparam, OBJPROP_STATE, true );
} //---if Close
else
{
ObjectSetInteger( 0, sparam, OBJPROP_STATE, false );
} //---if Close
_lotSize = _lotValue * _lotMin;
_infoUpdate();
return;
} //---if Close
Спасибо!
//--- второй раз редактировалось
Я пытаюсь сделать поворот'ON OFF' с помощью приведенного ниже кода.
Пожалуйста, смотрите:
https://www.mql5.com/en/docs/constants/objectconstants/enum_object/obj_bitmap
Для проблемы с растровой картой.
А для другого вопроса вы можете разделить его на отдельные части, чтобы установить состояние вне sparam.