//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. 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);
}
ZS. No trailer está um roteiro para testar a função Correlação().
Esta função retorna o índice da última posição aberta ou -1. Uma seleção mais precisa das posições a serem verificadas é definida por parâmetros externos:
sy - Nome do instrumento de mercado. Se definirmos este parâmetro, a função considerará apenas as posições do instrumento especificado. O valor padrão "" significa qualquer instrumento de mercado. NULL significa o instrumento atual.
op - Operação comercial, tipo de posição. Valores válidos: OP_BUY, OP_SELL ou -1. O valor padrão -1 significa qualquer posição.
mn - Identificador de posição, MagicNumber. O valor padrão -1 significa qualquer identificador.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. 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);
}
ZS. Anexado um script para testar a função GetIndexLastPos().
Esta função retorna o tamanho do lote da última posição aberta ou -1. Uma seleção mais precisa das posições a serem verificadas é definida por parâmetros externos:
sy - Nome do instrumento de mercado. Se você definir este parâmetro, a função considerará apenas as posições do instrumento especificado. O valor padrão "" significa qualquer instrumento de mercado. NULL significa o instrumento atual.
op - Operação comercial, tipo de posição. Valores válidos: OP_BUY, OP_SELL ou -1. O valor por default -1 significa qualquer posição.
mn - Identificador de posição, MagicNumber. O valor padrão -1 significa qualquer identificador.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. 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. Anexado um script para testar a função GetLotLastPos().
Esta função retorna o índice da última posição aberta ou -1. Uma seleção mais precisa das posições a serem verificadas é especificada por parâmetros externos:
ZS. Anexado um script para testar a função GetIndexLastPos().
O que é o índice ? É um número de barra da última posição aberta? Ou algo mais?
Caro Igor, por favor, me ajude. O problema é que não consigo encontrar em nenhum lugar o código de como anexar MA à CCI ou Stoch. O sinal de compra ou venda deve ser gerado quando este МА cruzar o nível da CCI, por exemplo, +100/-100.
Talvez haja um Expert Advisor que use o código que eu preciso?
Esta função retorna o tamanho máximo do lote a partir do número de posições abertas. Uma seleção mais precisa das posições a serem verificadas é especificada por parâmetros externos:
sy - Nome do instrumento de mercado. Se este parâmetro for definido, a função considerará apenas as posições do símbolo especificado. O valor padrão "" significa qualquer instrumento de mercado. NULL significa o instrumento atual.
op - Operação comercial, tipo de posição. Valores válidos: OP_BUY, OP_SELL ou -1. O valor padrão -1 significa qualquer posição.
mn - Identificador de posição, MagicNumber. O valor padrão -1 significa qualquer identificador.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. 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);
}
ZS. No trailer há um script para testar a função GetMaxLotFromOpenPos().
Esta função retorna o tamanho mínimo do lote a partir do número de posições abertas. Uma seleção mais precisa das posições a serem verificadas é especificada por parâmetros externos:
sy - Nome do instrumento de mercado. Se este parâmetro for definido, a função considerará apenas as posições do símbolo especificado. O valor padrão "" significa qualquer instrumento de mercado. NULL significa o instrumento atual.
op - Operação comercial, tipo de posição. Valores válidos: OP_BUY, OP_SELL ou -1. O valor padrão -1 significa qualquer posição.
mn - Identificador de posição, MagicNumber. O valor padrão -1 significa qualquer identificador.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. 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);
}
HH. Anexado um script para testar a função GetMinLotFromOpenPos().
Caro Igor, por favor, me ajude. O problema é que não consigo encontrar em nenhum lugar o código de como anexar MA à CCI ou Stoch. O sinal de compra ou venda deve ser gerado quando este МА cruzar o nível da CCI, por exemplo, +100/-100.
Talvez haja um Expert Advisor que use o código que eu preciso?
Esta pergunta obviamente não é relevante. Vou dar um exemplo de tal fragmento de código usando exemplos estocásticos e MA para não distrair o Igor.
A função em si:
ZS. No trailer está um roteiro para testar a função Correlação().
Função GetIndexLastPos().
Esta função retorna o índice da última posição aberta ou -1. Uma seleção mais precisa das posições a serem verificadas é definida por parâmetros externos:
- sy - Nome do instrumento de mercado. Se definirmos este parâmetro, a função considerará apenas as posições do instrumento especificado. O valor padrão "" significa qualquer instrumento de mercado. NULL significa o instrumento atual.
- op - Operação comercial, tipo de posição. Valores válidos: OP_BUY, OP_SELL ou -1. O valor padrão -1 significa qualquer posição.
- mn - Identificador de posição, MagicNumber. O valor padrão -1 significa qualquer identificador.
ZS. Anexado um script para testar a função GetIndexLastPos().A função GetLotLastPos().
Esta função retorna o tamanho do lote da última posição aberta ou -1. Uma seleção mais precisa das posições a serem verificadas é definida por parâmetros externos:
- sy - Nome do instrumento de mercado. Se você definir este parâmetro, a função considerará apenas as posições do instrumento especificado. O valor padrão "" significa qualquer instrumento de mercado. NULL significa o instrumento atual.
- op - Operação comercial, tipo de posição. Valores válidos: OP_BUY, OP_SELL ou -1. O valor por default -1 significa qualquer posição.
- mn - Identificador de posição, MagicNumber. O valor padrão -1 significa qualquer identificador.
ZS. Anexado um script para testar a função GetLotLastPos().Função GetIndexLastPos().
Esta função retorna o índice da última posição aberta ou -1. Uma seleção mais precisa das posições a serem verificadas é especificada por parâmetros externos:
ZS. Anexado um script para testar a função GetIndexLastPos().O que é o índice ? É um número de barra da última posição aberta? Ou algo mais?
O que é o índice? É o número de barra da última posição aberta? Ou algo mais?
Este é o número seqüencial da posição na lista de posições abertas e ordens definidas. A numeração começa de zero e é a mesma para posições e pedidos.
Caro Igor, por favor, me ajude. O problema é que não consigo encontrar em nenhum lugar o código de como anexar MA à CCI ou Stoch. O sinal de compra ou venda deve ser gerado quando este МА cruzar o nível da CCI, por exemplo, +100/-100.
Talvez haja um Expert Advisor que use o código que eu preciso?
Função GetMaxLotFromOpenPos().
Esta função retorna o tamanho máximo do lote a partir do número de posições abertas. Uma seleção mais precisa das posições a serem verificadas é especificada por parâmetros externos:
- sy - Nome do instrumento de mercado. Se este parâmetro for definido, a função considerará apenas as posições do símbolo especificado. O valor padrão "" significa qualquer instrumento de mercado. NULL significa o instrumento atual.
- op - Operação comercial, tipo de posição. Valores válidos: OP_BUY, OP_SELL ou -1. O valor padrão -1 significa qualquer posição.
- mn - Identificador de posição, MagicNumber. O valor padrão -1 significa qualquer identificador.
ZS. No trailer há um script para testar a função GetMaxLotFromOpenPos().Função GetMinLotFromOpenPos().
Esta função retorna o tamanho mínimo do lote a partir do número de posições abertas. Uma seleção mais precisa das posições a serem verificadas é especificada por parâmetros externos:
- sy - Nome do instrumento de mercado. Se este parâmetro for definido, a função considerará apenas as posições do símbolo especificado. O valor padrão "" significa qualquer instrumento de mercado. NULL significa o instrumento atual.
- op - Operação comercial, tipo de posição. Valores válidos: OP_BUY, OP_SELL ou -1. O valor padrão -1 significa qualquer posição.
- mn - Identificador de posição, MagicNumber. O valor padrão -1 significa qualquer identificador.
HH. Anexado um script para testar a função GetMinLotFromOpenPos().Caro Igor, por favor, me ajude. O problema é que não consigo encontrar em nenhum lugar o código de como anexar MA à CCI ou Stoch. O sinal de compra ou venda deve ser gerado quando este МА cruzar o nível da CCI, por exemplo, +100/-100.
Talvez haja um Expert Advisor que use o código que eu preciso?
Esta pergunta obviamente não é relevante. Vou dar um exemplo de tal fragmento de código usando exemplos estocásticos e MA para não distrair o Igor.
MA. Eu manterei o posto por 24 horas - então eu o apagarei!
MA. Vou manter este posto por 24 horas - depois vou apagá-lo!