Бесплатное написание советников и индикаторов на MQL4 #1 - Страница 196
Страница 196 из 198 ПерваяПервая ... 96 146 186 192 193 194 195 196 197 198 ПоследняяПоследняя
Показано с 1,951 по 1,960 из 1977

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

  1. #1951
    Местный
    Регистрация
    20.02.2016
    Сообщений
    28
    Благодарности
    Получено: 0
    Отправлено: 0
    Канал регрессии показывает глобальное направление тренда. Можно менять параметры. Ширина канала регулируется в параметрах. Меня устраивают параметры по умолчанию в индикаторе, который я выложил в предыдущем посте. Есть исходник . Можете посмотреть. Любители по экспериментировать могут использовать другие индикаторы, может и найдут что-либо по-лучше. Но мой вариант уже проверен практикой, и я от него отказываться не хочу.

    - - - Добавлено - - -

    Основной смысл идеи, это нахождение зон покупок и зон продаж. Появление в этих зонах малых объемов. Это выдохшиеся крупные покупатели, крупные продавцы, двигавшие ранее цену до этих зон. А каким образом мы находим эти зоны, вариантов много. Это мугут быть уровни поддержки и сопротивления. Меня больше устроил канал, который формирует выше выложенный индикатор.
    Вложения Вложения

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

  2. #1952
    Местный
    Регистрация
    27.12.2018
    Сообщений
    103
    Благодарности
    Получено: 0
    Отправлено: 51
    Цитата Сообщение от KLoAF Посмотреть сообщение
    , вот разницу datetime чисел ещё куда ни шло конвертировать в int

    - - - Добавлено - - -


    Скорее всего он не ругается, а предупреждает о возможной потере информации...
    Работать будет, если dT не превысит 2^32=4 294 967 296
    Именно разницу и нужно в int перевести с целью разложить их по годам, месяцам, дням, как понимаю стандартных функций нет?, за разъяснение отдельное спасибо,

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

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

    - - - Добавлено - - -

    Когда-то, Programmer96 объяснял как, но тогда не получилось не помню из-за чего

    - - - Добавлено - - -

    int OnInit()
    возможно ли запускать эту функцию с программы?
    т.е весь код прописать в OnInit(), и вызывать его через он тик при определенных условиях,
    вот код если кого заинтересует,
    в общем, любые поправки, предложения, советы, приветствуются)
    Вложения Вложения
    • Тип файла: mq4 555_6.mq4 (42.0 Кб, Просмотров: 2)

    Вы не можете благодарить!
    Последний раз редактировалось raboco; 10.07.2019 в 00:43.

  3. #1953
    Местный
    Регистрация
    04.01.2017
    Сообщений
    309
    Благодарности
    Получено: 110
    Отправлено: 5
    OnInit() - Это инициализация советника. Она отрабатывает при запуске программы только один раз.
    Если вы хотите выполнить какие-то действия, которые находятся в OnInit ещё раз, то это лучше сделать в другой функции.
    Да, и в тексте, когда пишите, ставьте хотя бы знаки препинания, иначе смысл сказанного не понятен или совсем другое понятие.
    Иначе получится - "Казнить нельзя помиловать".

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

  4. #1954

    Регистрация
    11.04.2019
    Сообщений
    1
    Благодарности
    Получено: 0
    Отправлено: 1
    Здравствуйте! В этой теме (Бесплатное написание советников и индикаторов на MQL4 #1), на странице 125 я нашёл Советник: V_Setka_V1
    https://forum.roboforex.ru/showthrea...=1#post1302995
    Уважаемые Программисты нужна Ваша помощь, доработать советник:
    1.Общая прибыль в валюте депозита
    2.Количество ордеров SELL STOP
    3.Количество ордеров BUY LIMIT
    4.Количество ордеров BUYSTOP
    5.Количество ордеров SELL LIMIT
    6.Шаг сетки ордеров для SELL STOP
    7.Шаг сетки ордеров для BUY LIMIT
    8.Шаг сетки ордеров для BUYSTOP
    9.Шаг сетки ордеров для SELL LIMIT
    Нужно добавить:
    10.Растояние от цены до первого STOP ордера( если 0 то открывается сразу)
    11.Растояние от цены до первого LIMIT ордера( если 0 то открывается сразу)
    12.Базовый размер лота, значение от 0.01
    13.Общий stop loss, ( если 0 то стоп отключён)
    При касании Общего stop loss закрываются все ордера и + и -, убираются все отложенные ордера и происходит поворот торговли, по цене где стоял Общий stop loss сразу открывается ордер в сторону движения сорвавшей Общий stop loss с Коэф.увеличения лота, а новая сетка ложится в штатном режиме, также, как и новый Общий stop loss.
    14.Максимальная серия поворотов, ( если 0 то поворот не происходит, просто закрытие по Общему stop loss, далее новая сетка)
    15.Коэф.увеличения лота, (при значении 0 ордер на месте стопа открывается ордер с базовым размером лота)
    16.Проскальзывание
    17.В Пятницу советник работает до 00.00, (GMT брокера)
    18.MAGIC

    Благодарю!

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

  5. #1955
    Местный
    Регистрация
    15.05.2017
    Сообщений
    10
    Благодарности
    Получено: 0
    Отправлено: 4
    Доброго времени суток уважаемые программисты! =)

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

    Код:
    void IfOrderDoesNotExist4()
    {
        bool exists = false;
        for (int i=OrdersTotal()-1; i >= 0; i--)
        if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
        {
            if (OrderType() == OP_SELLSTOP && OrderSymbol() == Symbol() && OrderMagicNumber() == 2)
            {
                exists = true;
            }
        }
        else
        {
            Print("OrderSelect() error - ", ErrorDescription(GetLastError()));
        }
        
        if (exists == false)
        {
            SellPendingOrder7();
            
        }
    }
    
    void SellPendingOrder7()
    {
        int expire = TimeCurrent() + 60 * 60;
        double price = NormalizeDouble(Bid, NDigits) - PriceOffset7*PipValue*Point;
        double SL = price + SellStoploss7*PipValue*Point;
        if (SellStoploss7 == 0) SL = 0;
        double TP = price - SellTakeprofit7*PipValue*Point;
        if (SellTakeprofit7 == 0) TP = 0;
        if (60 == 0) expire = 0;
        int ticket = OrderSend(Symbol(), OP_SELLSTOP, GetSizeLot(), price, 4, SL, TP, "ALITA_4", 2, expire, Red);
        if (ticket == -1)
        {
            Print("OrderSend() error - ", ErrorDescription(GetLastError()));
        }
        
    }

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

  6. #1956
    Эксперт
    Регистрация
    16.08.2012
    Адрес
    Челябинск
    Сообщений
    1,896
    Благодарности
    Получено: 680
    Отправлено: 73
    Цитата Сообщение от Killyou Посмотреть сообщение
    хочу чтобы открывала сделки отложенными ордерами BuyStop, SellStop с лимитками проблем не возникало, а вот с этими есть...
    Смотрим вот сюда:
    PHP код:
    void SellPendingOrder7()
    {
        
    int expire TimeCurrent() + 60 60;
        
    // вычисляем цену открытия ордера SELL STOP
        
    double price NormalizeDouble(BidNDigits) - PriceOffset7*PipValue*Point;
        
    // Если предположить что PriceOffset7>0 и PipValue>0 то
        // цена price должна быть, как минимум: price < (Bid-<уровень стопов по спецификации>*Point)
        // проверяйте значение PriceOffset7 и PipValue! и смотрите ответ сервера на исполнение ордера - там все ответы на проблемы

        
    double SL price SellStoploss7*PipValue*Point;
        if (
    SellStoploss7 == 0SL 0;
        
    double TP price SellTakeprofit7*PipValue*Point;
        if (
    SellTakeprofit7 == 0TP 0;
        if (
    60 == 0expire 0;
        
    int ticket OrderSend(Symbol(), OP_SELLSTOPGetSizeLot(), price4SLTP"ALITA_4"2expireRed);
        if (
    ticket == -1)
        {
            Print(
    "OrderSend() error - "ErrorDescription(GetLastError()));
        }


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

  7. #1957
    Местный
    Регистрация
    15.05.2017
    Сообщений
    10
    Благодарности
    Получено: 0
    Отправлено: 4
    Цитата Сообщение от wayfarer Посмотреть сообщение
    Смотрим вот сюда:
    PHP код:
    void SellPendingOrder7()
    {
        
    int expire TimeCurrent() + 60 60;
        
    // вычисляем цену открытия ордера SELL STOP
        
    double price NormalizeDouble(BidNDigits) - PriceOffset7*PipValue*Point;
        
    // Если предположить что PriceOffset7>0 и PipValue>0 то
        // цена price должна быть, как минимум: price < (Bid-<уровень стопов по спецификации>*Point)
        // проверяйте значение PriceOffset7 и PipValue! и смотрите ответ сервера на исполнение ордера - там все ответы на проблемы

        
    double SL price SellStoploss7*PipValue*Point;
        if (
    SellStoploss7 == 0SL 0;
        
    double TP price SellTakeprofit7*PipValue*Point;
        if (
    SellTakeprofit7 == 0TP 0;
        if (
    60 == 0expire 0;
        
    int ticket OrderSend(Symbol(), OP_SELLSTOPGetSizeLot(), price4SLTP"ALITA_4"2expireRed);
        if (
    ticket == -1)
        {
            Print(
    "OrderSend() error - "ErrorDescription(GetLastError()));
        }

    Благодарю за направление, буду пробовать!

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

  8. #1958

    Регистрация
    11.07.2019
    Сообщений
    1
    Благодарности
    Получено: 0
    Отправлено: 0

    советник

    а подправить советник можете?

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

  9. #1959
    Местный
    Регистрация
    27.12.2018
    Сообщений
    103
    Благодарности
    Получено: 0
    Отправлено: 51
    Допустим значения повторилось 500 раз, другое значение повторилось 250 раз,100 раз,25 раз,1 раз Как правильно посчитать,по теории вероятности, следующее повторение?

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

  10. #1960
    Эксперт
    Регистрация
    16.08.2012
    Адрес
    Челябинск
    Сообщений
    1,896
    Благодарности
    Получено: 680
    Отправлено: 73
    Цитата Сообщение от raboco Посмотреть сообщение
    Как правильно посчитать,по теории вероятности, следующее повторение?
    Т.к. повторение опирается на выбранный интервал времени то расчет вероятности должен опираться на контрольный срок экстраполяции "У". Пример. Пусть выбранное значение за интервал времени "Х", замера по истории, показал количество выпадений требуемого значения 500 раз. Это значение принимаем за 100%, тогда вероятность появления такого значения на интервале У(У<Х) = У/Х. Это упрощенный вариант.

    Более сложный и точный.
    Строим график/таблицу распределения требуемого значения на интервале У, У< интервала истории. Шаг смещения 1 бар(или больше, можно использовать как параметр).
    Получаем таблицу значений вида
    бар старт 1 - бар финиш 1 - количество выпадений требуемого значения
    бар старт 2 - бар финиш 2 - количество выпадений требуемого значения
    бар старт 3 - бар финиш 2 - количество выпадений требуемого значения
    ....
    бар старт n - бар финиш n - количество выпадений требуемого значения

    Общий вид экземпляра сущности таблицы:
    бар старт i, бар финиш i+k, количество выпадений требуемого значения, где k - это шаг

    Строим график нормализации, показывающий разброс количества выпадений от макс MaxY до MinY.
    Тогда вероятность выпадения очередного требуемого значения на интервале У= (MaxY - фактическое значение выпадений уже полученных на интервале У)/MaxY*100.
    В этом варианте вероятность выпадения требуемого значения будет падать с каждым новым совпадением.
    И вся эта кухня должна динамически пересчитываться по мере накопления истории.

    Вы не можете благодарить!
    Последний раз редактировалось wayfarer; 17.07.2019 в 09:38.
    Для заказа кода, напишите в личку - я отвечу на ваше предложение.

Страница 196 из 198 ПерваяПервая ... 96 146 186 192 193 194 195 196 197 198 ПоследняяПоследняя

Похожие темы

  1. Бесплатное написание советников и индикаторов на MQL4
    от Rubinovi4 в разделе Программирование на MQL
    Ответов: 3446
    Последнее сообщение: 10.02.2017, 12:27
  2. Ответов: 13
    Последнее сообщение: 13.08.2014, 20:53

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

Ваши права

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