Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 40
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
Corrección de
No hay otra forma de ponerlo en otro sitio, serán parámetros erróneos
Debe tener en cuenta la más reciente.
Intentaré cambiarlo.
Intenté utilizar la función estándar OrderModify() pero se bloquea si muevo muchas órdenes simultáneamente y constantemente
Gracias por la crítica.
Declararlo SIN ARGUMENTO, ¿es realmente tan difícil?
{код функции}
Y llamar a uno vacío también, y poner la elza de allí detrás de corchetes:
else {когда есть ордера}
Y ahora tienes esto:
Pruébalo ^_~
No está funcionando... No hay intercambios, no hay intercambios...
¿Pone al menos las órdenes pendientes, no, cuáles son los errores?
...lo he arreglado.
Argumentos terminados. El terminal se mantiene firme.
Así que una especie de bucle se agita sin cesar.
Escribe #property strict al principio del código y arréglalo, muchas advertencias.
Es muy posible la división por 0 en la última función.
Después sólo se ejecutará la primera línea, el bloque de llaves queda huérfano.
En general, escriba primero la lógica en el papel con palabras, de lo contrario se tambalea.
Se supone que ejecuta un comando con un punto decimal flotante en función de los decimales del gráfico
NormalizarDoble(Pregunta+TomaDeBeneficio*Punto(),Dígitos)
¿y cómo ha visto que algunas líneas no se han ejecutado?
Se supone que ejecuta un comando con un punto decimal flotante en función de los decimales del gráfico
NormalizarDoble(Pregunta+TomaDeBeneficio*Punto(),Dígitos)
¿Cómo sabe que algunas líneas no se ejecutan?
Sí. Tengo grandes problemas con la lógica. ¿Y qué quedaría del resultado si se escribe en una variable entera? ¿Qué sentido tiene este código?
lastlot=NormalizeDouble(lastlot*Martin,3);
tp=NormalizeDouble(avg_price+TakeProfit*Point(),Digits);
Aquí, ¿es tan difícil entender que parte del código es huérfano y se ejecutará independientemente de la condición?
otype=FindLastOType(); //код, исполняющийся для else
{
код-сирота
}
Sí. Hay un gran problema de lógica. ¿Y qué queda del resultado si se escribe en una variable entera? ¿Qué sentido tiene este código?
lastlot=NormalizeDouble(lastlot*Martin,3);
tp=NormalizeDouble(avg_price+TakeProfit*Point(),Digits);
¿Es tan difícil entender que parte del código es huérfano y no se ejecutará?
otype=FindLastOType(); //код, исполняющийся для else
{
код, который никуда не идёт, сирота
}
Stop
si hay pedidos
El tipo de pedido es
{
entonces se ejecutan las operaciones para ese tipo de orden
}
¿No?
No puedo entender de dónde viene la división ceroStop
si hay pedidos
es el tipo de orden
{
entonces las operaciones se realizan para este tipo de orden
}
¿No?
Sí, tienes razón, lo que pasa es que el código está escrito con un estilo tal que el orador anterior lo interpretó mal.
Añadido: ladivisión por cero es una división por cero, y te dice en el registro qué línea
Stop
si hay pedidos
es el tipo de orden
{
entonces las operaciones se realizan para este tipo de orden
}
¿No?
Corregido arriba. Lo que viene después de else se ejecuta dependiendo de la condición. El bloque de llaves está separado, por lo que no tiene nada que ver con el resto.
Ahí es donde
{
double avg_price; //+------------средняя цена
price=0;//+------------цена
bool z;//+------------выход в переменную
double orderlots=0; //+------------лоты
avg_price=NormalizeDouble(price/orderlots,Digits);//+------------то средняя ценаравна цена деленная на лот