[АРХИВ] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 3. - страница 58

 
artmedia70:

Не боитесь нарваться на частые запросы? Ведь придётся каждые 15-30 секунд либо открывать новые позиции в добавление к уже имеющейся, либо удалять уже имеющиеся.

Объём уже открытой сделки вы поменять не сможете. Потому и придётся дробить его на несколько позиций.

Меня интересует сама возможность советника. Да и объем уже открытой сделки можно увеличить путем простой доливки и уменьшить за счет частичного локирования.
 
sergeev:

Возможности советника


17
darsey 08.08.2011 12:40
Доброго времени суток. Возможно ли запрограммировать советника на mql4, чтобы он корректировал лот каждые 15-30 секунд?

Один из возможных способов корректировки лота:
Открывайте каждые 15-30 секунд новую мелкую позицию, которые закроете все вместе при достижении нужной Вам прибыли.
 
DhP:

Один из возможных способов корректировки лота:
Открывайте каждые 15-30 секунд новую мелкую позицию, которые закроете все вместе при достижении нужной Вам прибыли.
Спасибо. Подумаю над этим. Собственно, у меня имеется два ряда со 100% корелляцией, но разной волатильностью. Мне нужно преобразовать один ряд в другой. Выхода из ситуации как только внутрибарная частотная корректировка лота не вижу. Может быть есть мысли на этот счет? Жаль что HFT на дому не сделать:(
 

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

Есть советник, в нем есть возможность выбора ордера, который открылся до появления советника на графике. И специально для этого ордера есть одно условие закрытия. Допустим, ордер продаж, а цена условно поднимается, то этот ордер сразу закрывается, как только появился советник. Так вот, закрывается все отлично, и как надо. Но не проходит условие, где идет проверка на время закрытия. Я перед условием делал алерт с этой функцией, и оно возвращает 0! Почему? В документации написано, что только открытые и отложенные возвращают ноль. Почему эта функция возвращает ноль и для закрытых? Пробовал ставить паузу в одну секунду после закрытия (ну мало ли, может данные не пришли), все равно ноль. Вот код этого участка:

if (tempWho == 0 && pos != -1)
{
    if (OrderSelect(pos, SELECT_BY_TICKET))
    {
        ...
        //Тут закрываются ордера
        ...
            
        if (OrderCloseTime() != 0)
        {
            ...
        }
    }
}

Спасибо за внимание.

 

Ребята подскажите пожалуйста как поставить 2 ордера сразу. Ничего не получается.

// Если ближайший максимум оказался ближе к входу в рынок,Устаналиваем ордер OP_SELLLIMIT
if (max<min)
{
1 - OrderSend(Symbol(),OP_SELLLIMIT,lot,cena_sell,3,sl_sell,tp_sell,"",1,0,Red);
Alert (GetLastError()); // Сообщение об ошибке установки ордера
//order_opened = true; // если ордер сработал больше не открываем
2 - OrderSend(Symbol(),OP_SELLLIMIT,lot_1,cena_sell_d_1,3,sl_sell,tp_sell_d_1,"",2,0,Red);
Alert (GetLastError()); // Сообщение об ошибке установки ордера

}
else //иначе устанавливаем ордер OP_BUYLIMIT
{

OrderSend(Symbol(),OP_BUYLIMIT,lot,cena_buy,3,sl_buy,tp_buy,"",5,0,Blue);
Alert (GetLastError()); // Сообщение об ошибке установки ордера
//order_opened = true; // если ордер сработал больше не открываем

Почему-то открывается только один:

1 - OrderSend(Symbol(),OP_SELLLIMIT,lot,cena_sell,3,sl_sell,tp_sell,"",1,0,Red);
Alert (GetLastError()); // Сообщение об ошибке установки ордера

 

to sergey_r:

А что в ошибках пишет то? Конкретно, какой код ошибки?

 

если ставлю:

int order = OrdersTotal(); // Проверяем установлены ли ордера
if (order == 0)

то открывает или selllimit или buylimit по условию, а мне на до или два ордера selllimit или один ордер buylimit

 

to sergey_r:

Ты не понял. Что выводится в Alert (GetLastError());?

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

to sergey_r:

Как ты выше сказал, это связано со вторым стопЛососем. У тебя там видимо не правильно вычисляется он. Проверь в том отрезке, где он вычисляется внимательно все.

На всякий случай, вот расшифровка ошибок: https://docs.mql4.com/ru/trading/errors

Причина обращения: