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
Buenas tardes.
Todavía soy nuevo en la programación, si alguien tiene algún consejo.
Pregunta. Tenemos una o varias órdenes abiertas y sabemos que cerrarán con un beneficio de 20 dólares.
Necesitamos saber a qué precio se cerrarán las órdenes con 20 dólares de beneficio.
Calculamos el volumen total de lotes abiertos, ¡y luego!
Por favor, aconseja cómo hacerlo.
¿Quizás haya una función lista?
Gracias de antemano.
Ejemplos de uso de DistMarketAndPos().
¿Por qué se necesita una función que determine a qué distancia está el mercado de la posición más cercana? Veo al menos cuatro opciones básicas:
Si desea una implementación específica de alguna de estas opciones, escriba sus peticiones aquí. Cumpliré todas las solicitudes dentro del marco de lo que he enumerado anteriormente.
SZY-SZY. Se adjunta una plantilla para experimentar con la función DistMarketAndPos().
HolaKimIV, la función es muy buena, funciona, le doy la vuelta, también funciona, pero no puedo conectar las dos mitades.
int start()
{
if (DistMarketAndPos()>150)
{
OrderSend(Symbol(),OP_BUY,1.0,Ask,3,0,Ask+150*Point);
}
return(0);
}
int DistMarketAndPos(string sy="", int op=OP_BUY, int mn=-1) {
double d, p;
int i, k=OrdersTotal(), r=1000000;
if (sy=="" || sy=="0") sy=Symbol();
p=MarketInfo(sy, MODE_POINT);
if (p==0) if (StringFind(sy, "")<0) p=0.00001; else p=0.01;
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if ((OrderSymbol()==sy) && (op<0 || OrderType()==op)) {
if (mn<0 || OrderMagicNumber()==mn) {
if (OrderType()==OP_BUY) {
d=MathAbs(MarketInfo(sy, MODE_ASK)-OrderOpenPrice())/p;
if (r>d) r=NormalizeDouble(d, 0);
}
if (OrderType()==OP_SELL) {
d=MathAbs(OrderOpenPrice()-MarketInfo(sy, MODE_BID))/p;
if (r>d) r=NormalizeDouble(d, 0);
}
}
}
}
}
return (r);
}
Nueva versión de la función Message().
En cuanto a las direcciones de salida de Alerta e Impresión (espacios 1 y 3), hay que tener en cuenta que son capaces de emitir el mensaje línea por línea. Es decir, si hay un salto de línea en el texto del mensaje - carácter de control "\n", entonces cada línea se imprimirá independientemente. Prueba el script de prueba en el archivo adjunto, creo que te gustará :-)
Nueva versión de la función Message().
En cuanto a las direcciones de salida de Alerta e Impresión (espacios 1 y 3), hay que tener en cuenta que son capaces de emitir el mensaje línea por línea. En otras palabras, si hay un salto de línea en el texto del mensaje -carácter de control "\n"-, cada línea se imprimirá de forma independiente. Prueba el script de prueba en el archivo adjunto, creo que te gustará :-)
¿Ha añadido una comprobación de nivelación de parada a su función OpenPosition?
No... ¿a qué tipo de comprobación se refiere? Digamos que la parada y la toma fallaron el cheque, ¿qué hacer? Hay opciones:
no... ¿a qué tipo de comprobación se refiere? Digamos que la parada y la toma no pasaron el control, ¿qué se hace? Hay opciones:
Nueva versión de la funciónOpenPosition() en el script de prueba.
¿Qué hay de nuevo?
1. Cuando el error 130 Stops inválidos y el valor de la variable NumberOfTry>1 se establece, la función tratará de ajustar los niveles de precio StopLoss y TakeProfit a los valores de MODE_STOPLEVEL+MODE_SPREAD relativos a Bid para OP_SELL y Ask para OP_BUY.
Nota:
La variable globalNumberOfTry debeser mayor que 1 para que se corrijan los niveles de precios, ya queel primer intento de abrir una posición revela el error 130 y corrige los niveles de precios, mientras que el segundo y siguientes intentos de abrir una posición con niveles corregidos.
Buenas tardes.
¿Es posible complementar la biblioteca de funciones útiles de KimIV con algunas funciones simples como :
1.Precio de apertura, seleccionado por algún criterio de posición (símbolo, tipo, tamaño de lote, número mágico). Este precio puede ser almacenado en variables globales y utilizado como un determinado nivel de precios, a partir del cual se puede construir el algoritmo del Asesor Experto.
Devuelve una entrada seleccionada según algunos criterios de una posición o una orden (símbolo, tipo, tamaño de lote, número mágico). El billete es un identificador importante, se puede utilizar en todas partes e incluso como bandera de existencia.
Cuantas más funciones sencillas de este tipo haya, más fácil será encontrar las mejores para usted, sin temor a equivocarse al modificar las existentes.
Gracias por sus funciones.