Мне нужно добавить функции, которые связаны с Take Profit. Сейчас принцип работы такой, что параметр тейка задается в ручную и составляет условно 200 пипсов. Супер, так и должно быть. Но я хочу сделать так, чтобы если открывается отложенный ордер, то тейк ставился в общий безубыток по двум позициям. Опишу тебе более подробно на примере: Представим, что текущая цена EURUSD = 1.05000. Робот входит в Buy / Sell, где тейк по Buy = 200 пипсов (1,05200). Тейк по Sell также = 200 пипсов (1,04800). Также выставляются отложенные ордера Buy Limit = 200 пипсов от цены открытия (1,04800). И Sell Limit = 200 пипсов от цены открытия (1,05200). Тут все супер, так и должно работать. Что по итогу хочется по тейкам. Представим, что мы идем вниз и достигаем отметки 1,04800. Что у нас происходит по факту: 1) Закрывается Sell по тейку. 2) Закрывается Sell Limit (1,05200) 3) Открывается новый Sell (1.04800) с тейком (1,04600) 4) Открывается Sell Limit (1.05000) 5) Открывается Buy от Buy Limit , который был на (1.04800) с тейком в 200 пипсов на (1.05000) 6) Открывается Buy Limit на (1,04600). Что хочется изменить: Берем эту ситуацию. При открытии лимитных ордеров (в нашем случае buy limit), хочется, чтобы тейки по первой позиции Buy и второй позиции Buy (которая открылась через Buy Limit) переставлялись на общий безубыток этих двух позиций. То есть по Buy на отметке (1.05000), и по Buy на отметке (1.04800), тейки ставились в общий 0, на отметку 1,04900. И когда достигается этот тейк, то открывались сразу новый Buy и Buy limit как в целом и заложено уже в коде. Важно! Цена может достигнуть и отметки 1,04600, где откроется еще один Buy от Buy Limit этой же отметки. Следовательно все тейки по позициям Buy, должны находитьс на общем 0, то есть на отметке 1,04800. Фактически идет расчет средней цены 0, где будет общий 0. Формула такая: (P1 + P2 + P3 + ...) / X = Po Где: P1 - цена первой позиции P2 - цена второй позиции P3 - цена третьей позиции + ... - количество открытых позиций по стороне ( нашем случае Buy) X - количество всех позиций Po = цена тейков по всем позициям. Тут я тебе объяснил по позициям Buy, но по позициям Sell должно работать также. Логика Логика такова. Я изменю задание на ход к 1,05800, а потом снижение к 1,05400: Стартовая точка текущая цена EURUSD = 1.05000. Робот входит в Buy / Sell, где тейк по Buy = 200 пипсов (1,05200). Тейк по Sell также = 200 пипсов (1,04800). Также выставляются отложенные ордера Buy Limit = 200 пипсов от цены открытия (1,04800). И Sell Limit = 200 пипсов от цены открытия (1,05200). 1. Цена доходит до 1,05200. - Закрывается Buy по тейку. - Закрывается Buy Limit (1,04800) - Открывается Buy с тейком (1,05400) - Открывается Buy Limit (1,05000) - Открывается Sell от Sell Limit (1.05200) - По заданию идет перерасчет тейков в этом случае по Sell (1.05000+1.05200)/2=1.05100, следовательно тейк по первой позиции ставится на отметку 1,05100 и тейк второй позиции ставится на отметку 1,05100. - Открывается Sell limit (1,05400) 2. Цена доходит до 1,05400 - Закрывается Buy по тейку. - Закрывается Buy Limit (1,05000) - Открывается Buy с тейком (1,05600) - Открывается Buy Limit (1,05200) - Открывается Sell от Sell Limit (1.05400) - По заданию идет перерасчет тейков в этом случае по Sell (1.05000+1.05200+1.05400)/3=1.05200, следовательно тейк по первой позиции ставится на отметку 1,05200, тейк второй позиции ставится на отметку 1,05200, тейк третьей позиции ставится на отметку 1,05200. - Открывается Sell limit (1,05600). 3. Цена доходит до 1,05600 - Закрывается Buy по тейку. - Закрывается Buy Limit (1,05200) - Открывается Buy с тейком (1,05800) - Открывается Buy Limit (1,05400) - Открывается Sell от Sell Limit (1.05600) - По заданию идет перерасчет тейков в этом случае по Sell (1.05000+1.05200+1.05400+1.05600)/4=1.05300, следовательно тейк по первой позиции ставится на отметку 1,05300, тейк второй позиции ставится на отметку 1,05300, тейк третьей позиции ставится на отметку 1,05300, тейк четвертой позиции ставится на отметку 1,05300. - Открывается Sell limit (1,05800). 4. Цена доходит до 1,05800 - Закрывается Buy по тейку. - Закрывается Buy Limit (1,05400) - Открывается Buy с тейком (1,06000) - Открывается Buy Limit (1,05600) - Открывается Sell от Sell Limit (1.05800) - По заданию идет перерасчет тейков в этом случае по Sell (1.05000+1.05200+1.05400+1.05600+1.05800)/5=1.05400, следовательно тейк по первой позиции ставится на отметку 1,05400, тейк второй позиции ставится на отметку 1,05400, тейк третьей позиции ставится на отметку 1,05400, тейк четвертой позиции ставится на отметку 1,05400, тейк пятой позиции ставится на отметку 1,05400. - Открывается Sell limit (1,06000). 5. Цена от 1,05800 идет к 1.05600 - Открывается Buy от Buy Limit 1.05600 - По заданию идет перерасчет тейков в этом случае по Buy (1.05800+1.05600)/2=1.05700, следовательно тейк по первой позиции ставится на отметку 1,05700, тейк второй позиции ставится на отметку 1,05700. - Открывается Buy Limit на отметке 1.05400 5. Цена от 1,05600 идет к 1.05400 - Открывается Buy от Buy Limit 1.05400 - По заданию идет перерасчет тейков в этом случае по Buy (1.05800+1.05600+1.05400)/3=1.05600, следовательно тейк по первой позиции ставится на отметку 1,05600, тейк второй позиции ставится на отметку 1,05600, тейк третьей позиции ставится на отметку 1,05600. - Открывается Buy Limit на отметке 1.05200 - Закрываются все позиции Sell по общему тейку описанному ранее 1.05400. - Закрывается Sell Limit на отметке 1.06000. - Открывается Sell поскольку все позиции закрыты. - Открывается Sell Limit на отметке 1.05600 Вот такая логика должна быть.