В вашей стратегии нужно сделать примерно так
Код: Выделить всё
if (CurrentPLper() > 3)
{
CancelStopLoss();
StopLoss(AverPrice() + 3 * GetPriceStep() * (CurrentPosition() > 0 ? 1 : -1), SignalPriceType.Price);
}
Комментарий к кодуВ первой строке это проверка прибыли больше чем 3%, можно заменить на параметр.
В строке StopLoss можно подставить константу или заменить на параметр число 3 - количество шагов цены торгуемого инструмента, добавляемое к учетной цене для стоплоса.
CurrentPLper() – возвращает изменение цены в процентах относительно учетной цены по открытой позиции в процентах.
CancelStopLoss() – отменить (снять) стоп-заявку, выставленную для защиты текущей позиции робота. Функция используется для отмены или редактирования положения текущего стопа. Повторный вызов функции выставления стопа не снимает старый и не выставляет новый стоп. Поэтому необходимо использовать данную функцию для отмены ранее выставленной заявки.
StopLoss(ValueStop, SignalPriceType) – выставить защитную стоп¬-маркет заявку к текущей позиции робота (размер и направление позиции робот определяет сам).
SignalPriceType – тип задаваемого значения,
• Price – значения ValueStop и ValueTake задаются в абсолютных величинах (как цены стоп уровня и уровня тейк профита):
• DeltaFromAveragePrice – значения ValueStop и ValueTake задаются как отклонения от учетной цены позиции робота в валюте цены (значения задаются больше 0, робот сам определяет направление отклонения);
• DeltaInPercentFromAveragePrice – значения ValueStop и ValueTake задаются в виде отклонения от учетной цены открытия позиции робота в процентах (значения задаются больше 0, робот сам определяет направление отклонения).
AverPrice() – возвращает учетную цену открытой позиции
Учетная цена – средневзвешенная цена сделок, которые увеличивают текущую открытую позицию по роботу
GetPriceStep() – функция возвращает шаг цены по инструменту, используемому в стратегии.
CurrentPosition() – возвращение объем текущей позиции (штук), которые посчитаны по сделкам только данной стратегии (робота). Положительное количество – показывает объем позиции лонг, отрицательное количество – объем позиции шорт.