Всем привет. Не нашел на просторах интренета советника, который изменяет уже установленный стоп лосс. Есть один советник на тесте (вскрыть его нельзя), который выставляет стоп лосс (примерно 20 п.). А нужен советник, который будет менять этот стоп лосс на нужный. Руками постоянно изменять не удобно и нереально. Может есть у кого-нибудь на примете такой советник?
просто изменить стоп лосс у уже существующей позиции? а как он должен задаваться?
если нет исходного кода то изменить стоплосс не получится. Только если стоплосс ставится 1 раз то потом его можно изменить с помощью другого советника
Цена вопроса?
Всем привет. Не нашел на просторах интренета советника, который изменяет уже установленный стоп лосс. Есть один советник на тесте (вскрыть его нельзя), который выставляет стоп лосс (примерно 20 п.). А нужен советник, который будет менять этот стоп лосс на нужный. Руками постоянно изменять не удобно и нереально. Может есть у кого-нибудь на примете такой советник?
Для изменения уже установленного стоп-лосса в MQL4 можно использовать функцию OrderModify(). Эта функция позволяет изменить параметры открытого ордера, такие как стоп-лосс, тейк-профит, цена открытия и т.д.
Ниже приведен пример кода, который будет изменять стоп-лосс для уже открытого ордера. Этот код должен быть добавлен в функцию OnTick(), чтобы он выполнялся при каждом изменении цены.
void OnTick() { // Получить список открытых ордеров int total = OrdersTotal(); for (int i = 0; i < total; i++) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { // Проверить, является ли ордер Buy или Sell bool isBuyOrder = OrderType() == OP_BUY; bool isSellOrder = OrderType() == OP_SELL; // Проверить, существует ли уже установленный стоп-лосс bool hasStopLoss = OrderStopLoss() > 0; // Если ордер Buy и у него еще нет установленного стоп-лосса if (isBuyOrder && !hasStopLoss) { // Вычислить новый уровень стоп-лосса double newStopLoss = Bid - 20 * Point; // Установить новый уровень стоп-лосса bool result = OrderModify(OrderTicket(), OrderOpenPrice(), newStopLoss, OrderTakeProfit(), 0); if (result) { Print("Стоп-лосс для Buy ордера изменен на: ", newStopLoss); } } // Если ордер Sell и у него еще нет установленного стоп-лосса if (isSellOrder && !hasStopLoss) { // Вычислить новый уровень стоп-лосса double newStopLoss = Ask + 20 * Point; // Установить новый уровень стоп-лосса bool result = OrderModify(OrderTicket(), OrderOpenPrice(), newStopLoss, OrderTakeProfit(), 0); if (result) { Print("Стоп-лосс для Sell ордера изменен на: ", newStopLoss); } } } } }
Этот код будет проверять каждый открытый ордер и изменять его стоп-лосс, если он еще не установлен. Уровень стоп-лосса рассчитывается как цена Bid минус 20 пунктов для ордера Buy и как цена Ask плюс 20 пунктов для ордера Sell. Размер изменения стоп-лосса может быть настроен по вашему усмотрению.
PS: Если нужен полноценный и готовый к установке в терминал советник, то цена вопроса один день и 50 бакинских. Пишите, оформим
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Всем привет. Не нашел на просторах интренета советника, который изменяет уже установленный стоп лосс. Есть один советник на тесте (вскрыть его нельзя), который выставляет стоп лосс (примерно 20 п.). А нужен советник, который будет менять этот стоп лосс на нужный. Руками постоянно изменять не удобно и нереально. Может есть у кого-нибудь на примете такой советник?