[ARCHIVO]Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No puedo ir a ningún sitio sin ti - 5. - página 292
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
Hola.
Por favor, ayúdenme a saber qué estoy haciendo mal.
Condicionalmente: Ask = 1.3000
PriceAsk = 1,3055 (incl. cuando Step=50 y Srpead=3)
bool BuyOrder=1 ,
if (Ask-PriceAsk+Step-Spread<=0 && BuyOrder==0) ¿por qué es verdadera esta condición?Inmediatamente antes de la sentencia if, imprime los valores de todas las variables de la condición
Inmediatamente antes de la sentencia if, registre los valores de todas las variables de la condición
Compruébelo, gracias)
Y ahora la conclusión
Quiero entender cómo funciona. Por eso he preguntado.
GaryKa:
Inmediatamente antes de la sentencia if, registre los valores de todas las variables de la condición
ed3sss:
Compruébelo, gracias)
Gracias, encontré un error lógico en el programa, ahora todo funciona.
Hola.
Cómo puedo mostrar en el gráfico la inscripción en el instrumento actual Ganancias/pérdidas de las órdenes abiertas.
Es difícil comprobar en el Asesor Experto si ha abierto posiciones o no (terminal on/off) y recoger el volumen del último lote antes de cerrar el terminal.
Gracias.
Acabo de encontrar una función aquí:
Quiero entender cómo funciona. Por eso he preguntado.Si me equivoco, pido disculpas. MathLog(x) es ln(x) (logaritmo natural). La fórmula de conversión es log_a(b)=ln(b)/ln(a), en este caso obtenemos ln(x)/ln(10)=lg(x)(logaritmo decimal). La parte entera del logaritmo decimal lg(1...9) es 0, lg(10...99) es 1, lg(100...999) es 2, lg(1000...9999) es 3 y así sucesivamente, es decir, el logaritmo de un número mayor que uno es igual al número de dígitos de ese número(antes del punto decimal, no se cuenta después) menos uno. Si x es de 0 a uno, entonces la parte entera de lg(0,1...0,9) es igual a -1, lg(0,01...0,09) es igual a -2, lg(0,001...0,009) es igual a -3 y así sucesivamente, es decir, si no se mira el menos, el logaritmo decimal del número de 0 a uno es igual al número total de ceros antes del primer dígito significativo. No sé cómo funciona MathCeil, pero si devuelve la parte entera de un número, se supone que esta función devuelve el número de dígitos del número antes del punto decimal menos uno si el número es mayor que 1, y el número de ceros del número antes del primer dígito significativo si el número es de 0 a uno. El mínimo de esta función está en el rango x igual a 1...9. A partir de aquí, para 10...99 y 0,1...0,9 la función es igual a 1, para 100...999 y 0,01...0,09 es igual a 2, y así sucesivamente. La idea es...
Buenas tardes, hay un error en el programa, ya me he devanado los sesos, por favor, señalen qué es lo que falla. Sólo quiero saber por qué la condición de modifi no funciona. Aunque la condición no sea verdadera, se satisface y, por lo tanto, al modificar los errores o 1, o 130. Gracias a todos.
//--------------- modificar las órdenes en TP-------------------
for (i = OrdersTotal() - 1; i >= 0; i--) {
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() != Symbol() || OrderMagicNumber() != Magic) continue;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) {
if (OrderType() = OP_BUY) {
if (OrderTakeProfit() == 0 || OrderTakeProfit() > OprTPB(TP)){
RefreshRates();
OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),OprTPB(TP),0,CLR_NONE);
}
}
if ((OrderType() = OP_SELL)) {
if(OrderTakeProfit() == 0 || OrderTakeProfit() < OprTPS(TP)){
RefreshRates();
OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),OprTPS(TP),0,CLR_NONE);
}
}
}
}
return(0);
}
double LastOpPrBuy(double va=0)
{
for (i = OrdersTotal() - 1; i>= 0; i--)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if (va == 0) va = OrderOpenPrice();
if (OrderSymbol() != Symbol() || OrderMagicNumber() != Magic) continue;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
if (OrderType() == OP_BUY && OrderOpenPrice()<va) va = OrderOpenPrice()
}
volver (va);
}
//----------------------------------------------------------------------------------
double LastOpPrSell(double va=0)
{
for (i = OrdersTotal() - 1; i>= 0; i--)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if (va == 0) va = OrderOpenPrice();
if (OrderSymbol() != Symbol() || OrderMagicNumber() != Magic) continue;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
if (OrderType() == OP_SELL && OrderOpenPrice()>va) va = OrderOpenPrice()
}
volver (va);
}
//----------------------------------------------------------------------------------
double OprTPB(int TP)
{
int j=0;
doble TPB=0;
for (i = OrdersTotal() - 1; i>= 0; i--)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() != Symbol() || OrderMagicNumber() != Magic) continue;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
if (OrderType() = OP_BUY)
{
TPB+=Precio de apertura del pedido();
j++;
}
}
si (j==0) {
j++;
TPB = Preguntar;
}
TPB=(TPB/j)+TP*Punto;
retorno (TPB);
}
//----------------------------------------------------------------------------------
double OprTPS(int TP)
{
int j=0;
doble TPS=0;
for (i = OrdersTotal() - 1; i>= 0; i--)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() != Symbol() || OrderMagicNumber() != Magic) continue;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
if (OrderType() = OP_SELL)
{
TPS+=Precio de apertura del pedido();
j++;
}
}
si (j==0) {
j++;
TPS = Oferta;
}
TPS=(TPS/j)-TP*Punto;
retorno (TPS);
}
//----------------------------
Aquí todos somos novatos. ¡No veas que no sabemos cosas sencillas! ¡Dónde si no vamos a enterarnos! ¡Por lo menos queremos saber, no como piensan algunos que sólo piden poner el código e inmediatamente bombean el dinero!
))) Desde el humor de un comerciante:
- ¿Dónde puedo conseguir un Asesor Experto rentable?
- Mira en algún lugar más arriba en el hilo, publicaron un robot llamado @MOZG@v4.12.