Не боитесь нарваться на частые запросы? Ведь придётся каждые 15-30 секунд либо открывать новые позиции в добавление к уже имеющейся, либо удалять уже имеющиеся.
Объём уже открытой сделки вы поменять не сможете. Потому и придётся дробить его на несколько позиций.
Меня интересует сама возможность советника. Да и объем уже открытой сделки можно увеличить путем простой доливки и уменьшить за счет частичного локирования.
Доброго времени суток. Возможно ли запрограммировать советника на mql4, чтобы он корректировал лот каждые 15-30 секунд?
Один из возможных способов корректировки лота: Открывайте каждые 15-30 секунд новую мелкую позицию, которые закроете все вместе при достижении нужной Вам прибыли.
Один из возможных способов корректировки лота: Открывайте каждые 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()); // Сообщение об ошибке установки ордера
Как ты выше сказал, это связано со вторым стопЛососем. У тебя там видимо не правильно вычисляется он. Проверь в том отрезке, где он вычисляется внимательно все.
Не боитесь нарваться на частые запросы? Ведь придётся каждые 15-30 секунд либо открывать новые позиции в добавление к уже имеющейся, либо удалять уже имеющиеся.
Объём уже открытой сделки вы поменять не сможете. Потому и придётся дробить его на несколько позиций.
Возможности советника
Один из возможных способов корректировки лота:
Открывайте каждые 15-30 секунд новую мелкую позицию, которые закроете все вместе при достижении нужной Вам прибыли.
Один из возможных способов корректировки лота:
Открывайте каждые 15-30 секунд новую мелкую позицию, которые закроете все вместе при достижении нужной Вам прибыли.
Доброго времени суток.
Есть советник, в нем есть возможность выбора ордера, который открылся до появления советника на графике. И специально для этого ордера есть одно условие закрытия. Допустим, ордер продаж, а цена условно поднимается, то этот ордер сразу закрывается, как только появился советник. Так вот, закрывается все отлично, и как надо. Но не проходит условие, где идет проверка на время закрытия. Я перед условием делал алерт с этой функцией, и оно возвращает 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());?
to sergey_r:
Как ты выше сказал, это связано со вторым стопЛососем. У тебя там видимо не правильно вычисляется он. Проверь в том отрезке, где он вычисляется внимательно все.
На всякий случай, вот расшифровка ошибок: https://docs.mql4.com/ru/trading/errors