Supongamos que la segunda orden de precio más alto va primero, se recuerda en precio_máximo, luego la primera, se sustituye por precio_máximo, la segunda orden se pierde,
Resulta que para evitar la redundancia en el 99% de los casos hay que seguir escribiendo todo el código a mano...
Bueno, estoy hablando de un equilibrio adecuado, y no se puede evitar la redundancia en el código TRANSFORMADO en absoluto. Me detuve en una matrioska de 3 estructuras
struct ORDER {
double d_Price;
double d_Lot;
double d_Profit;
string s_Comment;
datetime t_Time;
int i_Ticket;
int i_Op_Type;
};
struct ORDERS_GROUP {
double d_Lots_Total; // сумма лотовdouble d_Profit_Total; // суммарная прибыльdouble d_BreakEven_Price; // уровень б/у
ORDER o_Lowest; // параметры нижнего ордера
ORDER o_Highest; // параметры верхнего ордера
ORDER o_Oldest; // параметры старейшего ордера
ORDER o_Newest; // параметры новейшего ордераint i_Orders_Total; // кол-во ордеров
};
struct ALL_ORDERS {
int i_Orders_Total; // кол-во ордеровdouble d_Lots_Total; // сумма лотовdouble d_Profit_Total; // суммарная прибыльdouble d_BreakEven_Price; // уровень б/уdouble d_One_Point_Price; // прибыль одного пунктаdatetime t_Data_Collected; // время последнего обновления данныхbool b_Changed; // была операция после последнего обновления данных?
ORDERS_GROUP o_Buy; // сводка данных ордеров Buy
ORDERS_GROUP o_Sell; // сводка данных ордеров Sell
ORDERS_GROUP o_Buy_Stop; // сводка данных ордеров BuyStop
ORDERS_GROUP o_Sell_Stop; // сводка данных ордеров SellStop
ORDERS_GROUP o_Buy_Limit; // сводка данных ордеров BuyLimit
ORDERS_GROUP o_Sell_Limit; // сводка данных ордеров SellLimit
ORDERS_GROUP o_Market; // сводка данных рыночных ордеров
ORDERS_GROUP o_Pendings; // сводка данных отложенных ордеров
};
ALL_ORDERS go_Orders;
Se rellena durante una pasada, se actualiza cuando el bot hace una transacción o cambia el número de pedidos. Creo que aquí la redundancia está al límite. Para mí es suficiente en el 90% de los casos, pero no resuelve tu problema; necesitas una función aparte
Dmitry Fedoseev: Supongamos que la segunda orden de precio más alto va primero, se almacena en precio_máximo, luego la primera orden es sobrescrita por precio_máximo y la segunda orden se pierde,
no, no perdemos el segundo orden; el orden máximo se escribe primero
if(op>price_max) // Самый верхний ордер
{
price_max=op;
m_tick_upper=tc;
}
Si el segundo orden es más alto, se sobrescribe si es más bajo, entonces funciona la segunda condición
Bueno, estoy hablando de un equilibrio adecuado, y no se puede evitar por completo la redundancia en el código TRANSFORMADO. Me decidí por una matriz de 3 estructuras de este tipo
Se rellena durante una pasada, se actualiza cuando el bot hace un trato o el número de pedidos cambia. La redundancia aquí es demasiado para mí en el 90% de los casos, pero no resuelve tu problema; necesitas una función separada
Así que, pones dos estructuras en una tercera ...
Su método de rellenar todas las estructuras es interesante...
No hay manera más rápida. Si quieres más rápido, tienes que pensar en todo el algoritmo del EA, tal vez puedas deshacerte de la necesidad de buscar dos bajos, dos altos en cada tick.
Debo admitir que tu método de búsqueda de órdenes es más estable que el mío en algunos casos, ahora estoy haciendo pruebas y dependiendo de la posición de apertura de la orden tu método funciona sin errores... Mi método no funciona correctamente en algunos casos...
Vladimir Pastushak: Debo admitir que tu método de búsqueda de órdenes es más estable que el mío en algunos casos, ahora estoy haciendo pruebas y dependiendo de la posición de apertura de la orden tu método funciona sin errores... Mi método no funciona correctamente en algunos casos...
Para iniciar sesión y usar el sitio web MQL5.com es necesario permitir el uso de Сookies.
Por favor, active este ajuste en su navegador, de lo contrario, no podrá iniciar sesión.
Ha iniciado sesión. La autenticación de dos factores se ha desactivado. Vuelva a configurarla y escanee un nuevo código QR, o continúe con la autenticación de dos factores desactivada.
No soy OTK:) Pruebe con órdenes en el probador o en una cuenta demo.
¿Qué es la garantía de calidad?
Resulta que para evitar la redundancia en el 99% de los casos hay que seguir escribiendo todo el código a mano...
Bueno, estoy hablando de un equilibrio adecuado, y no se puede evitar la redundancia en el código TRANSFORMADO en absoluto. Me detuve en una matrioska de 3 estructuras
Se rellena durante una pasada, se actualiza cuando el bot hace una transacción o cambia el número de pedidos. Creo que aquí la redundancia está al límite. Para mí es suficiente en el 90% de los casos, pero no resuelve tu problema; necesitas una función aparte
Supongamos que la segunda orden de precio más alto va primero, se almacena en precio_máximo, luego la primera orden es sobrescrita por precio_máximo y la segunda orden se pierde,
no, no perdemos el segundo orden; el orden máximo se escribe primero
Si el segundo orden es más alto, se sobrescribe si es más bajo, entonces funciona la segunda condición
se comprueba el billete, si no es el máximo sino el billete superior, entonces es el superior antes del máximo.
Bueno, estoy hablando de un equilibrio adecuado, y no se puede evitar por completo la redundancia en el código TRANSFORMADO. Me decidí por una matriz de 3 estructuras de este tipo
Se rellena durante una pasada, se actualiza cuando el bot hace un trato o el número de pedidos cambia. La redundancia aquí es demasiado para mí en el 90% de los casos, pero no resuelve tu problema; necesitas una función separada
Así que, pones dos estructuras en una tercera ...
Su método de rellenar todas las estructuras es interesante...
No hay manera más rápida. Si quieres más rápido, tienes que pensar en todo el algoritmo del EA, tal vez puedas deshacerte de la necesidad de buscar dos bajos, dos altos en cada tick.
Debo admitir que tu método de búsqueda de órdenes es más estable que el mío en algunos casos, ahora estoy haciendo pruebas y dependiendo de la posición de apertura de la orden tu método funciona sin errores... Mi método no funciona correctamente en algunos casos...
Ayer escribí sobre esto. Depende de la orden que se haya abierto.
Ayer escribí sobre esto. Depende del orden en que lo hayas abierto.