Блог им. vldtar

Пример рабочей торговой системы на MQL5 с выходом по времени

#property copyright "Copyright 2019, Example Inc."
#property link      "https://www.example.com"

input int LotSize = 1;
input int Period = 30;
input double VolatilityThreshold = 0.1;
input int ExitAfterMinutes = 60;

int buyOrderId;
int sellOrderId;
datetime entryTime;

void OnTick()
{
    // Get the last Period candlesticks
    ArraySetAsSeries(candles, true);
    CopyRates(Symbol(), PERIOD_M1, TimeCurrent() - Period, Period, candles);

    // Calculate the maximum and minimum prices
    double maxPrice = High(candles);
    double minPrice = Low(candles);

    // Calculate the standard deviation of the closing prices
    double stdev = iStdDev(candles, MODE_CLOSE, 0);

    // Check if the volatility is above the threshold
    if (stdev > VolatilityThreshold)
    {
        // Check if the current ask price is higher than the maximum price
        if (Ask > maxPrice)
        {
            // Place a buy order
            if (OrderSend(Symbol(), OP_BUY, LotSize, Ask, 3, 0, 0, "My order", 16384, 0, Green))
            {
                Print("Buy order placed");
                buyOrderId = OrderTicket();
                entryTime = TimeCurrent();
            }
            else
            {
                Print("Error placing buy order : ", ErrorDescription(GetLastError()));
            }
        }

        // Check if the current bid price is lower than the minimum price
        if (Bid < minPrice)
        {
            // Place a sell order
            if (OrderSend(Symbol(), OP_SELL, LotSize, Bid, 3, 0, 0, "My order", 16384, 0, Red))
            {
                Print("Sell order placed");
                sellOrderId = OrderTicket();
                entryTime = TimeCurrent();
            }
            else
            {
                Print("Error placing sell order : ", ErrorDescription(GetLastError()));
            }
        }
    }

    if (buyOrderId > 0)
    {
        if (TimeCurrent() - entryTime >= ExitAfterMinutes * 60)
        {
            if (OrderClose(buyOrderId, LotSize, Bid, 3, clrNONE))
            {
                Print("Buy order closed");
                buyOrderId = 0;
            }
            else
            {
                Print("Error closing buy order : ", ErrorDescription(GetLastError()));
            }
        }
    }

    if (sellOrderId > 0)
    {
        if (TimeCurrent() - entryTime >= ExitAfterMinutes * 60)
        {
            if (OrderClose(sellOrderId, LotSize, Ask, 3, clrNONE))
            {
                Print("Sell order closed");
                sellOrderId = 0;
            }
            else
            {
                Print("Error closing sell order : ", ErrorDescription(GetLastError()));
            }
        }
    }
}

Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.

565 | ★2
8 комментариев
Приветствую! Сколько примерно стоит переписать советник MQL4 700 строк кода в MQL5?
Василий Федорович, здравствуйте. К сожалению, на текущий момент я не предоставляю данного рода услуги. Про стоимость также не знаю.
Василий Федорович, Могу за 20к рублей.
Оплата по факту или этапами.
если возможно разбить на этапы.
без предоплаты
avatar
выглядит сложно… нам бы кубики
avatar
ves2010, так это в кубик один упаковать можно. Язык тот же.
А по сути алгоритм входит в сделку, когда и среднеквадратичный размах свечей выше заданного числа, и вышли за границы локального экстремума в сторону сделки. Выход — через час.
Неужто кубиками нельзя набрать?
А сам алгоритм требует проверки и настройки параметров для конкретного инструмента, иначе — пролёт.
avatar
У тя ж робот будет как пулемет покупать(или продавать) на каждом тике!
Нахрена такой робот нужен?
avatar
Наконец-то халява, образец. Полгода не могу собраться и написать ещё более рабочую на MQL5 с выходом по времени. Причём на MT4 написана.
avatar

Читайте на SMART-LAB:
Фото
📍 Почему офлайн-сеть остаётся важной частью экосистемы «МГКЛ»
Несмотря на активное развитие онлайн-сервисов и цифровых направлений, офлайн-сеть остаётся одной из ключевых частей экосистемы Группы «МГКЛ»....
Циан продолжает обеспечивать высокую дивдоходность
Совет директоров Циан рекомендовал годовому общему собранию, которое назначено на 11 июня, утвердить дивиденд за первый квартал в размере 53 руб....
Фото
Рынок облигаций. Расходы бюджета несут риски
Игорь Галактионов Рассказываем о ключевых событиях прошедшей недели и интересных выпусках облигаций. Низкая инфляция, но большой дефицит...
Мозговой штурм! Что нового на текущий момент?
Доброго дня, дорогие товарищи! Сегодня у нас в офисе прошел традиционный мозговой штурм. Делюсь  основным.

теги блога Чувак Хачинбек ✔️

....все тэги



UPDONW
Новый дизайн