Tomé el código para la contabilidad, la apertura y el cierre de órdenes del tutorial (tradingexpert.mq4). El código está pensado para trabajar con una posición. Necesito tener cinco posiciones.
Hemos modificado ligeramente el código de la siguiente manera (líneas cambiadas en negrita), para que las posiciones se abran en la cantidad correcta, pero cuando invertimos, sólo se cierra una posición y se abre la inversa enseguida.
¿Cómo puedo hacer que todas las posiciones se cierren en la inversión y luego sólo se abra la posición contraria?
// Учёт ордеров
Symb=Symbol(); // Название фин.инстр.
Total=0; // Количество ордеровfor(int i=1; i<=OrdersTotal(); i++) // Цикл перебора ордер
{
if (OrderSelect(i-1,SELECT_BY_POS)==true) // Если есть следующий
{ // Анализ ордеров:if (OrderSymbol()!=Symb)continue; // Не наш фин. инструмif (OrderType()>1) // Попался отложенный
{
Alert("Обнаружен отложенный ордер. Эксперт не работает.");
return; // Выход из start()
}
Total++; // Счётчик рыночн. ордif (Total>5) // Было не более одного орд, стало не более пяти
{
Alert("Несколько рыночных ордеров. Эксперт не работает.");
return; // Выход из start()
}
Ticket=OrderTicket(); // Номер выбранн. орд.
Tip =OrderType(); // Тип выбранного орд.
Price =OrderOpenPrice(); // Цена выбранн. орд.
SL =OrderStopLoss(); // SL выбранного орд.
TP =OrderTakeProfit(); // TP выбранного орд.
Lot =OrderLots(); // Количество лотов
}
}
// Открытие ордеровwhile(true) // Цикл закрытия орд.
{
if (Total < 5 && Opn_B==true) // Открытых орд. нет +. Было Total < 1, стало Total < 5
{ // критерий откр. BuyRefreshRates(); // Обновление данных
SL=Bid - New_Stop(StopLoss)*Point; // Вычисление SL откр.
TP=Bid + New_Stop(TakeProfit)*Point; // Вычисление TP откр.Alert("Попытка открыть Buy. Ожидание ответа..");
Ticket=OrderSend(Symb,OP_BUY,Lts,Ask,2,SL,TP);//Открытие Buyif (Ticket > 0) // Получилось :)
{
Alert ("Открыт ордер Buy ",Ticket);
return; // Выход из start()
}
if (Fun_Error(GetLastError())==1) // Обработка ошибокcontinue; // Повторная попыткаreturn; // Выход из start()
}
// Закрытие ордеровwhile(true) // Цикл закрытия орд.
{
if (Tip==0 && Cls_B==true) // Открыт ордер Buy..
{ //и есть критерий закрAlert("Попытка закрыть Buy ",Ticket,". Ожидание ответа..");
RefreshRates(); // Обновление данных
Ans=OrderClose(Ticket,Lot,Bid,2); // Закрытие Buyif (Ans==true) // Получилось :)
{
Alert ("Закрыт ордер Buy ",Ticket);
break; // Выход из цикла закр
}
if (Fun_Error(GetLastError())==1) // Обработка ошибокcontinue; // Повторная попыткаreturn; // Выход из start()
}
Tomé el código para la contabilidad, la apertura y el cierre de órdenes del tutorial (tradingexpert.mq4). El código está pensado para trabajar con una posición. Necesito tener cinco posiciones.
Hemos modificado ligeramente el código de la siguiente manera (líneas cambiadas en negrita), para que las posiciones se abran en la cantidad correcta, pero cuando invertimos, sólo se cierra una posición y se abre la inversa enseguida.
¿Cómo puedo hacer que todas las posiciones se cierren en la inversión y luego sólo se abra la posición contraria?
Haz de Ticket un array Ticket[5], almacena los 5 tickets en él. Al cerrar, recorra todos los tickets como corresponde.
No se puede considerar un principiante por el nivel de uso de las bibliotecas. Habiendo mirado su código, me llevaría dos semanas resolverlo. Si no más. Así que creo que no obtendrás una respuesta.
Vitya, no hay que entender nada - el hombre quiere hacer que las variables globales de un "sandbox" (EA con sus bibliotecas) sean visibles en el otro "sandbox" (biblioteca compilada). :)))
No soy un progamer, soy un constructor de código. Así que construí este indicador (veo que se puede hacer una exposición de texto, no un archivo t-eso es lo que voy a hacer para que sea más fácil de entender.
Muestra la suma de puntos y la dinámica de su suma durante la semana - en los marcos temporales más pequeños, si el movimiento anterior continúa desde Close[i+2] hasta Close[i+1] el movimiento actual Close[i] se suma, si es en contra - se resta. Debo prescribirlo para que el programa vea el cierre del viernes- en lugar de cerrar la barra-. Sé que se puede hacer con DayOfWeek y 5 (número del viernes), pero ¿cómo puedo hacerlo de forma práctica? Ayuda.
TarasBY: Vitya, aquí no hay que arreglar nada - la persona quiere que las variables globales de un sandbox (EA con sus librerías) sean visibles en otro sandbox (librería compilada). :)))
¡Igor, un poco equivocado! En el "sandbox" (biblioteca compilada) sólo se declaran las funciones y todas las variables en el inluder. Y las variables que se declaran en el inluder (archivo include) deberían ser visibles en el owl, porque he insertado el inluder directamente en el owl. ¿No estás de acuerdo?
No soy un progamer, soy un constructor de código. Así que construí este indicador (veo que se puede hacer una exposición de texto, no un archivo t-eso es lo que voy a hacer para que sea más fácil de entender.
Muestra la suma de puntos y la dinámica de su suma durante la semana - en los marcos temporales más pequeños, si el movimiento anterior continúa desde Close[i+2] hasta Close[i+1] el movimiento actual Close[i] se suma, si es en contra - se resta. Debo prescribirlo para que el programa vea el cierre del viernes- en lugar de cerrar la barra-. Sé que se puede hacer con DayOfWeek y 5 (número del viernes), pero ¿cómo puedo hacerlo de forma práctica? Ayuda.
¡Igor, un poco equivocado! Sólo las funciones están en la caja de arena (biblioteca compilada), y todas las variables se declaran en el inluder. Y las variables que se declaran en el inluder (archivo include) deberían ser visibles en el owl, porque he insertado el inluder directamente en el owl. ¿No estás de acuerdo?
entonces, ¿qué tiene que ver la referencia a la biblioteca compilada?
No, no lo hace. Me explico - su foro es como una esperanza para el último reducto competente de prog. y la inserción de tamaño - así es como la escritura PERIOD_W1 ve, pero ni el uso de tamaño ni el uso de puntos de referencia fijos como las fechas de obtener cualquier efecto deseado. He publicado una pregunta específica sobre el viernes - por cierto tu código no compila porque dice "versión" - propiedad desconocida, así que si no sabes cómo poner DayOfWeek y 5 (el número del viernes) en el código otras opciones no ayudarán .
Vitek2010: No lo hace. Me explico - su foro es como una esperanza para el último reducto competente de prog. y la inserción de tamaño - así es como ve la escritura PERIOD_W1 pero ni el uso de tamaño ni el uso de fechas fijas como fechas consiguen ningún efecto deseado. He publicado una pregunta específica sobre el viernes - por cierto tu código no compila porque dice "versión" - propiedad desconocida, así que si no sabes cómo poner DayOfWeek y 5 (el número del viernes) en el código otras opciones no ayudarán .
TimeDayOfWeek(Time[i]) no especifica Time[i] sino una fecha concreta con el formato D'2014.01.27'.
Y si necesita determinar qué día es, simplemente llame a DayOfWeek().
Querida, necesito ayuda.
Tomé el código para la contabilidad, la apertura y el cierre de órdenes del tutorial (tradingexpert.mq4). El código está pensado para trabajar con una posición. Necesito tener cinco posiciones.
Hemos modificado ligeramente el código de la siguiente manera (líneas cambiadas en negrita), para que las posiciones se abran en la cantidad correcta, pero cuando invertimos, sólo se cierra una posición y se abre la inversa enseguida.
¿Cómo puedo hacer que todas las posiciones se cierren en la inversión y luego sólo se abra la posición contraria?
Querida, necesito ayuda.
Tomé el código para la contabilidad, la apertura y el cierre de órdenes del tutorial (tradingexpert.mq4). El código está pensado para trabajar con una posición. Necesito tener cinco posiciones.
Hemos modificado ligeramente el código de la siguiente manera (líneas cambiadas en negrita), para que las posiciones se abran en la cantidad correcta, pero cuando invertimos, sólo se cierra una posición y se abre la inversa enseguida.
¿Cómo puedo hacer que todas las posiciones se cierren en la inversión y luego sólo se abra la posición contraria?
No se puede considerar un principiante por el nivel de uso de las bibliotecas. Habiendo mirado su código, me llevaría dos semanas resolverlo. Si no más. Así que creo que no obtendrás una respuesta.
No soy un progamer, soy un constructor de código. Así que construí este indicador (veo que se puede hacer una exposición de texto, no un archivo t-eso es lo que voy a hacer para que sea más fácil de entender.
Muestra la suma de puntos y la dinámica de su suma durante la semana - en los marcos temporales más pequeños, si el movimiento anterior continúa desde Close[i+2] hasta Close[i+1] el movimiento actual Close[i] se suma, si es en contra - se resta. Debo prescribirlo para que el programa vea el cierre del viernes- en lugar de cerrar la barra-. Sé que se puede hacer con DayOfWeek y 5 (número del viernes), pero ¿cómo puedo hacerlo de forma práctica? Ayuda.
Vitya, aquí no hay que arreglar nada - la persona quiere que las variables globales de un sandbox (EA con sus librerías) sean visibles en otro sandbox (librería compilada). :)))
¡Igor, un poco equivocado! En el "sandbox" (biblioteca compilada) sólo se declaran las funciones y todas las variables en el inluder. Y las variables que se declaran en el inluder (archivo include) deberían ser visibles en el owl, porque he insertado el inluder directamente en el owl. ¿No estás de acuerdo?
No soy un progamer, soy un constructor de código. Así que construí este indicador (veo que se puede hacer una exposición de texto, no un archivo t-eso es lo que voy a hacer para que sea más fácil de entender.
Muestra la suma de puntos y la dinámica de su suma durante la semana - en los marcos temporales más pequeños, si el movimiento anterior continúa desde Close[i+2] hasta Close[i+1] el movimiento actual Close[i] se suma, si es en contra - se resta. Debo prescribirlo para que el programa vea el cierre del viernes- en lugar de cerrar la barra-. Sé que se puede hacer con DayOfWeek y 5 (número del viernes), pero ¿cómo puedo hacerlo de forma práctica? Ayuda.
¿Se adaptará?
¡Igor, un poco equivocado! Sólo las funciones están en la caja de arena (biblioteca compilada), y todas las variables se declaran en el inluder. Y las variables que se declaran en el inluder (archivo include) deberían ser visibles en el owl, porque he insertado el inluder directamente en el owl. ¿No estás de acuerdo?
¿Está bien?
No lo hace. Me explico - su foro es como una esperanza para el último reducto competente de prog. y la inserción de tamaño - así es como ve la escritura PERIOD_W1 pero ni el uso de tamaño ni el uso de fechas fijas como fechas consiguen ningún efecto deseado. He publicado una pregunta específica sobre el viernes - por cierto tu código no compila porque dice "versión" - propiedad desconocida, así que si no sabes cómo poner DayOfWeek y 5 (el número del viernes) en el código otras opciones no ayudarán .
TimeDayOfWeek(Time[i]) no especifica Time[i] sino una fecha concreta con el formato D'2014.01.27'.
Y si necesita determinar qué día es, simplemente llame a DayOfWeek().
En TimeDayOfWeek(Time[i]) no se establece Time[i] sino una fecha concreta con el formato D'2014.01.27'.
Si quiere determinar qué día es, simplemente llame a DayOfWeek().