qwerty12345695552 Опубликовано 21 января, 2022 Поделиться Доработка советников: общая тема Опубликовано 21 января, 2022 Лайк поставил. Не знал что так важно. Не могли бы Вы немного подправить советник. Он дает сигнал только когда у обеих свечей одинаковый High и Low. А нужно что бы или High или Low . Просто пропускает много таких свечей. Спасибо. Rails.mq4 Изменено 23 января, 2022 пользователем qwerty12345695552 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Gliuk Опубликовано 30 января, 2022 Поделиться Доработка советников: общая тема Опубликовано 30 января, 2022 Всем спасибо разобрался сам. Изменено 31 января, 2022 пользователем Gliuk Всем спасибо разобрался сам. Ссылка на сообщение Поделиться на другие сайты More sharing options...
amskorn Опубликовано 5 февраля, 2022 Поделиться Доработка советников: общая тема Опубликовано 5 февраля, 2022 Здравствуйте Господа Програмисты ! Есть всем известный советник Forex Setka Trader 1.6. После доработки есть проблема в его работе Когда советник торгует и есть открытые ордера ,(стоит он на VPS сервере) иногда сервер перезагружают, и происходит сбой . Он не подхватывает свои открытые ордера а начинает открывать новые. Вот эту проблемку хотелось бы исправить . Могли бы Вы помочь . Моя почта ( amskorn@gmail.com ) Буду благодарен кто откликнется . Ссылка на сообщение Поделиться на другие сайты More sharing options...
nixxer Опубликовано 5 февраля, 2022 Поделиться Доработка советников: общая тема Опубликовано 5 февраля, 2022 13 минут назад, amskorn сказал: После доработки есть проблема в его работе Все доработки этого советника идут в разделе Лаборатория, и версия выбранная вами уже устарела на 10 поколений. Лучше одуматься пока не поздно Ссылка на сообщение Поделиться на другие сайты More sharing options...
Сергеюшка Опубликовано 27 февраля, 2022 Поделиться Доработка советников: общая тема Опубликовано 27 февраля, 2022 прошу помощь: нужно в советника - усреднителя добавить функцию запрета открытия новых серий при достижении определённой цены, можно на графике прям линией отметить .почта для связи mybp@mail.ru или скайп investclub777 Ссылка на сообщение Поделиться на другие сайты More sharing options...
drobayura Опубликовано 27 марта, 2022 Поделиться Доработка советников: общая тема Опубликовано 27 марта, 2022 Доброго времени суток. Есть советник, открывает сделки с расчетом риска от SL. Как добавить в функцию расчета риска увеличение процента на единицу после убыточной сделки? //+------------------------------------------------------------------+ //| Расчет риска в % от величины SL | //+------------------------------------------------------------------+ double CalculateLot(double _stop) { double loss = _stop / MarketInfo(_Symbol, MODE_TICKSIZE) * MarketInfo(_Symbol, MODE_TICKVALUE); double lots = AccountFreeMargin() * RiskPercent / 100 / loss; return (NormalizeDouble(MathMin(MarketInfo(_Symbol, MODE_MAXLOT), MathMax(MarketInfo(_Symbol, MODE_MINLOT), lots)), 2)); } Ссылка на сообщение Поделиться на другие сайты More sharing options...
lisxaker Опубликовано 4 апреля, 2022 Поделиться Доработка советников: общая тема Опубликовано 4 апреля, 2022 В 22.03.2019 в 17:52, loveЦ сказал: Сделал на скорую руку, уж извините если не получилось. Добавил параметр "Step" -шаг для отложенных ордеров. Проверьте и отпишитесь пожалуйста. e-TFL_v2.mq4 65 \u043a\u0411 · 9 загрузок Добрый день! Помогите пожалуйста добавить Трал в этот советник и как можно ограничить количество открываемых ордеров? Заранее спасибо! Ссылка на сообщение Поделиться на другие сайты More sharing options...
artatwjs Опубликовано 18 апреля, 2022 Поделиться Доработка советников: общая тема Опубликовано 18 апреля, 2022 Всем привет есть индикатор nonlagdot, сделал по нему советник. При получени сигнала после закрытия свечи (синяя /красная точка) открывается покупка/продажа. Выход по тейкпрофиту, стоплоссу, либо по обратному сигналу. Проблема в том что советник при открытии сделки тут же ее закрывает, может кто подскажет что исправить? Ошибка кроется в участке кода между плюсиками. Ну и насчет правильности входа я не не уверен. Советника и индикатор приложил. //+------------------------------------------------------------------+ //| NonLagDotRobot.mq4 | //| Copyright 2022 | //| https://mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2022" #property link "https://mql5.com" #property version "1.00" #property strict //-------------------------------------------------------------------- extern double Lot = 0.01; extern int TakeProfit = 60; extern int StopLoss = 60; extern int Magic = 0; extern int Slippage = 3; //-------------------------------------------------------------------- extern string NonLagDot = "Параметры индикатора NonLagDot"; extern int Price = 0; extern int Length = 20; extern int Displace = 0; extern int Filter = 0; extern int Color = 1; extern int ColorBarBack = 0; extern double Deviation = 0; //-------------------------------------------------------------------- double PriceBuy, PriceSell, SL, TP; int ticket; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { if (Digits == 3 || Digits == 5) { TakeProfit *= 10; StopLoss *= 10; Slippage *= 10; } return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { PriceBuy = iCustom( NULL, 0, "79nonlagdot", Price, Length, Displace, Filter, Color, ColorBarBack, Deviation, 1, 1); PriceSell = iCustom( NULL, 0, "79nonlagdot", Price, Length, Displace, Filter, Color, ColorBarBack, Deviation, 2, 1); if (CountSell() == 0 && Bid <= PriceSell) { ticket = OrderSend(Symbol(), OP_SELL, Lot, Bid, Slippage, 0, 0, "NonLagDot Robot", Magic, 0, Red); if (ticket >0) { SL = NormalizeDouble(Bid + StopLoss*Point, Digits); TP = NormalizeDouble(Bid - TakeProfit*Point, Digits); if (OrderSelect(ticket, SELECT_BY_TICKET)) if (!OrderModify(ticket, OrderOpenPrice(), SL, TP, 0)) Print ("Ошибка модификации ордера на продажу!"); } else Print ("Ошибка открытия ордера на продажу!"); } if (CountBuy() == 0 && Ask >= PriceBuy) { ticket = OrderSend(Symbol(), OP_BUY, Lot, Ask, Slippage, 0, 0, "NonLagDot Robot", Magic, 0, Blue); if (ticket >0) { TP = NormalizeDouble(Ask + TakeProfit*Point, Digits); SL = NormalizeDouble(Ask - StopLoss*Point, Digits); if (OrderSelect(ticket, SELECT_BY_TICKET)) if (!OrderModify(ticket, OrderOpenPrice(), SL, TP, 0)) Print ("Ошибка модификации ордера на покупку!"); } else Print ("Ошибка открытия ордера на покупку!"); } ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ if (Ask >= PriceBuy && CountSell() > 0) { for(int i = OrdersTotal() -1; i>=0; i--) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if (OrderMagicNumber() == Magic && OrderType() == OP_SELL) if (!OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, Black)) Print ("Ошибка закрытия ордера на продажу!"); } } } if (Bid <= PriceSell && CountBuy() > 0) { for(int i = OrdersTotal() -1; i>=0; i--) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if (OrderMagicNumber() == Magic && OrderType() == OP_BUY) if (!OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, Black)) Print ("Ошибка закрытия ордера на покупку!"); } } } } +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //+------------------------------------------------------------------+ int CountSell() { int count = 0; for (int trade = OrdersTotal()-1; trade>=0; trade--) { if (OrderSelect(trade, SELECT_BY_POS, MODE_TRADES)) { if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderType() == OP_SELL) count++; } } return(count); } //+------------------------------------------------------------------+ int CountBuy() { int count = 0; for (int trade = OrdersTotal()-1; trade>=0; trade--) { if (OrderSelect(trade, SELECT_BY_POS, MODE_TRADES)) { if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderType() == OP_BUY) count++; } } return(count); } 79nonlagdot.mq4 NonLagDotRobot.mq4 Изменено 18 апреля, 2022 пользователем artatwjs Ссылка на сообщение Поделиться на другие сайты More sharing options...
Rigal Опубликовано 18 апреля, 2022 Поделиться Доработка советников: общая тема Опубликовано 18 апреля, 2022 5 часов назад, artatwjs сказал: Всем привет есть индикатор nonlagdot, сделал по нему советник. При получени сигнала после закрытия свечи (синяя /красная точка) открывается покупка/продажа. Выход по тейкпрофиту, стоплоссу, либо по обратному сигналу. Проблема в том что советник при открытии сделки тут же ее закрывает, может кто подскажет что исправить? Ошибка кроется в участке кода между плюсиками. Ну и насчет правильности входа я не не уверен. Советника и индикатор приложил. //+------------------------------------------------------------------+ //| NonLagDotRobot.mq4 | //| Copyright 2022 | //| https://mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2022" #property link "https://mql5.com" #property version "1.00" #property strict //-------------------------------------------------------------------- extern double Lot = 0.01; extern int TakeProfit = 60; extern int StopLoss = 60; extern int Magic = 0; extern int Slippage = 3; //-------------------------------------------------------------------- extern string NonLagDot = "Параметры индикатора NonLagDot"; extern int Price = 0; extern int Length = 20; extern int Displace = 0; extern int Filter = 0; extern int Color = 1; extern int ColorBarBack = 0; extern double Deviation = 0; //-------------------------------------------------------------------- double PriceBuy, PriceSell, SL, TP; int ticket; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { if (Digits == 3 || Digits == 5) { TakeProfit *= 10; StopLoss *= 10; Slippage *= 10; } return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { PriceBuy = iCustom( NULL, 0, "79nonlagdot", Price, Length, Displace, Filter, Color, ColorBarBack, Deviation, 1, 1); PriceSell = iCustom( NULL, 0, "79nonlagdot", Price, Length, Displace, Filter, Color, ColorBarBack, Deviation, 2, 1); if (CountSell() == 0 && Bid <= PriceSell) { ticket = OrderSend(Symbol(), OP_SELL, Lot, Bid, Slippage, 0, 0, "NonLagDot Robot", Magic, 0, Red); if (ticket >0) { SL = NormalizeDouble(Bid + StopLoss*Point, Digits); TP = NormalizeDouble(Bid - TakeProfit*Point, Digits); if (OrderSelect(ticket, SELECT_BY_TICKET)) if (!OrderModify(ticket, OrderOpenPrice(), SL, TP, 0)) Print ("Ошибка модификации ордера на продажу!"); } else Print ("Ошибка открытия ордера на продажу!"); } if (CountBuy() == 0 && Ask >= PriceBuy) { ticket = OrderSend(Symbol(), OP_BUY, Lot, Ask, Slippage, 0, 0, "NonLagDot Robot", Magic, 0, Blue); if (ticket >0) { TP = NormalizeDouble(Ask + TakeProfit*Point, Digits); SL = NormalizeDouble(Ask - StopLoss*Point, Digits); if (OrderSelect(ticket, SELECT_BY_TICKET)) if (!OrderModify(ticket, OrderOpenPrice(), SL, TP, 0)) Print ("Ошибка модификации ордера на покупку!"); } else Print ("Ошибка открытия ордера на покупку!"); } ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ if (Ask >= PriceBuy && CountSell() > 0) { for(int i = OrdersTotal() -1; i>=0; i--) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if (OrderMagicNumber() == Magic && OrderType() == OP_SELL) if (!OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, Black)) Print ("Ошибка закрытия ордера на продажу!"); } } } if (Bid <= PriceSell && CountBuy() > 0) { for(int i = OrdersTotal() -1; i>=0; i--) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if (OrderMagicNumber() == Magic && OrderType() == OP_BUY) if (!OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, Black)) Print ("Ошибка закрытия ордера на покупку!"); } } } } +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //+------------------------------------------------------------------+ int CountSell() { int count = 0; for (int trade = OrdersTotal()-1; trade>=0; trade--) { if (OrderSelect(trade, SELECT_BY_POS, MODE_TRADES)) { if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderType() == OP_SELL) count++; } } return(count); } //+------------------------------------------------------------------+ int CountBuy() { int count = 0; for (int trade = OrdersTotal()-1; trade>=0; trade--) { if (OrderSelect(trade, SELECT_BY_POS, MODE_TRADES)) { if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderType() == OP_BUY) count++; } } return(count); } 79nonlagdot.mq4 9 \u043a\u0411 · 0 загрузок NonLagDotRobot.mq4 10 \u043a\u0411 · 0 загрузок Вы получаете PriceBuy и PriceSell из индикатора, при этом у Вас только одна из этих двух величин не равна нулю. Проверяйте на ноль, все встанет на свои места. Примерно так: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ if (PriceBuy > Point() && CountSell() > 0) //blue dot time { for(int i = OrdersTotal() -1; i>=0; i--) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if (OrderMagicNumber() == Magic && OrderType() == OP_SELL) if (!OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, Black)) Print ("Ошибка закрытия ордера на продажу!"); } } } if (PriceSell > Point() && CountBuy() > 0) //red dot time { for(int i = OrdersTotal() -1; i>=0; i--) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if (OrderMagicNumber() == Magic && OrderType() == OP_BUY) if (!OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, Black)) Print ("Ошибка закрытия ордера на покупку!"); } } } } +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Условие на открытие тоже нужно поправить: Ask >= PriceBuy будет выполняться, когда на графике время красных точек, потому, что PriceBuy равен нулю 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Rigal Опубликовано 18 апреля, 2022 Поделиться Доработка советников: общая тема Опубликовано 18 апреля, 2022 Версия с правками. Я немного свернул код, чтобы не перебирались ордера попусту и чтобы проверка красной/синей зоны делалась в одном месте. Прогнал в тесте с настройками по умолчанию. Ожидаемо льет на флете, коего по всему форексу тьма. Можно добавить условие на вход только по смене цвета - версия R2. Динамики не меняет. NonLagDotRobot_R1.mq4 NonLagDotRobot_R2.mq4 3 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
artatwjs Опубликовано 19 апреля, 2022 Поделиться Доработка советников: общая тема Опубликовано 19 апреля, 2022 12 часов назад, Rigal сказал: Версия с правками. Я немного свернул код, чтобы не перебирались ордера попусту и чтобы проверка красной/синей зоны делалась в одном месте. Прогнал в тесте с настройками по умолчанию. Ожидаемо льет на флете, коего по всему форексу тьма. Можно добавить условие на вход только по смене цвета - версия R2. Динамики не меняет. NonLagDotRobot_R1.mq4 10 \u043a\u0411 · 2 загрузки NonLagDotRobot_R2.mq4 11 \u043a\u0411 · 2 загрузки Добавил в советник индикатор RSI и теперь при смене сигнала (цвет точки nonlagdot) открытая сделка не закрывается, а закрывается только по стоп-лоссу. Можете исправить? Советник приложил... P.S Можно еще добавить коэффициент умножения лота после закрытия убыточной сделки NonLagDot_RSI_Robot_R1.mq4 Изменено 19 апреля, 2022 пользователем artatwjs Ссылка на сообщение Поделиться на другие сайты More sharing options...
drobayura Опубликовано 21 апреля, 2022 Поделиться Доработка советников: общая тема Опубликовано 21 апреля, 2022 Доброго времени суток. Есть советник, в котором хотелось бы добавить в функции расчёта лота с риском от свободных средств: - при убыточной сделке увеличение риска на единицу, в дальнейшем при положительной сделке возврат риска к одному проценту. Советник прилагается. BOLINGER.mq4 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Al2ex3 Опубликовано 23 апреля, 2022 Поделиться Доработка советников: общая тема Опубликовано 23 апреля, 2022 Добрый день! Подскажите, как доделать советник, чтобы по тренду тоже строил сетку, но только со своим мультиплицированием, а не держал единственный ордер. Куда и что вставить? Я сам переделаю. Исходник прилагаю. Ilan1.7byNikolaus.mq4 Ссылка на сообщение Поделиться на другие сайты More sharing options...
drobayura Опубликовано 25 апреля, 2022 Поделиться Доработка советников: общая тема Опубликовано 25 апреля, 2022 Доброго времени суток. Помогите пожалуйста в советнике подправить функцию расчёта риска: - при убыточной сделке увеличение риска в два раза, а при положительной сделке возврат риска к одному проценту. Советник прилагается. BOLINGER_V01.mq4 Ссылка на сообщение Поделиться на другие сайты More sharing options...
drobayura Опубликовано 26 апреля, 2022 Поделиться Доработка советников: общая тема Опубликовано 26 апреля, 2022 Ребята, а что сделать так нельзя да? Ссылка на сообщение Поделиться на другие сайты More sharing options...
artatwjs Опубликовано 26 апреля, 2022 Поделиться Доработка советников: общая тема Опубликовано 26 апреля, 2022 5 минут назад, drobayura сказал: Ребята, а что сделать так нельзя да? Заплати программисту и бэнч) Так походу никто не хочет заморачиваться Ссылка на сообщение Поделиться на другие сайты More sharing options...
nurilnar92 Опубликовано 22 мая, 2022 Поделиться Доработка советников: общая тема Опубликовано 22 мая, 2022 Добрый день! Хотел написать советника по индикатору (индикатор во вложении), но почему-то не получается через iCustom получить данные от индикатора. При этом и в окне данных на терминале нет данных по индикатору. Объявил все переменные кроме строковых и цветовых, в iCustom тоже все переписал, кроме строковых и цветовых. Через Comment хотел вывести значения на экран, но не получается. Свой написанный код тоже выкладываю. Очень надеюсь на вашу помощь.Secret Forex TIO v1.5 (1).ex4 Заранее большое спасибо за помощь. Robot Money.mq4 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Rigal Опубликовано 22 мая, 2022 Поделиться Доработка советников: общая тема Опубликовано 22 мая, 2022 28 минут назад, nurilnar92 сказал: Добрый день! Хотел написать советника по индикатору (индикатор во вложении), но почему-то не получается через iCustom получить данные от индикатора. При этом и в окне данных на терминале нет данных по индикатору. Объявил все переменные кроме строковых и цветовых, в iCustom тоже все переписал, кроме строковых и цветовых. Через Comment хотел вывести значения на экран, но не получается. Свой написанный код тоже выкладываю. Очень надеюсь на вашу помощь.Secret Forex TIO v1.5 (1).ex4 Заранее большое спасибо за помощь. Robot Money.mq4 9 \u043a\u0411 · 0 загрузок Вы забываете передавать параметры "комментария". Например, вторым параметром в вашем вызове iCustom передается UpdateMode, в то время, как в индикаторе ожидается строка STR00: Но в целом, я бы рекомендовал обратиться к первоисточнику: поскольку TIO является визитной карточкой известного перепродавана, который сам не умеет кодить, я взял на себя смелость предположить, что у этого индикатора есть другое название, под которым его публиковали его настоящие авторы. Исходно он известен, как XARDFX Forex Trading System (https://www.trendfollowingsystem.com/xardfx-forex-trading-system/) Доступен в исходном коде, который зицпредседатель "поправил", добавив свой "копирайт". Исходник прикреплен к сообщению, имеет смысл взять нужную вам логику прямо из него, или по крайней мере заглядывать, чтобы понимать, что именно вы хотите оттуда читать. Эта версия не идентична вашей на первый взгляд, но наверняка можно поискать еще, поскольку исходник вашей версии зицпредседатель тоже где-то скачал. Значит, и вы можете. К слову, практика показывает, что стратегии, предлагающие явный сигнал "покупаем" и "продаем", но при этом почему-то представленные в формате индикатора, сливают все, если их протестировать формально. Именно поэтому они индикаторы, а не торгующие советники - перерисовка решает. !!!-MT4 X-XARDFX-38.mq4 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
nurilnar92 Опубликовано 22 мая, 2022 Поделиться Доработка советников: общая тема Опубликовано 22 мая, 2022 20 минут назад, Rigal сказал: Вы забываете передавать параметры "комментария". Например, вторым параметром в вашем вызове iCustom передается UpdateMode, в то время, как в индикаторе ожидается строка STR00: Но в целом, я бы рекомендовал обратиться к первоисточнику: поскольку TIO является визитной карточкой известного перепродавана, который сам не умеет кодить, я взял на себя смелость предположить, что у этого индикатора есть другое название, под которым его публиковали его настоящие авторы. Исходно он известен, как XARDFX Forex Trading System (https://www.trendfollowingsystem.com/xardfx-forex-trading-system/) Доступен в исходном коде, который зицпредседатель "поправил", добавив свой "копирайт". Исходник прикреплен к сообщению, имеет смысл взять нужную вам логику прямо из него, или по крайней мере заглядывать, чтобы понимать, что именно вы хотите оттуда читать. Эта версия не идентична вашей на первый взгляд, но наверняка можно поискать еще, поскольку исходник вашей версии зицпредседатель тоже где-то скачал. Значит, и вы можете. К слову, практика показывает, что стратегии, предлагающие явный сигнал "покупаем" и "продаем", но при этом почему-то представленные в формате индикатора, сливают все, если их протестировать формально. Именно поэтому они индикаторы, а не торгующие советники - перерисовка решает. !!!-MT4 X-XARDFX-38.mq4 101 \u043a\u0411 · 0 загрузок Спасибо вам огромное. Сам бы долго сидел и изучал. Если честно я третий день сижу и изучаю mql4. Интересно самому что-то создать, улучшить и применять в торговле. Вот изучаю. Пока программировать очень нравится, а когда еще и получается еще лучше. Ссылка на сообщение Поделиться на другие сайты More sharing options...
Rigal Опубликовано 22 мая, 2022 Поделиться Доработка советников: общая тема Опубликовано 22 мая, 2022 Только что, nurilnar92 сказал: Спасибо вам огромное. Сам бы долго сидел и изучал. Если честно я третий день сижу и изучаю mql4. Интересно самому что-то создать, улучшить и применять в торговле. Вот изучаю. Пока программировать очень нравится, а когда еще и получается еще лучше. Вкратце: список параметров должен совпадать по порядку, ничего нельзя пропускать. Можно на каком-то моменте остановиться: если список "обрезан", индикатор использует значения по умолчанию для остальных параметров. Последние два параметра iCustom всегда номер буфера и индекс. Вам имеет смысл проверять, скажем, наличие стрелки на последнем баре (индекс 1), не нужно перебирать до бесконечности. Если стрелки на последнем баре нет - не имеет значения, какая стрелка была до этого, поезд уже ушел. 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
nurilnar92 Опубликовано 22 мая, 2022 Поделиться Доработка советников: общая тема Опубликовано 22 мая, 2022 2 минуты назад, Rigal сказал: Вкратце: список параметров должен совпадать по порядку, ничего нельзя пропускать. Можно на каком-то моменте остановиться: если список "обрезан", индикатор использует значения по умолчанию для остальных параметров. Последние два параметра iCustom всегда номер буфера и индекс. Вам имеет смысл проверять, скажем, наличие стрелки на последнем баре (индекс 1), не нужно перебирать до бесконечности. Если стрелки на последнем баре нет - не имеет значения, какая стрелка была до этого, поезд уже ушел. Правильно ли я понял: 1. Пишем все параметры, в том числе и текстовые и цветовые? 2. Можно остановиться, т.е. половину только написать и потом перейти на номер буфера и индекс? 3. А если много параметров, то не будет проблемы, что они в iCustom не поместяться? В этом случае как быть? Я начал все переписывать туда по порядку и программа ругается "wrong parameters count". Думаю из-за того, что не помещается уже. 4. По поводу бесконечности у меня логика такая. Я не знаю какой буфер отвечает на сигнал Buy и Cell. Поэтому и до момента нахождения нужного буфера буду перебирать. Далее конечно цикл уберу. Если имеется возможность, то прошу ответить на вопросы. Это здорово оптимизирует мне время. Если будет интересно, то в конце файл выложу. Ссылка на сообщение Поделиться на другие сайты More sharing options...
Rigal Опубликовано 22 мая, 2022 Поделиться Доработка советников: общая тема Опубликовано 22 мая, 2022 10 минут назад, nurilnar92 сказал: 1. Пишем все параметры, в том числе и текстовые и цветовые? Да, пропускать ничего нельзя 10 минут назад, nurilnar92 сказал: 2. Можно остановиться, т.е. половину только написать и потом перейти на номер буфера и индекс? Верно. Если вас устраивает набор по умолчанию для последних 10 параметров, их можно опустить 10 минут назад, nurilnar92 сказал: 3. А если много параметров, то не будет проблемы, что они в iCustom не поместяться? В этом случае как быть? Я начал все переписывать туда по порядку и программа ругается "wrong parameters count". Думаю из-за того, что не помещается уже. Да, у iCustom есть лимит и из него легко вылезти. С этой проблемой не справиться никак. Но если у вас есть исходник индикатора, вы можете выкинуть незначимые параметры, вроде первых двух текстовых. Просто уберите служебное слово input. Или просто поставить в начало списка то, что вы собираетесь передавать, а все остальное опустить. 10 минут назад, nurilnar92 сказал: 4. По поводу бесконечности у меня логика такая. Я не знаю какой буфер отвечает на сигнал Buy и Cell. Поэтому и до момента нахождения нужного буфера буду перебирать. Далее конечно цикл уберу. Буферы перебирать не нужно совсем, в этом нет смысла. Нельзя программно определить, в каком буфере значение, которое вы ищете. Либо загляните в исходник (найдите тот, который соответствует вашей версии), либо зайдите в свойствах индикатора на вкладку цветов и стилей, там будет много подсказок: Спойлер Пощелкайте цветами, гляньте на реакцию на графике - ваши целевые буферы быстро найдутся. А перебираете вы не буфер, а индекс в буфере, отступ от последней свечи. Буферы у вас смотрят в 6 для Up и 13 для Down Изменено 22 мая, 2022 пользователем Rigal Ссылка на сообщение Поделиться на другие сайты More sharing options...
Rigal Опубликовано 22 мая, 2022 Поделиться Доработка советников: общая тема Опубликовано 22 мая, 2022 1 час назад, Rigal сказал: К слову, практика показывает, что стратегии, предлагающие явный сигнал "покупаем" и "продаем", но при этом почему-то представленные в формате индикатора, сливают все, если их протестировать формально. Именно поэтому они индикаторы, а не торгующие советники - перерисовка решает. В качестве иллюстрации вот этого утверждения: в аттаче индикатор, который мало того, что показывает покупку, продажу и точки закрытия, так еще и считает профит от торговли по этому индикатору на истории. Грааль, да и только. Но если вы накидаете советник и протестируете, у вас получится сильно другой результат. В частности, потому, что крестики закрытия перепрыгивают на более благоприятный бар дальше на истории, и остаются на месте, если цена не двинулась в более благоприятную для закрытия сторону. А в торговле вам нужно принять решение, закрываться или нет, на текущем баре - вы не можете заглянуть в будущее и подождать цены получше. TRADERSKITCHEN INDICATOR UNLIMITED.ex4 Ссылка на сообщение Поделиться на другие сайты More sharing options...
nurilnar92 Опубликовано 22 мая, 2022 Поделиться Доработка советников: общая тема Опубликовано 22 мая, 2022 1 час назад, Rigal сказал: Да, пропускать ничего нельзя Верно. Если вас устраивает набор по умолчанию для последних 10 параметров, их можно опустить Да, у iCustom есть лимит и из него легко вылезти. С этой проблемой не справиться никак. Но если у вас есть исходник индикатора, вы можете выкинуть незначимые параметры, вроде первых двух текстовых. Просто уберите служебное слово input. Или просто поставить в начало списка то, что вы собираетесь передавать, а все остальное опустить. Буферы перебирать не нужно совсем, в этом нет смысла. Нельзя программно определить, в каком буфере значение, которое вы ищете. Либо загляните в исходник (найдите тот, который соответствует вашей версии), либо зайдите в свойствах индикатора на вкладку цветов и стилей, там будет много подсказок: Показать контент Пощелкайте цветами, гляньте на реакцию на графике - ваши целевые буферы быстро найдутся. А перебираете вы не буфер, а индекс в буфере, отступ от последней свечи. Буферы у вас смотрят в 6 для Up и 13 для Down Вроде все написал, но все равно не хочет подтягивать. 1. Может ли это быть связано, что рынки закрыты? Т.е. когда рынок откроется информация будет поступать. 2. Правильно ли я понял, что если мне не нужно входные параметры в индикаторе менять, то не обязательно в iCustom их писать? Везде input убераю у параметров, а в iCustom будет up=iCustom(Symbol(),PERIOD_CURRENT,"Secret",,6,1); 3. Вы писали, что "Например, вторым параметром в вашем вызове iCustom передается UpdateMode, в то время, как в индикаторе ожидается строка STR00:", но до STR00 у меня еще есть строка Indicator и в начале его нужно писать? Ссылка на сообщение Поделиться на другие сайты More sharing options...
Rigal Опубликовано 22 мая, 2022 Поделиться Доработка советников: общая тема Опубликовано 22 мая, 2022 14 минут назад, nurilnar92 сказал: 1. Может ли это быть связано, что рынки закрыты? Т.е. когда рынок откроется информация будет поступать. Если вы накидываете на график - конечно, у вас нет тиков. Если в тестере стратегий - не может, должно работать сразу. Но при этом индикатор рисоваться не будет. 15 минут назад, nurilnar92 сказал: 2. Правильно ли я понял, что если мне не нужно входные параметры в индикаторе менять, то не обязательно в iCustom их писать? Везде input убераю у параметров, а в iCustom будет up=iCustom(Symbol(),PERIOD_CURRENT,"Secret",,6,1); Лишняя запятая перед номером буфера, а в остальном да, так можно 16 минут назад, nurilnar92 сказал: 3. Вы писали, что "Например, вторым параметром в вашем вызове iCustom передается UpdateMode, в то время, как в индикаторе ожидается строка STR00:", но до STR00 у меня еще есть строка Indicator и в начале его нужно писать? Да, каждой строчке в окне параметров должен соответствовать параметр в вызове, в том же порядке. Я ошибочно принял "Secret" за как раз этот параметр - вы, очевидно, так вызываете индикатор, который у вас, вероятно, переименован? 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти