Бесплатное написание советников и индикаторов на MQL4 #1 - Страница 96
Страница 96 из 146 ПерваяПервая ... 46 86 92 93 94 95 96 97 98 99 100 106 ... ПоследняяПоследняя
Показано с 951 по 960 из 1456

Тема: Бесплатное написание советников и индикаторов на MQL4 #1

  1. #951
    Теоретик
    Регистрация
    04.01.2017
    Сообщений
    260
    Promo (¢)
    2,350
    Благодарности
    Получено: 77
    Отправлено: 3
    Для SviteR
    Переделал код, посмотрите, всё должно работать. Не забывайте, если ставите советник на евро и на фунт, то у них должны быть разные мэджики.
    Вложения Вложения

    Вы не можете благодарить!

  2. #952
    Теоретик
    Регистрация
    12.04.2017
    Сообщений
    1,456
    Promo (¢)
    1,710
    Благодарности
    Получено: 606
    Отправлено: 441
    Цитата Сообщение от wayfarer Посмотреть сообщение
    царский указ выполнен - принимай.
    Вот спасибо, никогда бы не подумал, что кто то бесплатно выложит советник. А ведь по сути это грааль для скальпинга, надо просто правильно его настроить, например я хоть и сторонник мартина но множитель 2 я считаю просто огромным и сам использую 1,3 -1,5.
    В общем руки чешутся на оптимизацию закинуть, жаль, что сейчас компьютера мощного нету долго оптимизировать будет

    Вы не можете благодарить!

  3. #953
    Новичок
    Регистрация
    24.12.2017
    Сообщений
    9
    Promo (¢)
    1,580
    Благодарности
    Получено: 0
    Отправлено: 2
    Цитата Сообщение от wayfarer Посмотреть сообщение
    .
    Здравствуйте, Wayfarer

    Можете пожалуйста помочь немного изменить функционал данного индикатора Уровней Мюррея. (Индикатор прикрепил ниже)
    MMLDashboard v1.2 nmc .mq4
    Хотелось бы сделать так, чтобы вместо валютных пар, которые отображены вверху панели, были отображены все таймфреймы текущей валютной пары.
    Для более наглядного примера ниже прикрепил скрин:
    Screenshot_4.jpg

    Заранее Благодарю за ответ!

    Вы не можете благодарить!

  4. #954
    Программист
    Регистрация
    16.08.2012
    Адрес
    Челябинск
    Сообщений
    1,617
    Promo (¢)
    42,835
    Благодарности
    Получено: 561
    Отправлено: 63
    Цитата Сообщение от Rotshilid Посмотреть сообщение
    никогда бы не подумал, что кто то бесплатно выложит советник.
    Странно, а тема называется "Бесплатное написание советников и индикаторов на MQL4", забавно искать здесь платные решения. Кстати, сова, которую вы скачали, имеет уже новую версию 1.1, поищите на страницах ветки.

    Вы не можете благодарить!
    Для заказа кода, напишите в личку - я отвечу на ваше предложение.

  5. #955
    Теоретик
    Регистрация
    04.01.2017
    Сообщений
    260
    Promo (¢)
    2,350
    Благодарности
    Получено: 77
    Отправлено: 3
    Для Sviter.
    Посмотрите, может что не так...
    Файл с советником в папку experts
    Файл с индикатором Awesome в папку с индикаторами.
    Вложения Вложения

    Вы не можете благодарить!

  6. #956
    Уже не гость
    Регистрация
    11.04.2018
    Сообщений
    2
    Promo (¢)
    540
    Благодарности
    Получено: 0
    Отправлено: 0
    Здравствуйте, нужно внести исправления и изменения в советник "Возврат"(inlbeback).

    1. Выставление лимитников в установленное время(часы:минуты),то же самое с удалением.
    Закрытие всех ордеров в установленное время(часы:минуты)
    2. Если это возможно,сделать виртуальные лимитные ордера.Что бы советник лимитники не в терминале выстовлял,а держал их в уме и
    открывал ордера сам,а не доверял терминалу.Время выставления и удаления виртуальных лимитников(часы:минуты).
    3. Добавить виртуальные стоплос и тейкпрофит.
    4. Вывевести в настройки реальный тейкпрофит и отключить рандомную установку тейкпрофита советником.
    5. Стоплос советником выставляется рандомно,к тому же при изменении показателя меняется лот.Хотелось бы фиксированый
    стоплос без влияния на лот.
    6. Возможность переключения между реальными и виртуальными лимитниками,чтобы выставлялись какие-то одни.
    7. Иногда советник выставляет либо байлимит, либо селллимит хотя должен выставить оба.

    Пожалуй это всё,зарание благодарен!
    Вложения Вложения

    Вы не можете благодарить!

  7. #957
    Новичок
    Регистрация
    04.03.2017
    Сообщений
    32
    Promo (¢)
    1,620
    Благодарности
    Получено: 0
    Отправлено: 17
    Цитата Сообщение от Valerius Посмотреть сообщение
    Вставьте вместо вашего блока открытия ордеров вот такой блок...
    Правда не гарантируется, что после первой сделки в бай откроется селл...

    Код:
    // открытие сделки 
    // --- 
       get_lots_by_percent(Ask,Ask-_SL*K_DIG*Point);
    // --- 
       if(!find_orders() && GlobalVariableGet("oper")==1)
         {
          if(op_buy_sig() && LAST_BUY_BARTIME!=iTime(Symbol(),Period(),0))
            {
             LAST_BUY_BARTIME=iTime(Symbol(),Period(),0);
             open_positions(OP_BUY,OP_LOTS);
             GlobalVariableSet("oper",0);
            }
         }
    // --- 
       if(!find_orders() && GlobalVariableGet("oper")==0)
         {
          if(op_sell_sig() && LAST_SELL_BARTIME!=iTime(Symbol(),Period(),0))
            {
             LAST_SELL_BARTIME=iTime(Symbol(),Period(),0);
             open_positions(OP_SELL,OP_LOTS);
             GlobalVariableSet("oper",1);
            }
         }
    Большое спасибо за помощь!!!
    Всё работает, а т.к код из советника, то и не надо учитывать другие сделки.

    Просьба помочь еще в одном - в запрете открытия сделок в определенный интервал времени. Но что бы ордера которые уже открыты советник вел дальше.
    Что бы можно было задать несколько запретов (как пример с 0.00 - 01.00/ 12.00 - 15.30.... хотелось бы 24 позиции, как часов сутках)
    Исходный код тот же )
    Код:
    // ---
    void OnTick()
    {
        // ---
        // закрытие сделки
        if(find_orders(_MagicNumber))
        {
            if(cl_buy_sig())
            {
                cbm(_MagicNumber, _Slippage, OP_BUY);
            }
            if(cl_sell_sig())
            {
                cbm(_MagicNumber, _Slippage, OP_SELL);
            }
        }
       
        // открытие сделки
        // ---
        get_lots_by_percent(Ask, Ask-_SL*K_DIG*Point);
        // ---
        if(!find_orders(_MagicNumber, (_OnlyOneOpenedPos ? -1 : OP_BUY)))
        {
            if(op_buy_sig() && LAST_BUY_BARTIME != iTime(Symbol(), Period(), 0))
            {
                LAST_BUY_BARTIME = iTime(Symbol(), Period(), 0);
                open_positions(OP_BUY, OP_LOTS);   
            }
        }
        // ---
        if(!find_orders(_MagicNumber, (_OnlyOneOpenedPos ? -1 : OP_SELL)))
        {
            if(op_sell_sig() && LAST_SELL_BARTIME != iTime(Symbol(), Period(), 0))
            {
                LAST_SELL_BARTIME = iTime(Symbol(), Period(), 0);
                open_positions(OP_SELL, OP_LOTS);   
            }
        }
        // ---
        T_SL();
        // ---
        nonLoss();
    }
    
    // ---
    
    // ---
    void get_lots_by_percent(double op_price, double sl_price)
    {
        // MQL4 | объём сделки рассчитывается по значению SL и допустимому проценту потерь
        RefreshRates();
        if(_SL == 0)
        {
            OP_LOTS = MarketInfo(Symbol(), MODE_MINLOT);
            return;
        }
        // ---
        int pp;
        if (op_price < sl_price)
            pp = int((sl_price - op_price) / Point);
        else
            pp = int((op_price - sl_price) / Point);
        OP_LOTS = (((AccountBalance() * _LosPercent) / 100) / MarketInfo(Symbol(), MODE_TICKVALUE)) / (pp);
        OP_LOTS = MathRound(OP_LOTS / MarketInfo(Symbol(), MODE_LOTSTEP)) * MarketInfo(Symbol(), MODE_LOTSTEP);
        OP_LOTS = MathMax(OP_LOTS, MarketInfo(Symbol(), MODE_MINLOT));
        OP_LOTS = MathMin(OP_LOTS, MarketInfo(Symbol(), MODE_MAXLOT));
    }
    
    // ---
    // ---
    bool find_orders(int magic = -1, int type = -1, int time = -1, string symb = "NULL", double price = -1, double lot = -1)
    {
        // MQL4 | функция поиска открытых ордеров
        // возвращает истину, если найден хотя бы один ордер с подходящими параметрами
        for (int i = OrdersTotal() - 1; i >= _OR; i--)
        {
            if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
                break;
            if (((OrderType() == type) || (type == -1))
                && ((OrderMagicNumber() == magic) || (magic == -1))
                && ((OrderSymbol() == symb) || (symb == "NULL" && OrderSymbol() == Symbol()))
                && ((OrderOpenTime() >= time) || (time == -1))
                && ((OrderLots() == lot) || (lot == -1))
                && ((NormalizeDouble(OrderOpenPrice(), Digits) == NormalizeDouble(price, Digits)) || (price == -1)))
            {
                return (true);
                break;
            }
        }
        return (false);
    }
    
    // ---

    Вы не можете благодарить!

  8. #958
    Теоретик
    Регистрация
    04.01.2017
    Сообщений
    260
    Promo (¢)
    2,350
    Благодарности
    Получено: 77
    Отправлено: 3
    Цитата Сообщение от Hi-FI Посмотреть сообщение
    Большое спасибо за помощь!!!
    Всё работает, а т.к код из советника, то и не надо учитывать другие сделки.

    Просьба помочь еще в одном - в запрете открытия сделок в определенный интервал времени. Но что бы ордера которые уже открыты советник вел дальше.
    Что бы можно было задать несколько запретов (как пример с 0.00 - 01.00/ 12.00 - 15.30.... хотелось бы 24 позиции, как часов сутках)
    Исходный код тот же )
    Код:
    // ---
    void OnTick()
    {
        // ---
        // закрытие сделки
        if(find_orders(_MagicNumber))
        {
            if(cl_buy_sig())
            {
                cbm(_MagicNumber, _Slippage, OP_BUY);
            }
            if(cl_sell_sig())
            {
                cbm(_MagicNumber, _Slippage, OP_SELL);
            }
        }
       
        // открытие сделки
        // ---
        get_lots_by_percent(Ask, Ask-_SL*K_DIG*Point);
        // ---
        if(!find_orders(_MagicNumber, (_OnlyOneOpenedPos ? -1 : OP_BUY)))
        {
            if(op_buy_sig() && LAST_BUY_BARTIME != iTime(Symbol(), Period(), 0))
            {
                LAST_BUY_BARTIME = iTime(Symbol(), Period(), 0);
                open_positions(OP_BUY, OP_LOTS);   
            }
        }
        // ---
        if(!find_orders(_MagicNumber, (_OnlyOneOpenedPos ? -1 : OP_SELL)))
        {
            if(op_sell_sig() && LAST_SELL_BARTIME != iTime(Symbol(), Period(), 0))
            {
                LAST_SELL_BARTIME = iTime(Symbol(), Period(), 0);
                open_positions(OP_SELL, OP_LOTS);   
            }
        }
        // ---
        T_SL();
        // ---
        nonLoss();
    }
    
    // ---
    
    // ---
    void get_lots_by_percent(double op_price, double sl_price)
    {
        // MQL4 | объём сделки рассчитывается по значению SL и допустимому проценту потерь
        RefreshRates();
        if(_SL == 0)
        {
            OP_LOTS = MarketInfo(Symbol(), MODE_MINLOT);
            return;
        }
        // ---
        int pp;
        if (op_price < sl_price)
            pp = int((sl_price - op_price) / Point);
        else
            pp = int((op_price - sl_price) / Point);
        OP_LOTS = (((AccountBalance() * _LosPercent) / 100) / MarketInfo(Symbol(), MODE_TICKVALUE)) / (pp);
        OP_LOTS = MathRound(OP_LOTS / MarketInfo(Symbol(), MODE_LOTSTEP)) * MarketInfo(Symbol(), MODE_LOTSTEP);
        OP_LOTS = MathMax(OP_LOTS, MarketInfo(Symbol(), MODE_MINLOT));
        OP_LOTS = MathMin(OP_LOTS, MarketInfo(Symbol(), MODE_MAXLOT));
    }
    
    // ---
    // ---
    bool find_orders(int magic = -1, int type = -1, int time = -1, string symb = "NULL", double price = -1, double lot = -1)
    {
        // MQL4 | функция поиска открытых ордеров
        // возвращает истину, если найден хотя бы один ордер с подходящими параметрами
        for (int i = OrdersTotal() - 1; i >= _OR; i--)
        {
            if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
                break;
            if (((OrderType() == type) || (type == -1))
                && ((OrderMagicNumber() == magic) || (magic == -1))
                && ((OrderSymbol() == symb) || (symb == "NULL" && OrderSymbol() == Symbol()))
                && ((OrderOpenTime() >= time) || (time == -1))
                && ((OrderLots() == lot) || (lot == -1))
                && ((NormalizeDouble(OrderOpenPrice(), Digits) == NormalizeDouble(price, Digits)) || (price == -1)))
            {
                return (true);
                break;
            }
        }
        return (false);
    }
    
    // ---
    Добрый день!
    А вам как нужно сделать, чтобы интервал времени был через слэш ИЛИ 24 строки отдельно в настройках?
    Если в одной строке будете вводить, то там при малейшей неточности может не работать данный режим.

    Вы не можете благодарить!

  9. #959
    Новичок
    Регистрация
    04.03.2017
    Сообщений
    32
    Promo (¢)
    1,620
    Благодарности
    Получено: 0
    Отправлено: 17
    Цитата Сообщение от Valerius Посмотреть сообщение
    Добрый день!
    А вам как нужно сделать, чтобы интервал времени был через слэш ИЛИ 24 строки отдельно в настройках?
    Если в одной строке будете вводить, то там при малейшей неточности может не работать данный режим.
    Лучше что бы работал хорошо.
    24 строки тогда. )
    Спасибо

    Вы не можете благодарить!

  10. #960
    Теоретик
    Регистрация
    04.01.2017
    Сообщений
    260
    Promo (¢)
    2,350
    Благодарности
    Получено: 77
    Отправлено: 3
    Цитата Сообщение от Hi-FI Посмотреть сообщение
    Лучше что бы работал хорошо.
    24 строки тогда. )
    Спасибо
    Добрый день!
    Вот посмотрите... соблюдайте формат написания времени. Не должно быть лишних пробелов.
    Немного переделал логику открытия противоположных ордеров. Но сути не поменяло по сравнению с предыдущей версией.
    Вложения Вложения

    Вы не можете благодарить!

Страница 96 из 146 ПерваяПервая ... 46 86 92 93 94 95 96 97 98 99 100 106 ... ПоследняяПоследняя

Похожие темы

  1. Бесплатное написание советников и индикаторов на MQL4
    от Rubinovi4 в разделе Программирование на MQL
    Ответов: 3446
    Последнее сообщение: 10.02.2017, 12:27
  2. Автоматический генератор MQL4\MQL5 советников и индикаторов
    от hlaiman в разделе Реклама: Предлагаю трейдерам...
    Ответов: 1
    Последнее сообщение: 09.01.2016, 16:21
  3. Научу Вас программировать советников на MQL4
    от mql-coach в разделе Реклама: Предлагаю трейдерам...
    Ответов: 0
    Последнее сообщение: 22.11.2014, 14:08
  4. Ответов: 13
    Последнее сообщение: 13.08.2014, 20:53
  5. Написание советников на заказ
    от ProfTrade в разделе Реклама: Предлагаю трейдерам...
    Ответов: 0
    Последнее сообщение: 20.02.2014, 18:57

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •