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

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


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

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

Помогите довести до ума сову. Сейчас она может работать только на отдельном счёте и по одной паре, т.к. может выбрать только последний ордер из истории и определить отсутствие открытых позиций. Нужно чтобы определяла свои ордера по мэджику и символу в истории и в списке открытых ордеров. СОВА_у-у_у-у.mq4

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

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

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

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

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

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

Перейти

Нате 1_2_3 _Fraktal.mq4

Перейти

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

Перейти
Доработка советников: общая тема Опубликовано
В 22.06.2019 в 12:01, t11001 сказал:

Помогите довести до ума сову. Сейчас она может работать только на отдельном счёте и по одной паре, т.к. может выбрать только последний ордер из истории и определить отсутствие открытых позиций. Нужно чтобы определяла свои ордера по мэджику и символу в истории и в списке открытых ордеров. СОВА_у-у_у-у.mq4

уже не надо сделал сам. подглядел в другом советнике как написать функцию

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

Доработка советников: общая тема Опубликовано
В 30.06.2019 в 14:50, loveЦ сказал:

Вроде, как я вижу,  в конце лишняя "}" , строчка 290)

Исправил

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

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

Вроде, как я вижу,  в конце лишняя "}" , строчка 290)

Как я понимаю я функцию не в то место ставлю. А вот куда ставить правильно не знаю( Возможно вы подскажите?

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

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

Абсолютно верно. НО если так вторую скобку не поставить, то вот такая ошибка

 

Внимательно смотрите скобки. Качество имдж не позволяет разглядеть всё, но кажется в строке 650 должны стоять "()", а у Вас вроде {)

А так в "Ошибки" видно где ошибки))) и строка и столбец, смотрите справа.

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

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

Как я понимаю я функцию не в то место ставлю. А вот куда ставить правильно не знаю( Возможно вы подскажите?

Без проблем, свяжитесь со мной как нибудь))

 

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

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

Добрый день суток есть советник он привязон к счёту ,каму можно обратитса чтоб отвезать от счёта название Traideringer V2иV3

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

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

Добрый день суток есть советник он привязон к счёту ,каму можно обратитса чтоб отвезать от счёта название Traideringer V2иV3

Создайте тему в "Совы в розыске"

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

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

Приветствую повелителей Кода!

Прошу помощи, так как сам пока разобраться не могу. 

Советник собран в конструкторе и работает на основе Force Index.  Сейчас сигнал он дает только при развороте, то есть разном направлении индикатора и цены(линия индикатора направлена вниз - свеча вверх), но по моей логике он должен поступать в том числе и в случае отклонения индикатора на 30%. Было бы конечно круто иметь возможность варьировать это отклонение, чтобы вычислить оптимальное, но как я понимаю, это уже сложно.

 

Changes.png.f0e098a2c0398d1d497fde6e118cd76a.png

 

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

Спойлер

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void Indicator::IndicatorChangesItsDirectionUpward(int firstBar,int previous,double &adIndValue[],
                                                   IndicatorComp &indCompLong,IndicatorComp &indCompShort)
  {
   double sigma= Sigma();
   for(int bar = firstBar; bar<Data.Bars; bar++)
     {
      int bar0 = bar - previous;
      int bar1 = bar0 - 1;
      while(MathAbs(adIndValue[bar0]-adIndValue[bar1])<sigma && bar1>firstBar)
         bar1--;

      int bar2=bar1-1>firstBar ? bar1-1 : firstBar;
      while(MathAbs(adIndValue[bar1]-adIndValue[bar2])<sigma && bar2>firstBar)
         bar2--;

      indCompLong.Value[bar]=(adIndValue[bar2]>adIndValue[bar1] && adIndValue[bar1]<adIndValue[bar0] && 
                              bar1==bar0-1) ? 1 : 0;
      indCompShort.Value[bar]=(adIndValue[bar2]<adIndValue[bar1] && adIndValue[bar1]>adIndValue[bar0] && 
                               bar1==bar0-1) ? 1 : 0;
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void Indicator::IndicatorChangesItsDirectionDownward(int firstBar,int previous,double &adIndValue[],
                                                     IndicatorComp &indCompLong,IndicatorComp &indCompShort)
  {
   double sigma= Sigma();
   for(int bar = firstBar; bar<Data.Bars; bar++)
     {
      int bar0 = bar - previous;
      int bar1 = bar0 - 1;
      while(MathAbs(adIndValue[bar0]-adIndValue[bar1])<sigma && bar1>firstBar)
         bar1--;

      int bar2=bar1-1>firstBar ? bar1-1 : firstBar;
      while(MathAbs(adIndValue[bar1]-adIndValue[bar2])<sigma && bar2>firstBar)
         bar2--;

      indCompLong.Value[bar]=(adIndValue[bar2]<adIndValue[bar1] && adIndValue[bar1]>adIndValue[bar0] && 
                              bar1==bar0-1) ? 1 : 0;
      indCompShort.Value[bar]=(adIndValue[bar2]>adIndValue[bar1] && adIndValue[bar1]<adIndValue[bar0] && 
                               bar1==bar0-1) ? 1 : 0;
     }
  }

 

 

И если не сложно, подскажите, что прописать(и гдеfcplm), чтобы выше МА лонг был в 2 раза больше шорта и наоборот, ниже МА шорт в 2 раза больше лонга.

Прошу прощения, если написал запутанно или не точно. 

Заранее большое спасибо!!!!!!!

 

 

FIH1.mq4

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

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

Всем привет! Хотел бы узнать, есть платный советник DaVinci. Над ним работает целая команда. Мне для своих целей нужно убрать в самой сове все надписи со словом Da Vinci. То есть чтобы когда ставишь сову в терминале, вместо слов DaVinci были слова PSB. Можно ли так сделать? Со своей стороны отблагодарю материально! Файл во вложении.

DaVinci.ex4

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

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

Хотите продавать под другим именем ?  Обычно для этих целей берут советник с открытым кодом, чаще всего вот этот:

http://tlap.com/sovetnik-trio-dancer/

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

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

Где-то я подобное уже видел, хотя может только название похожее на сайт продажи

 

http://tlap.com/forum/sovetniki-foreks/11/sovetnik-italyanskiy-hudozhnik/19695/

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

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

Добрый день. 

Написал советника на открытия, и закрытия в определенное время. 

Открывает в нужном месте. но закрыть не может. 

Подозреваю что проблема в лишней паре фигурных скобок.

Думал свежий взгляд быстро найдет проблему. 

Спасибо.

 

//+------------------------------------------------------------------+
//|                                                          bit.mq4 |
//|                        Copyright 2019, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2019, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict

extern double Lott= 0.2;
extern int Magic = 12456;

extern int Slippage=10;

int ticket;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+

      void OnTick()
  
           {
            //-------------------------Open order--------------------------------------------------------------------
              {
               if(OrdersTotal()==0 && ОткрытьОрдерВовремя(НужноОткрытВ,ЕщеНепоздно)==0)
                 {
                  if(ticket=OrderSend(Symbol(),OP_BUY,Lott,Ask,0,0,0,Magic,0,Gold));
                  Print("Ошибка выставления ордера");
                 }
              }
           

            //----------------Closed order------------------------------------------------------------------------ 

            if(TimeToClosed(NeedToClosed,WeHaveChoice)==0 )
             {
             OrderClose(1,1,Ask,3,Red); 
     return; 
             }
           }
         //+------------------------------------------------------------------+
         //|                                                                  |
         //+------------------------------------------------------------------+


         //----------------------------------------------------------------------------------------- 
         //--------------------------------Обработка времени---------------------------------------------------------

         datetime НужноОткрытВ=StrToTime("00:15");// Время открытия
         datetime ЕщеНепоздно=60*10;// Ждем тика максимуи 2 минуты
         //+------------------------------------------------------------------+
         //|                                                                  |
         //+------------------------------------------------------------------+
         int ОткрытьОрдерВовремя(datetime ВремяОткрытия,datetime ВремяУшло)
         // ВремяОткрытия -когда нужно открыть ордер
         // ВремяУшло     - допустимое ожидание после ВремяОткрытия, когда ещё можно открывать ордер
         // Возвращает -1 Время ещё недостигнуто
         //             0 Пора открывать ордер
         //            +1 Поздно открывать
           {
            int Result=0;
            if(TimeCurrent()<ВремяОткрытия) Result=-1;
            if(TimeCurrent()>=ВремяОткрытия+ВремяУшло) Result=1;
            return(Result);
            Print("sd",Result);
           }

         //-----------------Time to closed------------------------------------------------------------------------
         datetime NeedToClosed=StrToTime("23:00");
         datetime WeHaveChoice=60*10;
         //+------------------------------------------------------------------+
         //|                                                                  |
         //+------------------------------------------------------------------+
         int TimeToClosed(datetime NeedToClosed,datetime WeHaveChoice)

           {
            int Result2=0;

            if(TimeCurrent()<NeedToClosed) Result2=-1;
            if(TimeCurrent()>=NeedToClosed+WeHaveChoice)Result2=1;
            return(Result2);
           }
        
 //+-----------Количество ордеров-----------------------------------------+
  int count()
  {
     int count=0;
     {
      for(int trade=OrdersTotal()-1; trade>=0; trade--)
        {
         if(OrderMagicNumber()==Magic)
            count++;
            
        }
   
}
   return(count)  ;
}

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

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

А Вы смотрели справку по функции OrderClose ?  Насчёт скобок не знаю, но тикет и лот нужно чётко указывать.

bool  OrderClose(
   int        ticket,      // номер ордера
   double     lots,        // количество лотов
   double     price,       // цена закрытия
   int        slippage,    // максимальное проскальзывание
   color      arrow_color  // цвет
   );

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

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

А Вы смотрели справку по функции OrderClose ?  Насчёт скобок не знаю, но тикет и лот нужно чётко указывать.

bool  OrderClose(
   int        ticket,      // номер ордера
   double     lots,        // количество лотов
   double     price,       // цена закрытия
   int        slippage,    // максимальное проскальзывание
   color      arrow_color  // цвет
   );

 

 

Спасибо за ответ. 

 

Делал по курсу с TLP 

image.png.23a278fcb1104c38b7fbbe8da3b1ce4e.pngИзображения прикрепил. (С https://www.youtube.com/watch?time_continue=2699&v=63REtIKc4gQ)

 

Попытался четко указать лот и тикет, но это ситуацию не изменило. 

 

 

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

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

Попробуйте заменить 

if(TimeToClosed(NeedToClosed,WeHaveChoice)==0 )
  {
     OrderClose(1,1,Ask,3,Red); 
     return; 
  }

на:

   

   if ( Hour() >= 23 )   for ( int no = OrdersTotal() - 1; no >= 0; no-- )
   {
      if (  !OrderSelect(no, SELECT_BY_POS, MODE_TRADES)  ||  OrderSymbol() != _Symbol
         || !( OrderMagicNumber() == Magic  )   )                                   continue;
      OrderClose( OrderTicket(), OrderLots(), OrderClosePrice(), 3, clrGray ); 
   }

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

Доработка советников: общая тема Опубликовано
В 24.07.2019 в 19:57, 0ll сказал:

Попробуйте заменить 

if(TimeToClosed(NeedToClosed,WeHaveChoice)==0 )
  {
     OrderClose(1,1,Ask,3,Red); 
     return; 
  }

на:

   

   if ( Hour() >= 23 )   for ( int no = OrdersTotal() - 1; no >= 0; no-- )
   {
      if (  !OrderSelect(no, SELECT_BY_POS, MODE_TRADES)  ||  OrderSymbol() != _Symbol
         || !( OrderMagicNumber() == Magic  )   )                                   continue;
      OrderClose( OrderTicket(), OrderLots(), OrderClosePrice(), 3, clrGray ); 
   }

 

Спасибо за предложений вариант. Но к сожалению это не помогло. 

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

Доработка советников: общая тема Опубликовано
17 минут назад, andrijmix@gmail.com сказал:

 

Спасибо за предложений вариант. Но к сожалению это не помогло. 

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

 

типа 

 

ticket = Открываем ордер;
if (ticketb > 0) {if (OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES)) TICKET = OrderTicket();}

 

И при закрытие 

 

OrderClose( TICKET, OrderLots(), Ask или Bid, 3, clrGray );  ask или bid в зависимости от типа ордера

 

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

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

Добрый День. Ребят помогите плиз доработать советник. Советник очень прост и в его работу надо добавить один индикатор. Кто может доведите его до ума)). ТЗ и все файлы приложены к архиву.

Советник.rar

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

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

Добрый день. Как можно реализовать советник в котором две независимые сетки (на продажу и покупку) ?

Возможно кто-то умеет код такого, сбросите пожалуйста. 

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

Доработка советников: общая тема Опубликовано
9 часов назад, andrijmix@gmail.com сказал:

Добрый день. Как можно реализовать советник в котором две независимые сетки (на продажу и покупку) ?

Возможно кто-то умеет код такого, сбросите пожалуйста. 

На форуме море таких советников.Смотрите [Советник] Forex Setka Trader Mod и [EA]-Setka к примеру

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

Доработка советников: общая тема Опубликовано
9 часов назад, valerii.badaev@gmail.com сказал:

На форуме море таких советников.Смотрите [Советник] Forex Setka Trader Mod и [EA]-Setka к примеру

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

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

  • 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
  • Pavel888 pinned this тема

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

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

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

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

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

Войти

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

Войти

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


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