Закрытие дальних за счет прибыли

cmillion

Гуру форума
Советник предназначен для разгрузки просадки за счет закрытия дальних позиций.
Советник анализирует прибыль за определенное время и закрывает дальние убыточные позиции за счет этой прибыли.

Параметры:

  • AllSymbol = false; выбор считать прибыль по всем инструментам или только по тому на котором расположен советник
  • Magic = -1; выбор магика. Считать прибыль по всем магикам (-1 all) или только по тому который указан (закрывает дальние тоже только с этим магиком или любой при выборе параметра -1)
  • DayProfit = 1; за какое количество дней считать прибыль
  • ProfitMin = 1.00; минимальная прибыль которую советник не трогает
  • Font = "Times New Roman"; выбор шрифта
  • Width = 10; выбор размера текста
  • X=30; начальные координаты панели
  • Y=30;
  • CloseFar = false; параметр можно изменять на самой панели с помощью кнопки CloseFar (разрешает закрытие дальних)

2019-03-01_23-34-06.png

На панели в строке Profit отображается накопленный профит за указанное кол-во дней (0- за текущий день)
В строке Far указан тикет самого дальнего ордера. Самый дальний вычисляется по расстоянию в пунктах от текущей цены. Если нажата кнопка по всем инструментам, то дальняя позиция выбирается из всех позиций счета открытых на данный момент. Если кнопка All symbols отжата то выбираем дольнюю позицию на том инструменте, на котором стоит советник.
Далее в строке 0,03 - лот дальней позиции и имя инструмента этой позиции.

Если Накопленный профит больше убыточной позиции на величину ProfitMin то позиция будет закрыта. Советник продолжит анализировать ситуацию и при дальнейшем накоплении профита будет закрывать дальние за счет него.

Рекомендую для ознакомления сначала проверить советник на демо счете. Только после того как все поймете в его функциях, только после этого ставьте на реальный счет.
 

Вложения

  • cm close far.mq4
    27,3 КБ · Просмотры: 154

cmillion

Гуру форума
В новой версии советник будет использовать накопленную прибыль от закрытых позиций по всем парам.
 

Artem2018

Местный знаток
Я правильно понял, что советник не может закрывать убыточные позиции по частям? Закроет только если профит будет больше?
Жаль, это не подойдет для тех, кто неделями накапливал минус...
 

cmillion

Гуру форума
Я правильно понял, что советник не может закрывать убыточные позиции по частям? Закроет только если профит будет больше?
Жаль, это не подойдет для тех, кто неделями накапливал минус...
Новая версия советника будет закрывать убыточные позиции частями. Прибыль будет браться от уже закрытых позиций. В результате даже если в сумме на счету идет просадка, то советник все равно будет ее снижать за счет того что закроет частично убыточные...
 

cmillion

Гуру форума
cmillion, у вас вроде есть опыт по написанию торговых приводов. Никогда не думали о том, чтобы добавить в работу возможности частичного закрытия ордеров?

Вы наверное не слышали про разруливатель
cm-RUL simple lock
Почитайте о нем, там как раз принцип частичного закрытия применяется
Ну и лок конечно же там присутствует только немного в другом виде.
Я не виху смысл открывать buy 5 пока в рынке висит еще 5 sell лот. Лучше закрыть 5 sell? получить прибыль и потом торговать с начала.
Предлагаю данную полемику перенести в отдельную ветку так как в этой ветке я предполагаю обсуждение и разработку другого советника
 

cmillion

Гуру форума
Закрытие дальних за счет прибыли
Советник анализирует прибыль за определенное время и закрывает частично дальние убыточные позиции за счет этой прибыли.

Советник работает сразу со всеми позициями открытыми по этому счёту (по всем валютам)
Фиксирует в памяти накопленные средства начиная с даты указанной в параметрах.
Из этой прибыли использует 10% (задаётся в параметрах советника) на частичное или полное закрытие самых дальних позиций.
Самой дальней считается позиция отстоящая от текущей цены на максимальное кол-во пунктов.
Если сумма этих 10% превысила убыток части дальней позиции, то советник закрывает эту часть. (откусывает)
Чтобы советник не закрывал только что открытые позиции в настройках добавил пункт "минимальный убыток сделки подлежащей закрытию (пункт)".
Если установить 100п то советник не будет кусать позиции пока они не достигнут убытка 100 п.
При этом в окне советника позиция высвечивается серым цветом
2019-10-02_15-58-17.png

Параметры:
2019-10-02_16-03-06.png
 

Вложения

  • cm close far 2.0.ex4
    29,5 КБ · Просмотры: 43

cmillion

Гуру форума
Сделал возможность сортировки дальних не только по пунктам, но еще и по валюте депозита
"определять убыточный по пунктам(валюте)"
 

Вложения

  • cm close far 2.1.ex4
    31,5 КБ · Просмотры: 25
  • 2019-10-02_21-28-01.png
    2019-10-02_21-28-01.png
    12,7 КБ · Просмотры: 43

Artem2018

Местный знаток
Сделал возможность сортировки дальних не только по пунктам, но еще и по валюте депозита
"определять убыточный по пунктам(валюте)"

Спасибо, только собирался предложить :) По лоту удобнее определять.

А нельзя ли добавить в сов опции из прошлой версии? В терминале весь текст сминается...

  • Font = "Times New Roman"; выбор шрифта
  • Width = 10; выбор размера текста
  • X=30; начальные координаты панели
  • Y=30;
 

cmillion

Гуру форума
Спасибо, только собирался предложить :) По лоту удобнее определять.

А нельзя ли добавить в сов опции из прошлой версии? В терминале весь текст сминается...

  • Font = "Times New Roman"; выбор шрифта
  • Width = 10; выбор размера текста
  • X=30; начальные координаты панели
  • Y=30;

добавил
 

Вложения

  • cm close far 2.1.ex4
    32,7 КБ · Просмотры: 26

Artem2018

Местный знаток
Несколько дней уже как занялся этим интересным вопросом, закрытие ордеров по частям, скачал несколько советников. Этот сов - единственный, у которого я увидел реальное отщипывание от зависших ордеров. Все остальные делают что угодно, только не это :) Или я просто не сумел их настроить, но не суть.

Есть парочка вопросов, хотелось бы дополнить опции, если не сложно.
Сов закрывает сразу несколько ордеров? Может, сделать опцию, чтобы подставлять номер ордера, и сов работал только с ним до полного закрытия? Не по своей воле выбирал жертву, а как укажет пользователь?
И второе:
screenshot-2898.jpg


Не добавить ли к этим опциям сумму, которую можно потратить? Если я заработал в день 5 баксов, чтобы на разрул тратить ровно 1 доллар, к примеру, а не в процентах или пунктах, так легко запутаться...

Спасибо за Вашу работу!
 

cmillion

Гуру форума
Несколько дней уже как занялся этим интересным вопросом, закрытие ордеров по частям, скачал несколько советников. Этот сов - единственный, у которого я увидел реальное отщипывание от зависших ордеров. Все остальные делают что угодно, только не это :) Или я просто не сумел их настроить, но не суть.

Есть парочка вопросов, хотелось бы дополнить опции, если не сложно.
Сов закрывает сразу несколько ордеров? Может, сделать опцию, чтобы подставлять номер ордера, и сов работал только с ним до полного закрытия? Не по своей воле выбирал жертву, а как укажет пользователь?
И второе:
screenshot-2898.jpg


Не добавить ли к этим опциям сумму, которую можно потратить? Если я заработал в день 5 баксов, чтобы на разрул тратить ровно 1 доллар, к примеру, а не в процентах или пунктах, так легко запутаться...

Спасибо за Вашу работу!

Согласен, что реальную цифру в валюте понятнее будет вводить. Только я сделал не сколько можно потратить, а неснижаемый остаток прибыли. Например установили 100 usd и советник будет тратить всю прибыль свыше 100 usd. Т.е. 100 это неснижаемый остаток прибыли.
Что же касается выбора конкретного ордера, то это возможно но так как ордер каждый раз меняет свой тикет при очередном откусывании это будет связано с некоторыми сложностями. Я такое делал в разруливателе, но как выяснилось, эта функция не особо пользуется спросом, поэтому я не буду усложнять ей данный советник. Могу сделать ее для Вас в индивидуальном порядке, но далее эта версия в серию не пойдет.
2019-10-03_13-54-03.png
 

Вложения

  • cm close far 2.3.ex4
    39,8 КБ · Просмотры: 26

Artem2018

Местный знаток
Согласен, что реальную цифру в валюте понятнее будет вводить. Только я сделал не сколько можно потратить, а неснижаемый остаток прибыли. Например установили 100 usd и советник будет тратить всю прибыль свыше 100 usd. Т.е. 100 это неснижаемый остаток прибыли.
Да, так замечательно, главное теперь не перепутать :) Но в сове все написано, запутаться сложно, если поработать с ним.

[/QUOTE]
Что же касается выбора конкретного ордера, то это возможно но так как ордер каждый раз меняет свой тикет при очередном откусывании это будет связано с некоторыми сложностями. Я такое делал в разруливателе, но как выяснилось, эта функция не особо пользуется спросом, поэтому я не буду усложнять ей данный советник. Могу сделать ее для Вас в индивидуальном порядке, но далее эта версия в серию не пойдет.
[/QUOTE]

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

Но в целом всё работает. Если бы мне такой сов раньше, сколько депо можно было уберечь...

Ну, еще небольшая опция не помешала бы, ИМХО - кнопка старт-стоп. Вот переключил историю на терминале, со дня на месяц, сов получил новый профит и пошел разруливать, хотя я не заказывал :) На демке не страшно, но на реале такой фокус сделал бы убытки...
Видимо установка даты в советнике и в терминале связаны?
Лучше сов запускать, когда все опции точно выставлены, включая историю терминала.
 

cmillion

Гуру форума
Да, так замечательно, главное теперь не перепутать :) Но в сове все написано, запутаться сложно, если поработать с ним.

еще небольшая опция не помешала бы, ИМХО - кнопка старт-стоп. Вот переключил историю на терминале, со дня на месяц, сов получил новый профит и пошел разруливать, хотя я не заказывал :) На демке не страшно, но на реале такой фокус сделал бы убытки...
Видимо установка даты в советнике и в терминале связаны?
Лучше сов запускать, когда все опции точно выставлены, включая историю терминала.

Добавил кнопку
2019-10-03_17-24-25.png
в отключенном состоянии панель серая, но весь расчет она ведет (только не закрывает)
2019-10-03_17-26-23.png
 

Вложения

  • cm close far 2.4.ex4
    40,9 КБ · Просмотры: 23

Artem2018

Местный знаток
С кнопкой что-то не то, и при отжатой всё равно сов ордера чистит... На трех терминалах проверил.
 

cmillion

Гуру форума
С кнопкой что-то не то, и при отжатой всё равно сов ордера чистит... На трех терминалах проверил.
действительно :)
кнопку добавил, а ее значение никуда не применил. Заработался наверное, спать пора.
Все исправил, проверьте.
 

Вложения

  • cm close far 2.5.ex4
    39,8 КБ · Просмотры: 33

Artem2018

Местный знаток
Всё работает, спасибо.
Осталось только на ключ накопить, увы :)
 

onboyarin

Интересующийся
добрый день советник конечно шикарный, у меня есть предложения по нему
Если его поставить вместе с советниками которые усредняют и стоят на нескольких инструментах
то мы получаем вот какую штуку при закрытии на одном инструменте одной усреднённой серии ордеров
в начале закрываются ордера с положительным профитом (советник видя у себя это пополнение буфера откусывает ордер или часть ордера ) и потом закрываются остальные с отрицательным профитом из этой усреднённой серии ордера нужно добавить паузу, чтобы после изменения профита прошло секунд 5 ну или около того (мы же не спешим)
 

onboyarin

Интересующийся
И вот так я вижу выбор ордера для откусывания
В пунктах не подходит под все инструменты ( золото и евро дол) не стоит сравнивать всегда будет кусать золото
Просто в валюте если один ордер 0.01 а другой к примеру 0.05 то через какое то расстояние в пунктах выиграет 0.05 но дальше в пунктах находится 0.01 а откусится от 0.05 а это не правильно
по этому предлагаю выбирать ордер для откусывания по стоимости 0.01
То есть сравнивать у всех ордеров стоимость 0.01 лота и у которого самая большая просадка тот и кусать
 

ataris

Новичок форума
cmillion
Советник выбирает самый убыточный ордер и работает с ним. Но возможно что согласно текущего фундаментала по нему допустима пересидка и тогда получится что мы крыли убыточный ордер, тратили на это прибыль а можно было бы просто пересидеть 3-4 дня.
Но советник не даёт выбрать с каким ордером работать, по дефолту работаем только с самым убыточным.
А можно ли сделать в табличке вывод нескольких убыточных ордеров с ручным отключением их от системы? Количество отображаемых ордеров задаётся в настройках, ( по дефолту я думаю 5 ). Тогда пользователь смог бы затенять ордера в которых допустима пересидка или если там используются иные методы покрытия убытка, и снова их подсвечивать если рыночная ситуация изменилась. Ордера в табличке группируются по убыванию убытка, но часть из них подсвечена а часть затенена - это выбирает пользователь.
Можно подсветить все, и тогда как в текущем варианте работаем только с самым верхним ордером, а если его затенить, то работаем со следующим вниз подсвеченным в списке.
Нажимаем на строку в таблице - ордер затеняется и перестаёт участвовать в работе советника но отображается в затенённом виде, нажимаем по нему опять - он подсвечивается и значит подключен к системе а это значит что советник будет подрезать его.
 
Последнее редактирование:
Верх