Непонятно на какую цену включать трейлинг стоп, написал ниже по цене = trsto. Можете заменить тип сигнала и цену или дельту, если надо.
Код: Выделить всё
function Initialize()
{
//...
AddGlobalVariable("TS", Types.Boolean, false);
//...
}
function OnUpdate()
{
//...
if ( условие на лонг)
{
EnterLong();
BreakingStop(sto, tak, SignalPriceType.DeltaFromAveragePrice);
TS = false;
}
if (CurrentPL() > 1000 && !TS)
{
CancelStopLoss();
TrailingStopLoss(trsto, SignalPriceType.Price)
TS = true;
}
//...
}
Не все разбираются: что, зачем и почему. Понимаю. Поэтому буду приводить используемую информацию из справки по скриптам индикаторов и стратегий.
доп. информация:
CancelStopLoss() – отменить (снять) стоп-заявку, выставленную для защиты текущей позиции робота. Функция используется для отмены или редактирования положения текущего стопа. Повторный вызов функции выставления стопа не снимает старый и не выставляет новый стоп. Поэтому необходимо использовать данную функцию для отмены ранее выставленной заявки.
CancelActiveOrders(LeaveStop) – снять активные заявки.
LeaveStop – булевая переменная, управляющая снятием стопа к позиции.
• true – оставить стоп к позиции.
• false – снять все.
CurrentPL() – возвращает текущий доход по открытой позиции в валюте инструмента (рубли или пункты).
CurrentPLper() – возвращает изменение цены в процентах относительно учетной цены по открытой позиции в процентах.
TrailingStopLoss(ValueStop, SignalPriceType) – выставить защитную трейлинг стоп-маркет заявку к текущей позиции
SignalPriceType – тип задаваемого значения,
• Price – значения ValueStop и ValueTake задаются в абсолютных величинах (как цены стоп уровня и уровня тейк профита):
• DeltaFromAveragePrice – значения ValueStop и ValueTake задаются как отклонения от учетной цены позиции робота в валюте цены (значения задаются больше 0, робот сам определяет направление отклонения);
• DeltaInPercentFromAveragePrice – значения ValueStop и ValueTake задаются в виде отклонения от учетной цены открытия позиции робота в процентах (значения задаются больше 0, робот сам определяет направление отклонения).
AddGlobalVariable(Name, Types, Value) – функция создания статической переменной, которая сохраняет значение при следующем обращении к функции Evaluate() и OnUpdate(). В скрипте может быть определено несколько глобальных переменных.
Параметры:
• Name – строка - имя параметра.
• Types – тип переменной
o Int
o Long
o Double
o Boolean
o String
o DateTime
o IntList
o DoubleList
o DoubleDictionary
• Value – значение по умолчанию