На главную страницу

Описание и примеры заявок BuyScalp и SellScalp для скальперских операций
               

  Для автоматического скальпирования реализованы две новые заявки: BuyScalp и SellScalp с блокировкой от последующих Buy и Sell сигналов до окончания текущего бара (до появления нового бара). Scalp-заявки подаются по сигналам с графика и после открытия позиции и последующего закрытия ее, по достижении заданного уровня профита или убытка, ставится блокировка от любых последующих сигналов того же направления (от любых видов BuySell, Scalp и не Scalp-заявок), вплоть до завершения бара, на котором эта блокировка будет установлена. Т.е. на каждом баре с сигналом может выполниться одна Buy- и одна SellScalp-заявка (по сигналу повторно подаваться может любое кол-во заявок). Созданная после исполнения заявки блокировка не допустит открытия других позиций того же направления (пока не появится следующий бар, после бара на котором исполнилась Scalp-заявка). Механизм блокировки такой же как и у SimpLock-стопа, но блокирующий файл начинается с названия BuyScalp_Lock_... или SellScalp_Lock_...
                   
Параметры заявок:
                    
1) BuyScalp:
              
FNull:=If(BuyOrder, ExtFml("Borisoff.MoveMICEX_SHR","12345-000", -100, 0.2, BuyScalp, 0.25, Simple, -0.15, BuyOrder, 0), False);
                                                     ^   ^      ^     ^           ^
                                                                                                   размер   %прос-    вид      %Scalp-            %Scalp-
                                                                                                  позиции   кальзы-  заявки   профита            убытка
                                                                                                                 вания                                    !всегда с
                                                                                                                                                                                                     минусом!

2) SellScalp:
              
FNull:=If(SellOrder, ExtFml("Borisoff.MoveMICEX_SHR","12345-000", -100, 0.2, SellScalp, 0.25, Simple, -0.15, SellOrder, 0), False);
                                    ^         ^       ^   ^      ^     ^           ^
                                                                     рынок         портфель  размер   %прос-    вид      %Scalp-            %Scalp-
                                                                                                    позиции   кальзы-  заявки   профита            убытка
                                                                                                                   вания                                    !всегда с
                                                                                                                                                                                                        минусом!


  Для использования Scalp-заявок надо задавать параметры: размер позиции, процент проскальзывания при исполнении заявок, вид заявки BuyScalp или SellScalp, процент профита при достижении которого Scalp-сделка завершается (выход по достижению заданного уровня профита), процент убытка при достижении которого Scalp-сделка также завершается (выход при достижении заданного ограничения убытка, если сделка не вышла в плюс).
  %Scalp-профита и убытка можно задавать динамически, т.е. не в виде константы, а в виде изменяющегося параметра, подставляемого в формулу, тогда с ценой исполнения в файле будет сравниваться каждый раз новое значение %Scalp профита. Т.е. процент %Scalp-профита на тренде будет возрастать, в отличие от константного значения, что позволит получить большую прибыль при закрытии Scalp-позиции.
  После получения сигнала с графика модуль стартует для выполнения Scalp-заявки, как обычной заявки.
  Пока модуль исполняет полученную Scalp-заявку, другие Scalp-заявки того же направления и по этой же бумаге-портфелю-рынку не будут разрешены.

  После исполнения Scalp-заявки создается специальный файл: ТипзаявкиИнструмент№ПортфеляРынок, например: BuyScalpRTSI-9.1012345-005FORTS, SellScalpRTSI-9.1012345-005FORTS в котором сохраняется фактическая цена исполнения Scalp-заявки (или Close-цена, если прочитать цену исполнения не удастся). Далее начинает происходить постояное сравнение цены открытия позции, сохраненной в файле, и текущей цены бумаги. Как только будет достигнут заданный процент прибыли по Scalp-позиции (или процент убытка), то модуль подаст заявку на закрытие имеющейся позиции.
  Открытая Scalp-позиции является обычной позицией, которая может быть закрыта не только при достижении заданного профита или убытка, но и при появлении на графике другого сигнала на разворот или на закрытие позиции (если заданные уровни профита или убытка еще не достигнуты). Если же других сигналов не будет, то через какое-то время позиция может закрыться при достижении заданного Scalp-профита или убытка. Закрытие Scalp-позиции может произойти и на поледующих барах после того, на котором была открыта позиция, в этом случае блокировка поставится уже на бар на котором Scalp-позиция будет закрыта по профиту.

  Например BuyScalp-позиция c профитом 0.4% получится, если взять Цену исполнения сохраненную в Scalp-файле и текущую Close-цену, то подастся заявка на закрытие BuyScalp-позиции если: (ЦScalp-Close)/Close*100 > 0.4%;
  Когда позиция закроется по достижении заданного Scalp-профита, то сразу будет создана блокировка исполнения ЛЮБЫХ ПОСЛЕДУЮЩИХ сигналов ТОГО ЖЕ НАПРАВЛЕНИЯ до завершения бара на котором была создана блокировка (механизм блокировки такой же как у SimpLock-стопа см.Раздел 15).

  Если позиция закрывается по Scalp-лоссу, то блокировка ставится АНАЛОГИЧНО!
  ЗАМЕЧАНИЕ: Scalp-заявки работают БЕЗ СТОПОВ, т.к. параметры стопов, Stop% и Add%Stop, используются для задания параметров Scalp-заявок, поэтому в Scalp-заявках лучше в названии стопа использовать только стандартное слово 'Simple'. Учитывая, что Scalp-заявки имеют условия по выходу, при убытке или при профите, то применение стопов просто нецелесообразно.

  Параметры Scalp-заявок в процессе торговой сессии можно менять динамически, если они заданы не постоянным значением, а какой-то формулой %профита или %убытка, в зависимости от изменения каких-либо индикаторов на графике. 

Пример записи из лог-файла при исполнении Scalp-заявки
:
           
************** Новая заявка от 28.06.2010 17:47:06
Входные параметры заявки:
Тип заявки - SellScalp;
vTradeArea=FORTS;
vAccount=12345-005;
vFinInstr=RTSI-9.10; (заявка сформирована с графика этой ЦБ)
vMaxPercentInPortfel=-1; Минус означает, что доля актива в портфеле задана в лотах(контрактах), а не в процентах!
vLotSize=1;
vPrice=139685;
vDecimals=0;
vPriceStop=0;
vPriceAddStop=0,00;
%ScalpProfit=0,20504;
%ScalpLoss=-1,50000;
vAllowShort=N;
vVidStop=Simple;
vClose=139685; AD_Bid=0; AD_Offer=0;
vPriceMinStep=5,00000;
vNumBarRight=0;
Время контроля исполнения заявок (сек)=35;
Mакс.срок действия созданных заявок и стопов (дней)=3;
oADLite: есть соединение с сервером;
Параметры корректные;
Заданное максимально допустимое кол-во ЦБ в портфеле для заявки 1 шт.
Имеющиеся позиции по RTSI-9.10: Количество=0 шт; Доля в портфеле%=0;
Лимит на продажу RTSI-9.10 1 шт. по цене 139685р; ResultSellLimit-Операция выполнена успешно!;
Подана заявка на Продажу 1 шт. RTSI-9.10 по цене 139685р; N=53251715, для Открытия Scalp-позиции.
Цена исполнения заявки на Продажу 139685;
--- запись завершена: 28.06.2010 17:47:22 -----


************** Новая заявка от 28.06.2010 17:48:05
Входные параметры заявки:
Тип заявки - BuyScalp;
vTradeArea=FORTS;
vAccount=12345-005;
vFinInstr=RTSI-9.10; (заявка сформирована с графика этой ЦБ)
vMaxPercentInPortfel=-1; Минус означает, что доля актива в портфеле задана в лотах(контрактах), а не в процентах!
vLotSize=1;
vPrice=139650;
vDecimals=0;
vPriceStop=0;
vPriceAddStop=0,00;
%ScalpProfit=0,38794;
%ScalpLoss=-1,50000;
vAllowShort=N;
vVidStop=Simple;
vClose=139650; AD_Bid=0; AD_Offer=0;
vPriceMinStep=5,00000;
vNumBarRight=0;
Время контроля исполнения заявок (сек)=23;
Mакс.срок действия созданных заявок и стопов (дней)=5;
oADLite: есть соединение с сервером;
Параметры корректные;
Заданное максимально допустимое кол-во ЦБ в портфеле для заявки 1 шт.
Имеющиеся позиции по RTSI-9.10: Количество=0 шт; Доля в портфеле%=0;
Лимит на покупку RTSI-9.10 1 шт. по цене 139650р; ResultBuyLimit-Операция выполнена успешно!;
Подана заявка на Покупку 1 шт RTSI-9.10 по цене 139650р; N=53251865, для Открытия Scalp-позиции.
Цена исполнения заявки на Покупку 139650;
--- запись завершена: 28.06.2010 17:48:14 -----


************** Новая заявка от 13.07.2010 13:46:19
У BuyScalp-позиции достигнут заданный уровень профита 1,74255. Эта заявка закрывает Scalp-позицию.
Входные параметры заявки:
Тип заявки - BuyScalp;
vTradeArea=FORTS;
vAccount=4586-000;
vFinInstr=RTSI-9.10; (заявка сформирована с графика этой ЦБ)
vMaxPercentInPortfel=0; в %
vLotSize=1;
vPrice=140310;
vDecimals=0;
vPriceStop=0;
vPriceAddStop=0,00;
%ScalpProfit=1,741255;
%ScalpLoss=-4,50000;
vAllowShort=N;
vVidStop=Simple;
vClose=140310; AD_Bid=0; AD_Offer=0;
vPriceMinStep=5,00000;
vNumBarRight=0;
Время контроля исполнения заявок (сек)=27;
Mакс.срок действия созданных заявок и стопов (дней)=30;
oADLite: есть соединение с сервером;
Параметры корректные;
Заданное максимально допустимое кол-во ЦБ в портфеле для заявки 0 шт.
Имеющиеся позиции по RTSI-9.10: Количество=1 шт; Доля в портфеле%=100;
Для Закрытия BuyScalp-позиции подана заявка на Продажу 1 шт. RTSI-9.10 по цене 140310р; N=53989858.
Цена исполнения заявки на Продажу 140310;
--- запись завершена: 13.07.2010 13:46:23 -----

Hosted by uCoz