Рассмотрим функцию для выставления СЛ:
- Код: выделить все
double f_SL(string sy, int sl, int ty, double pr)
{
/*
Описание:
Функция осуществляет расчет уровня СЛ
Параметры:
sy - наименование инструмента ("0" - текущий символ)
sl - величина СЛ
ty - тип ордера
pr - цена входа или уровень входа (установки ордера)
*/
if(sy == "0") sy = Symbol();
int int_Dig = (int) MarketInfo(sy, MODE_DIGITS);
double dbl_Poi = MarketInfo(sy, MODE_POINT);
if(sl == 0) return(0);
if(ty == OP_BUY || ty == OP_BUYLIMIT || ty == OP_BUYSTOP)
{
return(NormalizeDouble(pr - sl * dbl_Poi, int_Dig));
}
else if(ty == OP_SELL || ty == OP_SELLLIMIT || ty == OP_SELLSTOP)
{
return(NormalizeDouble(pr + sl * dbl_Poi, int_Dig));
}
return(-1);
}
В качестве параметров в функцию f_SL() передается наименование торгового инструмента ("0" - значит текущий инструмент), величина СЛ в пунктах, тип ордера (все 6 типов ордеров) и цена от которой производится расчет СЛ.
Если в качестве величины СЛ передается ноль, то СЛ отсутствует.
Пример применения в коде:
- Код: выделить все
input int intSL = 30; // SL (пнт.);
...
void OnTick()
{
double dblSL;
...
// для покупки:
dblSL = f_SL("0", intSL, OP_BUY, Bid);
}
В качестве внешней переменной задается intSL. В стандартной функции OnTick() вводится переменная типа double и переменной dblSL происходит присвоение значения уровня СЛ, полученного при помощи вызова рассмотренной функции f_SL().
Рассмотрим функцию для выставления ТП:
- Код: выделить все
double f_TP(string sy, int tp, int ty, double pr)
{
/*
Описание:
Функция осуществляет расчет уровня ТП
Параметры:
sy - наименование инструмента ("0" - текущий символ)
tp - величина ТП
ty - тип ордера
pr - цена входа или уровень входа (установки ордера)
*/
if(sy == "0") sy = Symbol();
int int_Dig = (int) MarketInfo(sy, MODE_DIGITS);
double dbl_Poi = MarketInfo(sy, MODE_POINT);
if(tp == 0) return(0);
if(ty == OP_BUY || ty == OP_BUYLIMIT || ty == OP_BUYSTOP)
{
return(NormalizeDouble(pr + tp * dbl_Poi, int_Dig));
}
else if(ty == OP_SELL || ty == OP_SELLLIMIT || ty == OP_SELLSTOP)
{
return(NormalizeDouble(pr - tp * dbl_Poi, int_Dig));
}
return(-1);
}
В качестве параметров в функцию f_TP() передается наименование торгового инструмента ("0" - значит текущий инструмент), величина ТП в пунктах, тип ордера (все 6 типов ордеров) и цена от которой производится расчет ТП.
Если в качестве величины ТП передается ноль, то ТП отсутствует.
Пример применения в коде:
- Код: выделить все
input int intTP = 30; // ТП (пнт.)
...
void OnTick()
{
double dblTP;
...
// для покупки:
dblTP = f_TP("0", intTP, OP_BUY, Ask);
}
В качестве внешней переменной задается intTP. В стандартной функции OnTick() вводится переменная типа double и переменной dblTP происходит присвоение значения уровня ТП, полученного при помощи вызова рассмотренной функции f_TP().
Данные примеры рассмотрены для последующей сделки на покупку.