На
главную страницу
Принципы
работы функций Метастока (объяснение параметра
NumBarRight):
При присоединении советника к графику
бумаги, на нем появится много сигналов на
покупку/продажу. Но поскольку нам надо каждый раз
при срабатывании функции MoveMICEX_SHR формировать
заявки не по всем имеющимся сигналам на
графике, а только на нужном баре (обычно
последнем, т.е крайнем справа), то мы должны
задать номер бара от правого края, на котором и
будет каждый раз, при вызове функции MoveMICEX_SHR,
проверяться наличие Buy- или Sell- сигнала! Для этого
в параметрах функции MICEX_SHR и должен задаваться
номер этого бара. Если задать '0' - то будет
проверяться на сигнал самый последний бар, при
значении '1' будет проверятся бар с номером на
единицу меньшим самого последнего бара (т.е.
предпоследний). Если задать '2' - то будет
проверяться третий бар от конца графика и т.д.
При вызове внешних функций в их параметры
передаются массивы из указанных в параметрах
значений для КАЖДОГО БАРА графика (т.е.целиком
все значения графика). Например, если это Close-цена,
то в функцию передаются все Close-цены каждого бара
графика. Если же, например, в параметре была
указана не цена закрытия, а условие
BuySell-срабатывания функции MoveMICEX_SHR (MoveFORTS), то в
функцию передаются результаты обработки в
Метастоке BuySell-условий советника на каждом баре!
Если затем мы пройдем по каждому загруженному в
функцию бару, то увидим в каждом из них результат
выполнения BuySell-условия. Если на каком-то баре
будет истинно Sell-условие или Buy-условие, то затем
формируется соответствующая торговая заявка в
АДирект.
ВАЖНО:
параметр NumBarRight задает номер
бара от правого края графика, на котором
происходит проверка на наличие Buy, Sell или другого
сигнала. Если у вас на графике сигналы будут
появляться не на заданном параметром
NumBarRight баре, то заявки не будут подаваться в
АД-терминал! Или по-другому, все сигналы
расположенные НЕ НА заданном NumBarRight баре НЕ
ИСПОЛНЯЮТСЯ в любом случае, в том числе и при
отсутствии позиций! Функция MoveMICEX_SHR (MoveFORTS) проверяет,
появился ли в этой зоне бар с BuySell-сигналом. Если в
этой "зоне" появился бар с Buy- или Sell-
сигналом, то происходит вызов модуля MoveOrderADirect3.exe
для формирования соответствующей Buy или Sell
заявки в АД-терминал. В BuySell формулах эксперта при
необходимости можно задавать проверку не одного,
но и двух и более баров графика, не обязательно
соседних, а любых, по выбору пользователя. Тогда в
формуле эксперта будет два или более
вызовов функций MoveMICEX_SHR (MoveFORTS):
FNull:=IF(FBuy, ExtFml("Borisoff.MoveMICEX_SHR","1234-000",50,1,B,0,Simple,0,FBuy,2), False); {сканируется 2-ой бар на Buy-сигнал}
FNull:=IF(FBuy, ExtFml("Borisoff.MoveMICEX_SHR","1234-000",50,1,B,0,Simple,0,FBuy,3), False); {сканируется 3-ой бар на Buy-сигнал}
аналогично для Sell-условия советника:
FNull:=IF(FSell, ExtFml("Borisoff.MoveMICEX_SHR","1234-000",50,1,S,0,Simple,0,FSell,1), False); {сканируется
1-ой бар на Sell-сигнал}
FNull:=IF(FSell, ExtFml("Borisoff.MoveMICEX_SHR","1234-000",50,1,S,0,Simple,0,FSell,3), False); {сканируется 3-ой бар на Sell-сигнал}
При NumBarRight >
0 все сигналы на графике явлются
неисчезающими (т.е.подтвержденными), т.к.
возникают на уже окончательно сформированных
барах. А а при NumBarRight = 0
(т.е.при проверке на наличие торговых
сигналов на еще не сформированном баре)
сигналы могут возникать и исчезать,
пока не завершится формирование бара. Поэтому при
NumBarRight = 0 торговая
система может среагировать на какие-либо сильные
рыночные движения более быстро, т.к. не будет
дожидаться окончательного формирования
крайне-правого бара на графике. Но при этом
требуется более точное определение условий для
Buy/Sell сигнала, чтобы этот сигнал после
окончательного формирования бара уже не
пропал.
(!!!) Совет:
Если у вас есть сигналы на графике, а заявки в
АД-не создаются, то нужно в формуле
функции MoveMICEX_SHR вместо FBuy или FSell
подставить значение 'True', т.е:
FNull:=IF(FBuy,
ExtFml("Borisoff.MoveMICEX_SHR","5678-000",50,1,B,1.05,Simple,0,True,2),
False);
^
тогда сразу
должны появиться заявки в АД-терминале. Если
заявки сразу появятся - значит, библиотека и
модуль работают правильно, а нужно только затем
вместо True правильно задать значение
параметра NumBarRight).
(!!!)Для выбора правильного
значения NumBarRight нужно вначале понаблюдать,
на каком баре, от правого края, обычно начинают
появляться первые BuySell-сигналы от наложенного на
график Советника. Если первый сигнал появляется
на нулевом баре, и уже не пропадает, то
можно задать NumBarRight=0. Если на нулевом
баре сигнал то пропадает, то снова появляется,
значит лучше задать NumBarRight=1, чтобы
использовать уже окончательно сформированный
сигнал. Соответственно, если сигнал возникает
только на 1-ом или 2-ом и т.д. баре от правого
края графика, то соответственно и значение
NumBarRight нужно задавать равным номеру этого
бара.