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

Описание 'RJBuy' и 'RJSell' заявок и торговли по методу управления капиталом Райана Джонса (пирамидинг):

      
  C помощью 'RJBuy' и 'RJSell' заявок можно осуществлять автоматическую торговлю каким-либо инструментом на основе метода управления капиталом Райана Джонса. Суть метода, вкратце, торговля фиксированным числом лотов (с целью управления риском), в зависимости от изменения показателя Close-цены по бумаге. При этом, как только Close-цена по бумаге вырастает на заданную в параметре 'StepRJ' процентную величину, относительно некоторого начального значения, то происходит увеличение размера начальной позиции на кол-во, кратное начальному количеству лотов, заданному в параметре  '-MaxQuantInPortfel' функции MoveMICEX_SHR (MoveFORTS). Величина 'StepRJ' называется шагом пирамидинга. А кол-во бумаг до которого будет увеличена позиция в портфеле на очередном шаге, будет кратно значению параметра 
'-MaxQuantInPortfel' (в лотах) умноженному на кол-во шагов StepRJ, исходя из формулы:
 
MaxQuantityInPortfelRJ = (Trunc( Abs(CloseRJ - StartCloseRJ) / Abs(StartCloseRJ) *100 /StepRJ) + 1) * Abs(MaxQuantityInPortfel); 
при условии
CloseRJ > StartCloseRJ, т.е. текущая Close-цена > начальной Close-цены при RJBuy-пирамидинге;
и при условии CloseRJ < StartCloseRJ, т.е. текущая Close-цена < начальной Close-цены при RJSell-пирамидинге;
         
  Начальное значение 'StartCloseRJ' равно Close-цене в момент появления на графике 'RJBuy' или 'RJSell' сигнала, от которого начнется лонг или шорт пирамидинг, и сохраняется в текстовом файле. Название этого файла составляется из символов RJ<Buy/Sell><ТикерБумаги><НомерПортфеля><КодРынка> и он будет создаваться в метастоковском каталоге
'\External Function Dlls'.
  Например, в момент RJBuy-сигнала на рынке ММВБ для Газпрома из портфеля '12345-000' текущее значение Close-цены по этой бумаге сохранится в файле 'RJBuyGAZP12345-000MICEX_SHR' в качестве начального. Затем от этого начального значения будет исчисляться величина дальнейшего изменения Close-цены. И как только, при новом обновлении данных графика или очередном RJBuy-сигнале, текущее значение Close-цены превысит начальное значение Close-цены, сохраненное в файле, на заданную в параметре StepRJ процентную величину, то произойдет увеличение позиций. Начальная позиция в портфеле увеличится во столько раз, во сколько раз процентное отношение между текущей Close-ценой и начальным значениями Close-цены превысит значение шага 'StepRJ', но в реальности максимальное значение будет ограничиваться текущими лимитами. При дальнейшем увеличении Close-цены на заданную величину StepRJ позиция снова увеличится на заданное в MaxQuantInPortfel число лотов, и т.д.
       
  Приведем пример. Пусть в советнике Метастока для RJ-пирамидинга в лонг задана функция MoveMICEX_SHR(MoveFORTS) со следующими параметрами:
                  
  FNull:=IF(RJBuy, ExtFml("Borisoff.MoveMICEX_SHR", "1234-000; 5.0", -1, 1.5, RJBuy, 0, Simple, 0, RJBuy, 1), False);
       
  Т.е здесь в параметрах функции задано, что при первом RJBuy-сигнале на графике в портфеле будет сформирована лонг-позиция в один лот и текущее значение Close-цены по бумаге (из таблицы 'Позиции' АД-терминала) будет сохранено в файле в качестве начального. Затем, при продолжении торгов, при каждом последующем RJBuy-сигнале если текущее значение Close-цены по бумаге (из таблицы 'Позиции' АД-терминала) станет больше на 5.0% начального значения Close-цены (сохраненного в файле), то произойдет увеличение лонг-позиции в портфеле еще на один лот. Если далее текущее значение Close-цены по бумаге (из таблицы 'Позиции' АД-терминала) станет больше начального значения Close-цены уже на 10%, то лонг-позиция в портфеле увеличится еще на один лот.
       
  Второй пример. Если в советнике Метастока для RJ-пирамидинга в лонг задать другие параметры в функции MoveMICEX_SHR(MoveFORTS):
                  
  FNull:=IF(RJBuy OR Cum(1)=LastValue(Cum(1)), ExtFml("Borisoff.MoveMICEX_SHR", "1234-000; 7.5", -3, 1.5, RJBuy, 0, Simple, 0, RJBuy, 1), False);
       
  То здесь, при первом RJBuy-сигнале на графике, в портфеле будет сформирована лонг-позиция в три лота и текущее значение Close-цены по бумаге   будет сохранено в файле в качестве начального. Затем, при продолжении торгов, если при последующих RJBuy-сигналах или при каждом обновлении данных графика, текущее значение Close-цены по бумаге станет больше на 7.5% начального значения Close-цены (сохраненного в файле), то произойдет увеличение лонг-позиции в портфеле еще на три лота. Если далее текущее значение Close-цены по бумаге станет больше начального значения Close-цены уже на 30%, то лонг-позиция в портфеле увеличится до двенадцати лотов (т.е. 30% / 7.5% * Abs(-3) = 12).
  Если в советнике Метастока добавить условие ExitRJBuy с нулевым значением доли в портфеле MaxQuantInPortfel, то при его исполнении текущие лонг-позиции будут закрыты.
  А если в советнике Метастока в функции MoveMICEX_SHR(MoveFORTS) задать RJSell условие, то при его исполнении лонг-позиция в портфеле тоже закроется и создастся позиция уже для шорт-пирамидинга по аналогичному принципу. При этом параметры для шорт-пирамидинга могут быть заданы такими же или другими значениями.
     
  Как можно заметить, в функции MoveMICEX_SHR (MoveFORTS) параметр 'StepRJ' прописывается в общих кавычках вместе с портфелем и отделяется от него точкой с запятой ';'. Такая запись связана с тем, что общее допустимое кол-во параметров в функциях Метастока не может быть больше 10, поэтому приходится прибегать к некоторым ухищрениям, чтобы поместить в функцию большее число параметров. Расположение параметров и их разделитель изменять нельзя.
            
  При перевороте из RJBuy-позиции в RJSell-позицию файл со значением Close-цены для лонг-пирамидинга будет автоматически удаляться и будет создаваться новый файл (RJSell...) с начальным значением уже для шорт-пирамидинга. Каждая RJ-заявка будет запротоколирована в лог-файле, примерно в таком виде:
             
************** Новая заявка от 21.02.2008 16:42:31
Входные параметры заявки:
Тип заявки RJBuy - пирамидинг по методу Райана Джонса;
vStepRJ=0,9; %шага возрастания Close-цены по ЦБ для очередного увеличения доли в портфеле.
vStartCloseRJ=189,38; Величина Close-цены по ЦБ в начале RJBuy-пирамидинга.
vCloseRJ=202,02; Текущая величина Close-цены по ЦБ.
vTradeArea=MICEX_SHR;
vAccount=1234-002;
vFinInstr=ROSN;  (заявка сформирована с графика этой ЦБ)
vMaxPercentInPortfel=-8; Минус означает, что начальная макс.доля актива в портфеле для RJ-пирамидинга задана в лотах(контрактах), а не в %!
vMaxQuantityInPortfelRJ=80; Текущая макс.доля в портфеле для RJ-пирамидинга (в лотах);
vLotSize=1;
vPrice=205,05;
vDecimals=2;
vPriceStop=0,00;
vPriceAddStop=0,00;
vAllowShort=Y;
vVidStop=Simple;
vClose=202,02;
vNumBarRight=2;
oADLite: есть соединение с сервером;
Параметры корректные;
Заданное максимально допустимое кол-во ЦБ в портфеле для заявки - 80 шт.
Имеющиеся позиции по ROSN: Количество=8 шт; Доля в портфеле%=17,78;
Лимит на покупку ROSN - 36 шт. по цене 205,05р; ResultBuyLimit-Операция выполнена успешно!;
Подана заявка на Покупку 36 шт ROSN по цене 205,05р; N=19593136; ResultСreateBuyOrder-Операция выполнена успешно!;
Ваша заявка № 19593136 на покупку 36 лотов ROSN по цене 205.05 RUR принята Системой.

C RJ-заявками можно использовать все имеющиеся в функциях MoveMICEX_SHR (MoveFORTS) виды стопов. Если в портфеле не останется позиций, например после срабатывания стопов, то RJ-файлы, если они имеются, будут автоматически удаляться, тем самым можно будет ЗАНОВО начать RJ-пирамидинг уже с ТЕКУЩЕГО ценового уровня, если будут сигналы на графике.
RJ-заявки позволяют сделать комфортным авто-трейдинг с большими объемами, поскольку можно наращивать позиции по тренду постепенно.

Hosted by uCoz