Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1555 1...154815491550155115521553155415551556155715581559156015611562...2747 Новый комментарий Mihail Matkovskij 2021.07.31 18:25 #15541 MakarFX: Ошибок никаких не выдает. Ошибки бывают также алгоритмические, а не только ошибки времени выполнения! Нужен код, если хотите найти причину. MakarFX: С такими координатами кнопка выходит перевернутой, т.к. длина кнопки считается +/- от точки Х А зачем нужна такая странная кнопка?... законопослушный гражданин 2021.07.31 18:28 #15542 MakarFX: Могу предложить вариант ExpertRemove() при достижении прибыли или убытка спасибо я прочитал но не совсем понял логику действий при достижении указанного события, эксперт отключается и полностью удаляется с графика, так? Tretyakov Rostyslav 2021.07.31 18:30 #15543 Mihail Matkovskij: Ошибки бывают также алгоритмические, а не только ошибки времени выполнения! Нужен код, если хотите найти причину. А зачем нужна такая странная кнопка?... Я же написал, что случайно наткнулся на такой баг вот код...если интересно //+------------------------------------------------------------------+ //| BAG.mq4 | //| Copyright 2020, DrMak. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2020, DrMak." #property link "https://www.mql5.com" #property version "1.00" #property strict #property indicator_chart_window //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- indicator buffers mapping CreateButton(0,"Button_1",0,200,100,100,50,CORNER_RIGHT_UPPER," ","START","Arial Black",10, clrWhite,clrGreen,BORDER_SUNKEN,false,false,false,false,false,0); CreateButton(0,"Button_2",0,200,100,-100,-50,CORNER_RIGHT_UPPER," ","START","Arial Black",10, clrWhite,clrGreen,BORDER_SUNKEN,false,false,false,false,false,0); //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ void OnDeinit(const int reason) { ObjectsDeleteAll(0,"Button_"); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { //--- //--- return value of prev_calculated for next call return(rates_total); } //+------------------------------------------------------------------+ //| ChartEvent function | //+------------------------------------------------------------------+ void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam) { //--- } //+------------------------------------------------------------------+ //| Создает кнопку | //+------------------------------------------------------------------+ bool CreateButton(const long chart_ID=0, // ID графика const string name="Button", // имя кнопки const int sub_window=0, // номер подокна const int x=0, // координата по оси X const int y=0, // координата по оси Y const int width=50, // ширина кнопки const int height=18, // высота кнопки const int corner=0, // угол графика для привязки const string tool="TOOLTIP", // TOOLTIP const string text="Button", // текст const string font="Arial", // шрифт const int font_size=10, // размер шрифта const color clr=clrBlack, // цвет текста const color back_clr=C'236,233,216', // цвет фона ENUM_BORDER_TYPE border_type=BORDER_FLAT, // тип границы const bool state=false, // нажата/отжата const bool back=false, // на заднем плане const bool selection=false, // выделить для перемещений const bool selected=false, // выделить для перемещений const bool hidden=true, // скрыт в списке объектов const long z_order=0) // приоритет на нажатие мышью { //--- сбросим значение ошибки ResetLastError(); //--- создадим кнопку if(!ObjectCreate(chart_ID,name,OBJ_BUTTON,sub_window,0,0)) { Print(__FUNCTION__, ": не удалось создать кнопку! Код ошибки = ",GetLastError()); return(false); } ObjectSetInteger(chart_ID,name,OBJPROP_XDISTANCE,x); ObjectSetInteger(chart_ID,name,OBJPROP_YDISTANCE,y); ObjectSetInteger(chart_ID,name,OBJPROP_XSIZE,width); ObjectSetInteger(chart_ID,name,OBJPROP_YSIZE,height); ObjectSetInteger(chart_ID,name,OBJPROP_CORNER,corner); ObjectSetString(chart_ID,name,OBJPROP_TOOLTIP,tool); ObjectSetString(chart_ID,name,OBJPROP_TEXT,text); ObjectSetString(chart_ID,name,OBJPROP_FONT,font); ObjectSetInteger(chart_ID,name,OBJPROP_FONTSIZE,font_size); ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr); ObjectSetInteger(chart_ID,name,OBJPROP_BGCOLOR,back_clr); ObjectSetInteger(chart_ID,name,OBJPROP_BORDER_TYPE,border_type); ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back); ObjectSetInteger(chart_ID,name,OBJPROP_STATE,state); ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection); ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selected); ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden); ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order); //--- успешное выполнение return(true); } //+------------------------------------------------------------------+ Tretyakov Rostyslav 2021.07.31 18:30 #15544 законопослушный гражданин: спасибо я прочитал но не совсем понял логику действий при достижении указанного события, эксперт отключается и полностью удаляется с графика, так? Да Mihail Matkovskij 2021.07.31 18:33 #15545 MakarFX: Я же написал, что случайно наткнулся на такой баг вот код...если интересно Так тут ни одна из кнопок не будет реагировать. В обработчике OnChartEvent пусто... Tretyakov Rostyslav 2021.07.31 18:42 #15546 Mihail Matkovskij: Так тут ни одна из кнопок не будет реагировать. В обработчике OnChartEvent пусто... а ты попробуй) одна кнопка нажимается, а вторая нет Mihail Matkovskij 2021.07.31 18:45 #15547 MakarFX: а ты попробуй) одна кнопка нажимается, а вторая нет А кто вообще так делает, задаёт отрицательные размеры и зачем, стесняюсь спросить?... законопослушный гражданин 2021.07.31 18:45 #15548 MakarFX: Да понял. это мне не подойдет. можно вернуться к созданию глобальной переменной, чтобы после отключения сова, происходил сброс лота на стартовый хотя бы так Создаешь глобальную переменную datetime Start; int OnInit() { Start=TimeCurrent(); ..................... } void OnTick() { if (!IsTradeAllowed()) { DrawLABEL("Торговля",0,0,0,Red,"Торговля запрещена"); Start=TimeCurrent(); return; } ..................... } а дальше если нет отрытых/закрытых ордеров позже "Start" Lots=Lot; только я так и не понял как ее правильно создать Документация по MQL5: Основы языка / Переменные / Глобальные переменные www.mql5.com Глобальные переменные - Переменные - Основы языка - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5 Обсуждение статьи "Разрабатываем мультивалютный Запрет торговли советниками. Программная Любой вопрос новичка, чтоб Tretyakov Rostyslav 2021.07.31 18:51 #15549 законопослушный гражданин: понял. это мне не подойдет. можно вернуться к созданию глобальной переменной, чтобы после отключения сова, происходил сброс лота на стартовый хотя бы так Создаешь глобальную переменную а дальше если нет отрытых/закрытых ордеров позже "Start" только я так и не понял как ее правильно создать Сделаю тебе кнопку) Tretyakov Rostyslav 2021.07.31 18:52 #15550 Mihail Matkovskij: А кто вообще так делает, задаёт отрицательные размеры и зачем, стесняюсь спросить?... я случайно наткнулся на такой баг, стало интересно 1...154815491550155115521553155415551556155715581559156015611562...2747 Новый комментарий
Ошибок никаких не выдает.
Ошибки бывают также алгоритмические, а не только ошибки времени выполнения!
Нужен код, если хотите найти причину.
С такими координатами кнопка выходит перевернутой, т.к. длина кнопки считается +/- от точки Х
А зачем нужна такая странная кнопка?...
Могу предложить вариант ExpertRemove() при достижении прибыли или убытка
спасибо
я прочитал но не совсем понял логику действий
при достижении указанного события, эксперт отключается и полностью удаляется с графика, так?
Ошибки бывают также алгоритмические, а не только ошибки времени выполнения!
Нужен код, если хотите найти причину.
А зачем нужна такая странная кнопка?...
Я же написал, что случайно наткнулся на такой баг
вот код...если интересно
спасибо
я прочитал но не совсем понял логику действий
при достижении указанного события, эксперт отключается и полностью удаляется с графика, так?
Я же написал, что случайно наткнулся на такой баг
вот код...если интересно
Так тут ни одна из кнопок не будет реагировать. В обработчике OnChartEvent пусто...
Так тут ни одна из кнопок не будет реагировать. В обработчике OnChartEvent пусто...
а ты попробуй) одна кнопка нажимается, а вторая нет
А кто вообще так делает, задаёт отрицательные размеры и зачем, стесняюсь спросить?...
Да
понял. это мне не подойдет.
можно вернуться к созданию глобальной переменной, чтобы после отключения сова, происходил сброс лота на стартовый
хотя бы так
Создаешь глобальную переменную
а дальше если нет отрытых/закрытых ордеров позже "Start"
понял. это мне не подойдет.
можно вернуться к созданию глобальной переменной, чтобы после отключения сова, происходил сброс лота на стартовый
хотя бы так
Создаешь глобальную переменную
а дальше если нет отрытых/закрытых ордеров позже "Start"
Сделаю тебе кнопку)
А кто вообще так делает, задаёт отрицательные размеры и зачем, стесняюсь спросить?...