Перейти к содержанию

Доработка советников: общая тема


Рекомендуемые сообщения

Доработка советников: общая тема Опубликовано

Лайк поставил. Не знал что так важно. Не могли бы Вы немного подправить советник. Он  дает сигнал только когда у обеих свечей одинаковый High и  Low. А нужно что  бы или High или Low . Просто пропускает много таких свечей. Спасибо.

Rails.mq4

Изменено пользователем qwerty12345695552
Ссылка на сообщение
Поделиться на другие сайты

  • 2 weeks later...
  • Ответов 2,5k
  • Создано
  • Последний ответ

Популярные авторы

Популярные авторы

Популярные посты

Версия с правками. Я немного свернул код, чтобы не перебирались ордера попусту и чтобы проверка красной/синей зоны делалась в одном месте. Прогнал в тесте с настройками по умолчанию. Ожидаемо лье

Перейти

Нате 1_2_3 _Fraktal.mq4

Перейти

Система маятника, или попрыгунчика, или фиг ее знает как ее еще назвать не намного младше сетки мартингейла. Мы в далеком 2017 писали по ней сов с индикатором на вход: https://tlap.com/forum/labo

Перейти
Доработка советников: общая тема Опубликовано

Здравствуйте Господа Програмисты  ! Есть всем известный  советник Forex Setka Trader 1.6.

После доработки есть проблема в его работе 
 
Когда советник торгует и есть открытые ордера ,(стоит он на VPS сервере) 

иногда сервер перезагружают, и происходит сбой .

Он не подхватывает свои открытые ордера а начинает открывать новые.
 
Вот эту проблемку хотелось бы исправить . 

Могли бы Вы помочь .  Моя почта   ( amskorn@gmail.com )  Буду благодарен кто откликнется .

Ссылка на сообщение
Поделиться на другие сайты

Доработка советников: общая тема Опубликовано
13 минут назад, amskorn сказал:

После доработки есть проблема в его работе 

Все доработки этого советника идут в разделе Лаборатория, и версия выбранная вами уже устарела на 10 поколений. Лучше одуматься пока не поздно

Ссылка на сообщение
Поделиться на другие сайты

  • 4 weeks later...
Доработка советников: общая тема Опубликовано

прошу помощь: нужно в советника - усреднителя добавить функцию запрета открытия новых серий при достижении определённой цены, можно на графике прям линией отметить

.почта для связи mybp@mail.ru или скайп  investclub777

Ссылка на сообщение
Поделиться на другие сайты

  • 4 weeks later...
Доработка советников: общая тема Опубликовано

Доброго времени суток.

Есть советник, открывает сделки с расчетом риска от 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));
}

Ссылка на сообщение
Поделиться на другие сайты

  • 2 weeks later...
Доработка советников: общая тема Опубликовано
В 22.03.2019 в 17:52, loveЦ сказал:

 


Сделал на скорую руку, уж извините если не получилось. Добавил параметр "Step" -шаг для отложенных ордеров.
Проверьте и отпишитесь пожалуйста.

 

e-TFL_v2.mq4 65 \u043a\u0411 · 9 загрузок

Добрый день! Помогите пожалуйста добавить Трал в этот советник и как можно ограничить количество открываемых ордеров? Заранее спасибо!  

Ссылка на сообщение
Поделиться на другие сайты

  • 2 weeks later...
Доработка советников: общая тема Опубликовано

Всем привет есть индикатор 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

Изменено пользователем artatwjs
Ссылка на сообщение
Поделиться на другие сайты

Доработка советников: общая тема Опубликовано
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
Ссылка на сообщение
Поделиться на другие сайты

Доработка советников: общая тема Опубликовано

Версия с правками. Я немного свернул код, чтобы не перебирались ордера попусту и чтобы проверка красной/синей зоны делалась в одном месте.

Прогнал в тесте с настройками по умолчанию. Ожидаемо льет на флете, коего по всему форексу тьма.

Можно добавить условие на вход только по смене цвета - версия R2. Динамики не меняет.

 

NonLagDotRobot_R1.mq4 NonLagDotRobot_R2.mq4

  • Лайк 3
  • Спасибо 1
Ссылка на сообщение
Поделиться на другие сайты

Доработка советников: общая тема Опубликовано
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

Изменено пользователем artatwjs
Ссылка на сообщение
Поделиться на другие сайты

Доработка советников: общая тема Опубликовано

Доброго времени суток.

Есть советник, в котором хотелось бы добавить в функции расчёта лота с риском от свободных средств:

- при убыточной сделке увеличение риска на единицу, в дальнейшем при положительной сделке возврат риска к одному проценту.

Советник прилагается.

 

 

BOLINGER.mq4

Ссылка на сообщение
Поделиться на другие сайты

Доработка советников: общая тема Опубликовано

Добрый день! Подскажите, как доделать советник, чтобы по тренду тоже строил сетку, но только со своим мультиплицированием, а не держал единственный ордер. Куда и что вставить? Я сам переделаю. Исходник прилагаю.

Ilan1.7byNikolaus.mq4

Ссылка на сообщение
Поделиться на другие сайты

Доработка советников: общая тема Опубликовано

Доброго времени суток.

Помогите пожалуйста в советнике подправить функцию расчёта риска:

- при убыточной сделке увеличение риска в два раза, а  при положительной сделке возврат риска к одному проценту.

Советник прилагается.

 

BOLINGER_V01.mq4

Ссылка на сообщение
Поделиться на другие сайты

Доработка советников: общая тема Опубликовано
5 минут назад, drobayura сказал:

Ребята, а что сделать так нельзя да?

Заплати программисту и бэнч) Так походу никто не хочет заморачиваться

Ссылка на сообщение
Поделиться на другие сайты

  • 4 weeks later...
Доработка советников: общая тема Опубликовано

Добрый день! Хотел написать советника по индикатору (индикатор во вложении), но почему-то не получается через iCustom получить данные от индикатора. При этом и в окне данных на терминале нет данных по индикатору.

Объявил все переменные кроме строковых и цветовых, в  iCustom тоже все переписал, кроме строковых и цветовых. Через Comment хотел вывести значения на экран, но не получается.

Свой написанный код тоже выкладываю. Очень надеюсь на вашу помощь.Secret Forex TIO v1.5 (1).ex4

Заранее большое спасибо за помощь.

Robot Money.mq4

Ссылка на сообщение
Поделиться на другие сайты

Доработка советников: общая тема Опубликовано
28 минут назад, nurilnar92 сказал:

Добрый день! Хотел написать советника по индикатору (индикатор во вложении), но почему-то не получается через iCustom получить данные от индикатора. При этом и в окне данных на терминале нет данных по индикатору.

Объявил все переменные кроме строковых и цветовых, в  iCustom тоже все переписал, кроме строковых и цветовых. Через Comment хотел вывести значения на экран, но не получается.

Свой написанный код тоже выкладываю. Очень надеюсь на вашу помощь.Secret Forex TIO v1.5 (1).ex4

Заранее большое спасибо за помощь.

Robot Money.mq4 9 \u043a\u0411 · 0 загрузок

Вы забываете передавать параметры "комментария".

Например, вторым параметром в вашем вызове iCustom передается UpdateMode, в то время, как в индикаторе ожидается строка STR00:

image.png.3a6eebaf8eedeba96a01c3fc355fb3bc.png

Но в целом, я бы рекомендовал обратиться к первоисточнику: поскольку TIO является визитной карточкой известного перепродавана, который сам не умеет кодить, я взял на себя смелость предположить, что у этого индикатора есть другое название, под которым его публиковали его настоящие авторы.

Исходно он известен, как XARDFX Forex Trading System (https://www.trendfollowingsystem.com/xardfx-forex-trading-system/)

Доступен в исходном коде, который зицпредседатель "поправил", добавив свой "копирайт".

Исходник прикреплен к сообщению, имеет смысл взять нужную вам логику прямо из него, или по крайней мере заглядывать, чтобы понимать, что именно вы хотите оттуда читать.

Эта версия не идентична вашей на первый взгляд, но наверняка можно поискать еще, поскольку исходник вашей версии зицпредседатель тоже где-то скачал. Значит, и вы можете.

 

К слову, практика показывает, что стратегии, предлагающие явный сигнал "покупаем" и "продаем", но при этом почему-то представленные в формате индикатора, сливают все, если их протестировать формально.

Именно поэтому они индикаторы, а не торгующие советники - перерисовка решает.

 

!!!-MT4 X-XARDFX-38.mq4

  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

Доработка советников: общая тема Опубликовано
20 минут назад, Rigal сказал:

Вы забываете передавать параметры "комментария".

Например, вторым параметром в вашем вызове iCustom передается UpdateMode, в то время, как в индикаторе ожидается строка STR00:

image.png.3a6eebaf8eedeba96a01c3fc355fb3bc.png

Но в целом, я бы рекомендовал обратиться к первоисточнику: поскольку TIO является визитной карточкой известного перепродавана, который сам не умеет кодить, я взял на себя смелость предположить, что у этого индикатора есть другое название, под которым его публиковали его настоящие авторы.

Исходно он известен, как XARDFX Forex Trading System (https://www.trendfollowingsystem.com/xardfx-forex-trading-system/)

Доступен в исходном коде, который зицпредседатель "поправил", добавив свой "копирайт".

Исходник прикреплен к сообщению, имеет смысл взять нужную вам логику прямо из него, или по крайней мере заглядывать, чтобы понимать, что именно вы хотите оттуда читать.

Эта версия не идентична вашей на первый взгляд, но наверняка можно поискать еще, поскольку исходник вашей версии зицпредседатель тоже где-то скачал. Значит, и вы можете.

 

К слову, практика показывает, что стратегии, предлагающие явный сигнал "покупаем" и "продаем", но при этом почему-то представленные в формате индикатора, сливают все, если их протестировать формально.

Именно поэтому они индикаторы, а не торгующие советники - перерисовка решает.

 

!!!-MT4 X-XARDFX-38.mq4 101 \u043a\u0411 · 0 загрузок

Спасибо вам огромное. Сам бы долго сидел и изучал. Если честно я третий день сижу и изучаю mql4. Интересно самому что-то создать, улучшить и применять в торговле. Вот изучаю. Пока программировать очень нравится, а когда еще и получается еще лучше.

 

Ссылка на сообщение
Поделиться на другие сайты

Доработка советников: общая тема Опубликовано
Только что, nurilnar92 сказал:

Спасибо вам огромное. Сам бы долго сидел и изучал. Если честно я третий день сижу и изучаю mql4. Интересно самому что-то создать, улучшить и применять в торговле. Вот изучаю. Пока программировать очень нравится, а когда еще и получается еще лучше.

 

Вкратце: список параметров должен совпадать по порядку, ничего нельзя пропускать. Можно на каком-то моменте остановиться: если список "обрезан", индикатор использует значения по умолчанию для остальных параметров. Последние два параметра iCustom всегда номер буфера и индекс.

Вам имеет смысл проверять, скажем, наличие стрелки на последнем баре (индекс 1), не нужно перебирать до бесконечности.

Если стрелки на последнем баре нет - не имеет значения, какая стрелка была до этого, поезд уже ушел.

  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

Доработка советников: общая тема Опубликовано
2 минуты назад, Rigal сказал:

Вкратце: список параметров должен совпадать по порядку, ничего нельзя пропускать. Можно на каком-то моменте остановиться: если список "обрезан", индикатор использует значения по умолчанию для остальных параметров. Последние два параметра iCustom всегда номер буфера и индекс.

Вам имеет смысл проверять, скажем, наличие стрелки на последнем баре (индекс 1), не нужно перебирать до бесконечности.

Если стрелки на последнем баре нет - не имеет значения, какая стрелка была до этого, поезд уже ушел.

Правильно ли я понял:

1. Пишем все параметры, в том числе и текстовые и цветовые?

2. Можно остановиться, т.е. половину только написать и потом перейти на номер буфера и индекс?

3. А если много параметров, то не будет проблемы, что они в iCustom не поместяться? В этом случае как быть? Я начал все переписывать туда по порядку и программа ругается "wrong parameters count". Думаю из-за того, что не помещается уже.

4. По поводу бесконечности у меня логика такая. Я не знаю какой буфер отвечает на сигнал Buy и Cell. Поэтому и до момента нахождения нужного буфера буду перебирать. Далее конечно цикл уберу.

Если имеется возможность, то прошу ответить на вопросы. Это здорово оптимизирует мне время.

Если будет интересно, то в конце файл выложу.

Ссылка на сообщение
Поделиться на другие сайты

Доработка советников: общая тема Опубликовано
10 минут назад, nurilnar92 сказал:

1. Пишем все параметры, в том числе и текстовые и цветовые?

Да, пропускать ничего нельзя

10 минут назад, nurilnar92 сказал:

2. Можно остановиться, т.е. половину только написать и потом перейти на номер буфера и индекс?

Верно. Если вас устраивает набор по умолчанию для последних 10 параметров, их можно опустить

10 минут назад, nurilnar92 сказал:

3. А если много параметров, то не будет проблемы, что они в iCustom не поместяться? В этом случае как быть? Я начал все переписывать туда по порядку и программа ругается "wrong parameters count". Думаю из-за того, что не помещается уже.

Да, у iCustom есть лимит и из него легко вылезти. С этой проблемой не справиться никак. Но если у вас есть исходник индикатора, вы можете выкинуть незначимые параметры, вроде первых двух текстовых. Просто уберите служебное слово input.

Или просто поставить в начало списка то, что вы собираетесь передавать, а все остальное опустить.

10 минут назад, nurilnar92 сказал:

4. По поводу бесконечности у меня логика такая. Я не знаю какой буфер отвечает на сигнал Buy и Cell. Поэтому и до момента нахождения нужного буфера буду перебирать. Далее конечно цикл уберу.

Буферы перебирать не нужно совсем, в этом нет смысла. Нельзя программно определить, в каком буфере значение, которое вы ищете.

Либо загляните в исходник (найдите тот, который соответствует вашей версии), либо зайдите в свойствах индикатора на вкладку цветов и стилей, там будет много подсказок:

Спойлер

image.png.7ba9e60103482b37c4f4e9e90c7706c2.png

Пощелкайте цветами, гляньте на реакцию на графике - ваши целевые буферы быстро найдутся.

А перебираете вы не буфер, а индекс в буфере, отступ от последней свечи. Буферы у вас смотрят в 6 для Up и 13 для Down

Изменено пользователем Rigal
Ссылка на сообщение
Поделиться на другие сайты

Доработка советников: общая тема Опубликовано
1 час назад, Rigal сказал:

К слову, практика показывает, что стратегии, предлагающие явный сигнал "покупаем" и "продаем", но при этом почему-то представленные в формате индикатора, сливают все, если их протестировать формально.

Именно поэтому они индикаторы, а не торгующие советники - перерисовка решает.

В качестве иллюстрации вот этого утверждения: в аттаче индикатор, который мало того, что показывает покупку, продажу и точки закрытия, так еще и считает профит от торговли по этому индикатору на истории. Грааль, да и только.

Но если вы накидаете советник и протестируете, у вас получится сильно другой результат.

В частности, потому, что крестики закрытия перепрыгивают на более благоприятный бар дальше на истории, и остаются на месте, если цена не двинулась в более благоприятную для закрытия сторону.

А в торговле вам нужно принять решение, закрываться или нет, на текущем баре - вы не можете заглянуть в будущее и подождать цены получше.

TRADERSKITCHEN INDICATOR UNLIMITED.ex4

Ссылка на сообщение
Поделиться на другие сайты

Доработка советников: общая тема Опубликовано
1 час назад, Rigal сказал:

Да, пропускать ничего нельзя

Верно. Если вас устраивает набор по умолчанию для последних 10 параметров, их можно опустить

Да, у iCustom есть лимит и из него легко вылезти. С этой проблемой не справиться никак. Но если у вас есть исходник индикатора, вы можете выкинуть незначимые параметры, вроде первых двух текстовых. Просто уберите служебное слово input.

Или просто поставить в начало списка то, что вы собираетесь передавать, а все остальное опустить.

Буферы перебирать не нужно совсем, в этом нет смысла. Нельзя программно определить, в каком буфере значение, которое вы ищете.

Либо загляните в исходник (найдите тот, который соответствует вашей версии), либо зайдите в свойствах индикатора на вкладку цветов и стилей, там будет много подсказок:

  Показать контент

image.png.7ba9e60103482b37c4f4e9e90c7706c2.png

Пощелкайте цветами, гляньте на реакцию на графике - ваши целевые буферы быстро найдутся.

А перебираете вы не буфер, а индекс в буфере, отступ от последней свечи. Буферы у вас смотрят в 6 для Up и 13 для Down

Вроде все написал, но все равно не хочет подтягивать.

1. Может ли это быть связано, что рынки закрыты? Т.е. когда рынок откроется информация будет поступать.

2. Правильно ли я понял, что если мне не нужно входные параметры в индикаторе менять, то не обязательно в iCustom их писать? Везде input убераю у параметров, а в iCustom будет up=iCustom(Symbol(),PERIOD_CURRENT,"Secret",,6,1);

3. Вы писали, что "Например, вторым параметром в вашем вызове iCustom передается UpdateMode, в то время, как в индикаторе ожидается строка STR00:", но до STR00 у меня еще есть строка Indicator и в начале его нужно писать?

Ссылка на сообщение
Поделиться на другие сайты

Доработка советников: общая тема Опубликовано
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
Ссылка на сообщение
Поделиться на другие сайты

  • idinesh changed the title to Assae Elite Pro tlap version source code need i have plan convert this mt4 to mt5 and it possible mt4 dll file modified mt5 version

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Специальное предложение


  • ×
    ×
    • Создать...