//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. 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);
}
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. 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);
}
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. 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);
}
职能本身。
ZS.在预告片中是一个测试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()函数的脚本。什么是指数?是最后一次开仓 的栏位号吗?还是别的什么?
什么是指数?是最后一次开仓的栏位号吗?还是别的什么?
这是该头寸在未结头寸 和定单列表中的序列号。编号从零开始,头寸和订单的编号都是一样的。
亲爱的伊戈尔,请帮助我。问题是,我在任何地方都找不到如何将MA附加到CCI或Stoch的代码。当这个МА穿过CCI水平,例如+100/-100,就应该产生买入或卖出信号。
也许有一个专家顾问使用我需要的代码?
GetMaxLotFromOpenPos()函数。
该函数从未结头寸的数量中返回最大手数。要检查的位置的更精确选择是由外部参数指定的。
- sy- 市场工具的名称。如果设置了这个参数,函数将只考虑指定符号的位置。默认值"" 意味着任何市场工具。NULL 表示当前的仪器。
- op- 贸易操作,职位类型。有效值:OP_BUY、OP_SELL 或-1。默认值-1 意味着任何位置。
- mn- 位置标识符,MagicNumber。默认值-1 表示任何标识符。
ZS. 在预告片中,有一个测试GetMaxLotFromOpenPos()函数的脚本。GetMinLotFromOpenPos()函数。
该函数从未结头寸的数量中返回最小手数。要检查的位置的更精确选择是由外部参数指定的。
- sy- 市场工具的名称。如果设置了这个参数,函数将只考虑指定符号的位置。默认值"" 意味着任何市场工具。NULL 表示当前的仪器。
- op- 贸易操作,职位类型。有效值:OP_BUY、OP_SELL 或-1。默认值-1 意味着任何位置。
- mn- 位置标识符,MagicNumber。默认值-1 表示任何标识符。
HH. 附上一个测试GetMinLotFromOpenPos()函数的脚本。亲爱的伊戈尔,请帮助我。问题是,我在任何地方都找不到如何将MA附加到CCI或Stoch的代码。当这个МА穿过CCI水平,例如+100/-100,就应该产生买入或卖出信号。
也许有一个专家顾问使用我需要的代码?
这个问题显然是不相关的。为了不分散伊戈尔的注意力,我将用随机和MA的例子给你一个这样的代码片段的例子。
硕士。我将保留该帖子24小时--然后我将删除它!
硕士。我将保留这个帖子24小时--然后我将删除它!