Страница 1 из 1

EnterLongLimit()

Добавлено: 12 сен 2017, 13:58
Михаил
Всем доброго дня!
Прошу помочь в таком вопросе: не могу разобраться как правильно задать команду EnterLongLimit()
Задача следующая:
Нужно чтобы робот выставлял заявку EnterLongLimit по цене равной значению нижней линии индикатора PriceChannel,
Либо можно обойтись и без индикатора, в общем смысл состоит в том, что робот должен выставлять лимитированную заявку ЛОНГ по цене равной минимальной цене из 3 предыдущих свечек.

Re: EnterLongLimit()

Добавлено: 12 сен 2017, 15:30
evge

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

/**LowLimit
Developed by evge;**/

function Initialize()
{
   StrategyName = "LowLimit";
   AddInput("Input1", Inputs.Candle, 5, true, "BRV7=ФОРТС");
   LongLimit = 1;
   ShortLimit = -1;
}

function OnUpdate()
{

EnterLongLimit(MinValue(Input1.Low, 3, 0));

if (CurrentPL() > 0) CloseLong();

}

Re: EnterLongLimit()

Добавлено: 12 сен 2017, 15:32
evge

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

if (CurrentPL() > 0) CloseLong();


Эта строка добавлена просто для демонстрации работы входа по минимуму лимитной заявкой

чтобы закрывалась позиция хоть как-то :)

но может уйти в позицию не закрыв её "долгое" время

Re: EnterLongLimit()

Добавлено: 12 сен 2017, 15:36
evge
ВСТРОЕННЫЕ ВСПОМОГАТЕЛЬНЫЕ ФУНКЦИИ
...
MinValue(Series, N=1, D=0) – возвращает минимальное значение из N точек ряд Series со смещением D назад
...

Открытие позиции по лимиту

EnterLongLimit(Price)
EnterLongLimit(Price, Q) – закрыть текущий шорт (если он есть) и открыть позицию лонг на разрешенное стратегией количество (или заданное количество Q) по цене Price.
EnterShortLimit(Price)
EnterShortLimit(Price, Q) – закрыть лонг (если он есть) и открыть шорт на разрешенное стратегией количество (или заданное количество Q) по цене Price.
Робот, который запущен в режиме «Робот», при появлении сигналов для открытия позиции, отправляет на рынок торговые поручения:
• с типом «лимит» (LMT);
• с ценой равной Price.

Re: EnterLongLimit()

Добавлено: 12 сен 2017, 18:42
Михаил
Evge, большое спасибо, работает.
А нет ли возможности выставлять лимитированную заявку также и на закрытие позиции? Хотелось бы по такому же принципу закрывать позицию ЛОНГ по цене равной максимальной цене из 3 предыдущих свечек.

Re: EnterLongLimit()

Добавлено: 12 сен 2017, 21:19
evge
Как я помню нет, только на закрытии бара закрывать позицию.

вот так например

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

if (MaxValue(Input1.High, 3, 1) <= Input1.Close[0])
CloseLong();

Re: EnterLongLimit()

Добавлено: 30 окт 2017, 00:54
nordseven
Чтобы не городить огород спрошу тут.
Если я выставляю лимитную заявку, но ситуация меняется и мне её уже не нужно исполнять, как мне её отменить? Что-то я кроме CancelStopLoss ничего не нашел...

Re: EnterLongLimit()

Добавлено: 30 окт 2017, 07:07
evge
CancelActiveOrders(LeaveStop) – снять активные заявки.
LeaveStop – булевая переменная, управляющая снятием стопа к позиции.
true – оставить стоп к позиции.
false – снять все.

Re: EnterLongLimit()

Добавлено: 30 окт 2017, 08:03
evge
Михаил писал(а):А нет ли возможности выставлять лимитированную заявку также и на закрытие позиции? Хотелось бы по такому же принципу закрывать позицию ЛОНГ по цене равной максимальной цене из 3 предыдущих свечек.


Ну вот некоторое время прошло и в последних обновлениях АД4 добавили функции закрытия позиции лимитным ордером.

CloseLongLimit(Price)
CloseLongLimit(Price, Q) – закрыть позицию лонг по стратегии по цене Price полностью (или заданное количество Q).
CloseShortLimit(Price)
CloseShortLimit(Price, Q) – закрыть позицию шорт по стратегии по цене Price полностью (или заданное количество Q).