//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 10.05.2008 |//| Описание : Возвращает корреляцию двух рядов. |//+----------------------------------------------------------------------------+//| Параметры: |//| x - массив значений первого ряда |//| y - массив значений второго ряда |//+----------------------------------------------------------------------------+doubleCorrelation(double& x[], double& y[]){double co=0, sa=0, sb=0, sc=0, xs=0, ys=0;
inti, k=MathMin(ArraySize(x), ArraySize(y));
if(k>0){for(i=0; i<k; i++){xs+=x[i]; ys+=y[i];
}xs/=k; ys/=k;
for(i=0; i<k; i++){sa+=(x[i]-xs)*(y[i]-ys);
sb+=(x[i]-xs)*(x[i]-xs);
sc+=(y[i]-ys)*(y[i]-ys);
}sb=MathSqrt(sb*sc);
if(sb!=0)co=sa/sb;
}return(co);
}
ЗЫ. В прицепе скрипт для тестирование функции Correlation().
Эта функция возвращает индекс последней открытой позиции или -1. Более точный отбор проверяемых позиций задаётся внешними параметрами:
sy - Наименование рыночного инструмента. Если задать этот параметр, то функция учтёт позиции только заданного инструмента. Значение по умолчанию - "" означает любой рыночный инструмент. NULL означает текущий инструмент.
op - Торговая операция, тип позиции. Допустимые значения: OP_BUY, OP_SELL или -1. Значение по умолчанию -1 означает любую позицию.
mn - Идентификатор позиции, MagicNumber. Значение по умолчанию -1 означает любой идентификатор.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 19.02.2008 |//| Описание : Возвращает индекс последней открытой позиции или -1 |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//+----------------------------------------------------------------------------+intGetIndexLastPos(stringsy="", intop=-1, intmn=-1){datetimeo;
inti, k=OrdersTotal(), r=-1;
if(sy=="0")sy=Symbol();
for(i=0; i<k; i++){if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){if(OrderSymbol()==sy || sy==""){if(OrderType()==OP_BUY || OrderType()==OP_SELL){if(op<0 || OrderType()==op){if(mn<0 || OrderMagicNumber()==mn){if(o<OrderOpenTime()){o=OrderOpenTime();
r=i;
}}}}}}}return(r);
}
ЗЫ. В аттаче скрипт для тестирования функции GetIndexLastPos().
Эта функция возвращает размер лота последней открытой позиции или -1. Более точный отбор проверяемых позиций задаётся внешними параметрами:
sy - Наименование рыночного инструмента. Если задать этот параметр, то функция учтёт позиции только заданного инструмента. Значение по умолчанию - "" означает любой рыночный инструмент. NULL означает текущий инструмент.
op - Торговая операция, тип позиции. Допустимые значения: OP_BUY, OP_SELL или -1. Значение по умолчанию -1 означает любую позицию.
mn - Идентификатор позиции, MagicNumber. Значение по умолчанию -1 означает любой идентификатор.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 19.02.2008 |//| Описание : Возвращает размер лота последней открытой позиции или -1 |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//+----------------------------------------------------------------------------+doubleGetLotLastPos(stringsy="", intop=-1, intmn=-1){datetimeo;
doublel=-1;
inti, k=OrdersTotal();
if(sy=="0")sy=Symbol();
for(i=0; i<k; i++){if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){if(OrderSymbol()==sy || sy==""){if(OrderType()==OP_BUY || OrderType()==OP_SELL){if(op<0 || OrderType()==op){if(mn<0 || OrderMagicNumber()==mn){if(o<OrderOpenTime()){o=OrderOpenTime();
l=OrderLots();
}}}}}}}return(l);
}
ЗЫ. Во вложении скрипт для тестирования функции GetLotLastPos().
Уважаемый, Игорь! Помогите пожалуйста. Проблема в том, что я немогу нигде найти код как в эксперте прицепить МА к ССI или Stoch. Причем сигнал на покупку или продажу должен быть при пересечении этой МА с уровнем CCI, например +100/-100.
Может быть уже есть какой-нибудь советник, где используется код, который мне нужен?
Эта функция возвращает максимальный размер лота из числа открытых позиций. Более точный отбор проверяемых позиций задаётся внешними параметрами:
sy - Наименование рыночного инструмента. Если задать этот параметр, то функция учтёт позиции только заданного инструмента. Значение по умолчанию - "" означает любой рыночный инструмент. NULL означает текущий инструмент.
op - Торговая операция, тип позиции. Допустимые значения: OP_BUY, OP_SELL или -1. Значение по умолчанию -1 означает любую позицию.
mn - Идентификатор позиции, MagicNumber. Значение по умолчанию -1 означает любой идентификатор.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 19.02.2008 |//| Описание : Возвращает максимальный размер лота из открытых позиций |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//+----------------------------------------------------------------------------+doubleGetMaxLotFromOpenPos(stringsy="", intop=-1, intmn=-1){doublel=0;
inti, k=OrdersTotal();
if(sy=="0")sy=Symbol();
for(i=0; i<k; i++){if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){if(OrderSymbol()==sy || sy==""){if(OrderType()==OP_BUY || OrderType()==OP_SELL){if(op<0 || OrderType()==op){if(mn<0 || OrderMagicNumber()==mn){if(l<OrderLots())l=OrderLots();
}}}}}}return(l);
}
ЗЫ. В прицепе скрипт для тестирования функции GetMaxLotFromOpenPos().
Эта функция возвращает минимальный размер лота из числа открытых позиций. Более точный отбор проверяемых позиций задаётся внешними параметрами:
sy - Наименование рыночного инструмента. Если задать этот параметр, то функция учтёт позиции только заданного инструмента. Значение по умолчанию - "" означает любой рыночный инструмент. NULL означает текущий инструмент.
op - Торговая операция, тип позиции. Допустимые значения: OP_BUY, OP_SELL или -1. Значение по умолчанию -1 означает любую позицию.
mn - Идентификатор позиции, MagicNumber. Значение по умолчанию -1 означает любой идентификатор.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 19.02.2008 |//| Описание : Возвращает минимальный размер лота из открытых позиций |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//+----------------------------------------------------------------------------+doubleGetMinLotFromOpenPos(stringsy="", intop=-1, intmn=-1){doublel=0;
inti, k=OrdersTotal();
if(sy=="0")sy=Symbol();
for(i=0; i<k; i++){if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){if(OrderSymbol()==sy || sy==""){if(OrderType()==OP_BUY || OrderType()==OP_SELL){if(op<0 || OrderType()==op){if(mn<0 || OrderMagicNumber()==mn){if(l==0 || l>OrderLots())l=OrderLots();
}}}}}}return(l);
}
ЗЫ. Во вложении скрипт для тестирования функции GetMinLotFromOpenPos().
Уважаемый, Игорь! Помогите пожалуйста. Проблема в том, что я немогу нигде найти код как в эксперте прицепить МА к ССI или Stoch. Причем сигнал на покупку или продажу должен быть при пересечении этой МА с уровнем CCI, например +100/-100.
Может быть уже есть какой-нибудь советник, где используется код, который мне нужен?
Вопрос явно не в тему. Чтобы не отвлекать Игоря по пустякам привожу пример такого кусочка кода.НА примере стохастика и
Сама функция:
ЗЫ. В прицепе скрипт для тестирование функции Correlation().
Функция GetIndexLastPos().
Эта функция возвращает индекс последней открытой позиции или -1. Более точный отбор проверяемых позиций задаётся внешними параметрами:
- sy - Наименование рыночного инструмента. Если задать этот параметр, то функция учтёт позиции только заданного инструмента. Значение по умолчанию - "" означает любой рыночный инструмент. NULL означает текущий инструмент.
- op - Торговая операция, тип позиции. Допустимые значения: OP_BUY, OP_SELL или -1. Значение по умолчанию -1 означает любую позицию.
- mn - Идентификатор позиции, MagicNumber. Значение по умолчанию -1 означает любой идентификатор.
ЗЫ. В аттаче скрипт для тестирования функции GetIndexLastPos().Функция GetLotLastPos().
Эта функция возвращает размер лота последней открытой позиции или -1. Более точный отбор проверяемых позиций задаётся внешними параметрами:
- sy - Наименование рыночного инструмента. Если задать этот параметр, то функция учтёт позиции только заданного инструмента. Значение по умолчанию - "" означает любой рыночный инструмент. NULL означает текущий инструмент.
- op - Торговая операция, тип позиции. Допустимые значения: OP_BUY, OP_SELL или -1. Значение по умолчанию -1 означает любую позицию.
- mn - Идентификатор позиции, MagicNumber. Значение по умолчанию -1 означает любой идентификатор.
ЗЫ. Во вложении скрипт для тестирования функции GetLotLastPos().Функция GetIndexLastPos().
Эта функция возвращает индекс последней открытой позиции или -1. Более точный отбор проверяемых позиций задаётся внешними параметрами:
ЗЫ. В аттаче скрипт для тестирования функции GetIndexLastPos().А индекс, это что ? Это номер бара последней открытой позиции ? Или что-то другое?
А индекс, это что ? Это номер бара последней открытой позиции ? Или что-то другое?
Это порядковый номер позиции в списке открытых позиций и установленных ордеров. Нумерация начинается с нуля и является единой для позиций и ордеров.
Уважаемый, Игорь! Помогите пожалуйста. Проблема в том, что я немогу нигде найти код как в эксперте прицепить МА к ССI или Stoch. Причем сигнал на покупку или продажу должен быть при пересечении этой МА с уровнем CCI, например +100/-100.
Может быть уже есть какой-нибудь советник, где используется код, который мне нужен?
Функция GetMaxLotFromOpenPos().
Эта функция возвращает максимальный размер лота из числа открытых позиций. Более точный отбор проверяемых позиций задаётся внешними параметрами:
- sy - Наименование рыночного инструмента. Если задать этот параметр, то функция учтёт позиции только заданного инструмента. Значение по умолчанию - "" означает любой рыночный инструмент. NULL означает текущий инструмент.
- op - Торговая операция, тип позиции. Допустимые значения: OP_BUY, OP_SELL или -1. Значение по умолчанию -1 означает любую позицию.
- mn - Идентификатор позиции, MagicNumber. Значение по умолчанию -1 означает любой идентификатор.
ЗЫ. В прицепе скрипт для тестирования функции GetMaxLotFromOpenPos().Функция GetMinLotFromOpenPos().
Эта функция возвращает минимальный размер лота из числа открытых позиций. Более точный отбор проверяемых позиций задаётся внешними параметрами:
- sy - Наименование рыночного инструмента. Если задать этот параметр, то функция учтёт позиции только заданного инструмента. Значение по умолчанию - "" означает любой рыночный инструмент. NULL означает текущий инструмент.
- op - Торговая операция, тип позиции. Допустимые значения: OP_BUY, OP_SELL или -1. Значение по умолчанию -1 означает любую позицию.
- mn - Идентификатор позиции, MagicNumber. Значение по умолчанию -1 означает любой идентификатор.
ЗЫ. Во вложении скрипт для тестирования функции GetMinLotFromOpenPos().Уважаемый, Игорь! Помогите пожалуйста. Проблема в том, что я немогу нигде найти код как в эксперте прицепить МА к ССI или Stoch. Причем сигнал на покупку или продажу должен быть при пересечении этой МА с уровнем CCI, например +100/-100.
Может быть уже есть какой-нибудь советник, где используется код, который мне нужен?
Вопрос явно не в тему. Чтобы не отвлекать Игоря по пустякам привожу пример такого кусочка кода.НА примере стохастика и
МА. Пост. буду держать ровно сутки - потом удалю!
МА. Пост. буду держать ровно сутки - потом удалю!