[ARCHIVO] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 3. - página 617

 
¿Pueden decirme cómo saber el lote de la última posición cerrada? Por ejemplo: la última posición se cerró con una retirada y queremos aumentar el lote de la siguiente posición.
 
Vadimkin:
¿Puede decirme cómo declarar un indicador superpuesto a otro indicador (por ejemplo, MA en RSI) en un EA?
sólo calcular explícitamente, por ejemplo, utilizando iMAOnArray() o por mi propio algoritmo.
 
david2:
¿Pueden decirme cómo saber el lote de la última posición cerrada? Por ejemplo: la última posición se cerró con una retirada y queremos aumentar el lote de la siguiente posición.
int oht = OrdersHistoryTotal();
double last_lot;
OrderSelect(oht-1,SELECT_BY_POS,MODE_HISTORY);
if(NormalizeDouble(OrderClosePrice()-OrderTakeProfit(),Digits)==0) //ордер закрыт по тейкпрофиту
{
   last_lot = OrderLots();
   // ура
}
 
alsu:

Muchas gracias, pero no está claro por qué los paréntesis son oht-1 y no oht.
 
david2:
Muchas gracias, pero no está claro por qué los paréntesis son oht-1 y no oht.

el primer elemento de la matriz tiene el número 0, el último tiene el tamaño-1
 
alsu:

el primer elemento de la matriz tiene el número 0, el último tamaño-1
Ya veo.
 
alsu:
sólo calcularlos explícitamente, por ejemplo, utilizando iMAOnArray() o mi propio algoritmo.

Gracias, lo probaré.

He intentado un enfoque diferente. He creado un simple indicador MA personalizado de RSI. Ahora necesito formular las condiciones para que el Asesor Experto abra posiciones por él.

Por ejemplo:

if (RedLine1>BlueLine1&&RedLine2<BluLine2) OP_BUY

if (RedLine1<BlueLine1&&RedLine2>BluLine2) OP_SELL

Pero no sé cómo declararlos. Eso es:

double RedLine1 = iCustom(Symbol(), 0, "MARSI", ?, ?, ......, 1);

¿Podría mirarlo, por favor? O que alguien le eche un vistazo, por favor.

Archivos adjuntos:
marsi.mq4  2 kb
 
Vinin:


iHigh(NULL, PERIOD_D1,1) - máximo de ayer

iLow(NULL, PERIOD_D1,1) - mínimo de ayer

iOpen(NULL, PERIOD_D1,1) - apertura de ayer

iClose(NULL, PERIOD_D1,1) - cierre de ayer

¿Es posible establecer iHai, iLo, iOpen e iClose para una fecha específica, que se puede cambiar en la configuración del indicador?

extern int data = 08/03/2011

iOpen(NULL, 08/03/2011,1) - ¿Cuál es la apertura?

 
Vadimkin:

Gracias, lo probaré.

Intenté un enfoque diferente. He creado un simple indicador MA personalizado de RSI. Ahora necesito formular las condiciones para que el Asesor Experto abra posiciones con él.

Por ejemplo:

if (RedLine1>BlueLine1&&RedLine2<BluLine2) OP_BUY

if (RedLine1<BlueLine1&&RedLine2>BluLine2) OP_SELL

Pero no sé cómo declararlos. Eso es:

double RedLine1 = iCustom(Symbol(), 0, "MARSI", ?, ?, ......, 1);

Me pregunto si podrías echarle un vistazo. O que alguien le eche un vistazo, por favor.


En tu caso no hay parámetros externos, por lo que no necesitas escribir nada en lugar de preguntas:

double RedLine1 = iCustom(0, 0, "MARSI", índice de línea, número de barra);

Más concretamente,

double RedLine1 = iCustom(0, 0, "MARSI", 0, 1); - rojo en 1 barra

double RedLine2 = iCustom(0, 0, "MARSI", 0, 2); - rojo en 2 barras

double BlueLine1 = iCustom(0, 0, "MARSI", 1, 1); - azul en 1 barra

double BlueLine2 = iCustom(0, 0, "MARSI", 1, 2); - Azul en la barra 2
 
alsu:

En tu caso no hay parámetros externos, por lo que no necesitas escribir nada en lugar de preguntas:

double RedLine1 = iCustom(0, 0, "MARSI", índice de línea, número de barra);

Sé más específico,

double RedLine1 = iCustom(0, 0, "MARSI", 0, 1); - rojo en 1 barra

double RedLine2 = iCustom(0, 0, "MARSI", 0, 2); - rojo en 2 barras

double BlueLine1 = iCustom(0, 0, "MARSI", 1, 1); - azul en 1 barra

double BlueLine2 = iCustom(0, 0, "MARSI", 1, 2); - Azul en la barra 2


Muchas gracias.