Общие вопросы по разработке > Функция: GetLastSignalInfo()

Общие вопросы по разработке в Альфа-Директ 4. Обсуждение разработки пользовательских индикаторов, стратегий.
Pluton
Сообщения: 2
Зарегистрирован: 28 сен 2020, 16:34
Откуда: Москва

Функция: GetLastSignalInfo()

Непрочитанное сообщение Pluton » 12 окт 2020, 00:12

Добрый день!
Подскажите пожалуйста, как записать в переменную значение • ActionType, используя функцию – GetLastSignalInfo()?
Я хочу по названию последнего сигнала (например "StopLoss") и его проверки на истину или ложь останавливать работу робота.

Maks
Сообщения: 18
Зарегистрирован: 15 июн 2020, 15:29
Благодарил (а): 4 раза
Поблагодарили: 10 раз

Re: Функция: GetLastSignalInfo()

Непрочитанное сообщение Maks » 12 окт 2020, 12:33

Pluton писал(а):Добрый день!
Подскажите пожалуйста, как записать в переменную значение • ActionType, используя функцию – GetLastSignalInfo()?
Я хочу по названию последнего сигнала (например "StopLoss") и его проверки на истину или ложь останавливать работу робота.


Вот такой кусок есть в коде робота по линиям:

Код: Выделить всё

   if(CurrentPosition() != 0)
    {
        if(GetActiveOrders(true).Exists(ao => ao.IsStop))
        {
            StopLeaveStops();
            return;
        }
    }

Аватара пользователя
evge
Администратор
Сообщения: 1652
Зарегистрирован: 04 фев 2016, 09:46
Откуда: Млечный путь, планета Земля
Благодарил (а): 64 раза
Поблагодарили: 303 раза
Контактная информация:

Re: Функция: GetLastSignalInfo()

Непрочитанное сообщение evge » 12 окт 2020, 12:36

Код: Выделить всё

var LS = GetLastSignalInfo();   
if (LS != null && LS.ActionType == TA.Script.AvailableActions.StopLoss)
{
//... последним сигналом был StopLoss
}
никогда такого не было и вот опять

Аватара пользователя
evge
Администратор
Сообщения: 1652
Зарегистрирован: 04 фев 2016, 09:46
Откуда: Млечный путь, планета Земля
Благодарил (а): 64 раза
Поблагодарили: 303 раза
Контактная информация:

Re: Функция: GetLastSignalInfo()

Непрочитанное сообщение evge » 12 окт 2020, 14:28

Если надо проверять (а думаю надо) что заявка по сигналу была полностью исполнена, то в условие добавляем LS.IsStatusFilled

Код: Выделить всё

var LS = GetLastSignalInfo();   
if (LS != null && LS.ActionType == TA.Script.AvailableActions.StopLoss && LS.IsStatusFilled)
{
//... последним сигналом был исполненный StopLoss
}

• SignalID – номер сигнала
• OrderType – тип заявки (купить/продать). (enumOrderType.Buy, enumOrderType.Sell)
• ActionType – название действия (команды)
• ActionSuperType – название сигнала
• OperationSize - объём
• OperationExecuted – исполненный объём
• OperationRest – объём оставшийся для исполнения
• PriceOfSignal – цена сигнала
• PriceOfOrder – цена заявки
• PriceOfTrade – цена исполнения
• PriceAdditional – второй ценовой уровень (если предусмотрен. Напр. В заявке типа BRS)
• DateTime – время сигнала
• CurrentPosition – позиция по роботу после обработки сигнала
IsStatusFilled – исполнена ли заявка по сигналу
• IsStatusTerminal – в конечном ли статусе заяка по сигналу (исполнена, отменена, отклонена)
никогда такого не было и вот опять

Pluton
Сообщения: 2
Зарегистрирован: 28 сен 2020, 16:34
Откуда: Москва

Re: Функция: GetLastSignalInfo()

Непрочитанное сообщение Pluton » 12 окт 2020, 18:00

Спасибо за скорый ответ - Maks и развернутый ответ - evge. Протестирую работу кода на живых деньгах :))
К сожалению приходиться выделять бюджет на тестирование алгоритма в реальных боевых условиях.


Вернуться в «Общие вопросы по разработке»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 13 гостей