Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Función DistMarketAndPos().
¡Aquí vamos! ¡Aquí vienen más funciones interesantes! Por ejemplo, devuelve la distancia en pips entre el mercado y la posición más cercana. La selección más precisa de las posiciones a comprobar se establece mediante parámetros externos:
La función DistMarketAndPos().
¡Aquí vamos! ¡Pasemos a funciones más interesantes! Por ejemplo, devuelve la distancia, en puntos, entre el mercado y la posición más cercana. La selección más precisa de las posiciones a comprobar se establece mediante parámetros externos:
Intento que funcione de un lado a otro y que se abran pedidos de un lado a otro. Tengo un error, ayúdenme a solucionarlo.
extern int TomaDeBeneficio = 150;
extern double Lote = 0,01;
extern inttern MAGIC = 1234;
int inicio()
{
si (DistMarketAndPos()>150)
{
OrderSend(Symbol(),OP_BUY,Lot,Ask,3,0,Ask+TakeProfit*Point)
}
return(0);
}
int DistMarketAndPos(string sy="", int op=OP_BUY, int mn=-1)
{
doble d, p;
int i, k=Total de pedidos(), r=1000000;
if (sy=="" | sy=="0") sy=Símbolo();
p=MarketInfo(sy, MODE_POINT);
si (p==0) si (StringFind(sy, "")<0) p=0,00001; si no p=0,01;
for (i=0; i<k; i++)
{
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
si ((OrderSymbol()==sy) && (op<0 || OrderType()==op))
{
if (mn<0 || OrderMagicNumber()==mn)
{
if (OrderType()==OP_BUY)
{
d=MathAbs(MarketInfo(sy, MODE_ASK)-OrderOpenPrice())/p;
si (r>d) r=NormalizeDouble(d, 0);
}
if (OrderType()==OP_SELL)
{
d=MathAbs(OrderOpenPrice()-MarketInfo(sy, MODE_BID))/p;
si (r>d) r=NormalizeDouble(d, 0);
}
}
}
}
}
//----------------------------------------------------------------------------------------------------------------------------------------------
si (DistMarketAndPos()>150)
{
OrderSend(Symbol(),OP_SELL,Lot,Ask,3,0,Ask-TakeProfit*Point);
}
return(0);
{
int DistMarketAndPos(string sy="", int op=OP_SELL, int mn=-1) //esta línea da 1 error,
//si se elimina esta línea,
//compila, pero entonces
//No pongo op=OP_SELL,
//y sin ella, el Asesor Experto pensará,
//que el orden a partir del cual se quiere calcular
//la distancia es OP_BUY
if (sy=="" | sy=="0") sy=Símbolo();
p=MarketInfo(sy, MODE_POINT);
si (p==0) si (StringFind(sy, "")<0) p=0,00001; si no p=0,01;
for (i=0; i<k; i++)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
si ((OrderSymbol()==sy) && (op<0 || OrderType()==op))
{
if (mn<0 || OrderMagicNumber()==mn)
{
if (OrderType()==OP_BUY)
{
d=MathAbs(MarketInfo(sy, MODE_ASK)-OrderOpenPrice())/p;
si (r>d) r=NormalizeDouble(d, 0);
}
if (OrderType()==OP_SELL)
{
d=MathAbs(OrderOpenPrice()-MarketInfo(sy, MODE_BID))/p;
si (r>d) r=NormalizeDouble(d, 0);
}
}
}
}
}
return(r);
return(r);
}
}
//-------------------------------------------------------------------------------------------
GRACIAS
Estoyintentando que funcione de un lado a otro y abrir pedidos de un lado a otro con él. Tengo un fallo que no consigo eliminar, por favor ayúdenme a solucionarlo.
GRACIAS
Deberías probarlo:
Y con preguntas aquí...
Función MovingInWL().
¿Puede alguien explicar por qué hay que publicar funciones que no funcionan?
'LevelWLoss' - identificador no declarado
'LevelProfit' - identificador no declarado
'ModifyOrder' - función no definida
'LevelWLoss' - identificador no declarado
'LevelProfit' - identificador no declarado
'ModifyOrder' - función no definida
6 error(es), 0 warning(s)
y esto dentro de la propia función
¿Puede alguien explicar por qué hay que publicar funciones que no funcionan?
'LevelWLoss' - identificador no declarado
'LevelProfit' - identificador no declarado
'ModifyOrder' - función no definida
'LevelWLoss' - identificador no declarado
'LevelProfit' - identificador no declarado
'ModifyOrder' - función no definida
6 error(es), 0 warning(s)
y esto es dentro de la propia función
La función funciona, pero llama a la función ModifyOrder, que debería añadirse al código del EA y también añadir al EA las variables LevelWLoss y LevelProfit, algo así
extern int BeneficioNivel = 1000;
extern int NivelPérdida = 50;
Muchas gracias por este hilo del foro. El mayor agradecimiento a lurii Tokman por las características. Personalmente, estoy casi dispuesto a equipararlo a Stroustrup.
Gracias.
La función GetAmountLotFromOpenPos().
Esta función devuelve la suma de los lotes de las posiciones abiertas. Una selección más precisa de las posiciones a tener en cuenta se especifica mediante parámetros externos:
¡¡¡No vuelve!!!
no importa cómo lo haga, o bien ceros o " función de manejo de eventos no encontrada 4.mq4 1 1
"
Muchas gracias por este hilo del foro. El mayor agradecimiento a lurii Tokman por las características. Personalmente, estoy casi dispuesto a equipararlo a Stroustrup.
Gracias.