[¡AVISO CERRADO!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen. No puedo ir a ningún sitio sin ti. - página 965

 
Vinin:


DC - Mesa de contratación

En el probador para otros instrumentos sólo se puede obtener el precio de apertura en la barra cero, los ticks para otros instrumentos no se modelan, el entorno del mercado prácticamente no está disponible.

Las operaciones con otros instrumentos no se abren.

Si necesita realizar correctamente un análisis multidivisa, es mejor utilizar MT5. Allí hay un comprobador multidivisa.


¿Es posible operar en cuentas reales a través de MT5? ¿O es sólo para las cuentas de demostración hasta ahora?
 
ViktorF:

¿Es posible operar en cuentas reales a través de MT5? ¿O es sólo para las cuentas de demostración?

Algunas empresas de corretaje ofrecen este servicio.
 
Ayúdenme, por favor. He hecho un pequeño código, pero hay un error con los paréntesis... ¿qué pasa?
//+------------------------------------------------------------------+
void line()
{
 ObjectCreate("MILINE", 1, 0, Time[0], Bid-5*Point);
 
 if (Bid<ObjectGet("MILINE", 1) 
 {
 ObjectSet("MILINE", 1, (ObjectGet("MILINE", 1)-1*Point));
 return;
   }
 
 
 if (Bid>ObjectGet("MILINE", 1)
 
 {
  ObjectSet("MILINE", 1, (ObjectGet("MILINE", 1)+1*Point));
 return;
   }
   //+------------------------------------------------------------------+
  }
 
143alex:
Pregúntame por favor. He hecho un pequeño código, aparece un error con paréntesis... ¿qué pasa?


¿Es difícil calcular los paréntesis tú mismo? ¿O es imposible comentar un trozo de código con un error?

//+------------------------------------------------------------------+
void line(){
 ObjectCreate("MILINE", 1, 0, Time[0], Bid-5*Point);
 if (Bid<ObjectGet("MILINE", 1)) { ObjectSet("MILINE", 1, ObjectGet("MILINE", 1)-1*Point); return; }
 if (Bid>ObjectGet("MILINE", 1)) { ObjectSet("MILINE", 1, ObjectGet("MILINE", 1)+1*Point); return; }
   //+------------------------------------------------------------------+
  }

ZS: todo lo mismo no funcionará - no se comprueba si el objeto está creado, no se redibuja la ventana para comprobar la creación de un objeto

 
IgorM:


¿Es difícil calcular los paréntesis tú mismo? ¿O es imposible comentar un trozo de código con un error?

HH: no funcionará de todos modos - no se comprueba si el objeto fue creado, no se redibuja la ventana para comprobar si el objeto fue creado

Gracias. Sólo estoy aprendiendo... Algún día llegaré a las inspecciones.
 
143alex:
Gracias. Sólo estoy aprendiendo... Algún día llegaré a las inspecciones.
En el probador de la m-1 funciona... muy interesante para los experimentos sobre los movimientos bruscos. Gracias de nuevo.
 
 void Send_BUYLIMIT(double Lot,double cena)
{
if ( OrdersTotal()==0  ) OrderSend(Symbol(),OP_BUY,0.01,Ask,10,0,Bid+10*Point);
if (OrderType()==OP_BUY && OrdersTotal()<=4)OrderSend(Symbol(),OP_BUYLIMIT,Lot,cena,10,0,cena+tp*Point,0,123,0,Blue);
 
}
   return(0);


¿Cómo puedo abrir una orden de compra y establecer 4 órdenes pendientes por límite? Un total de 5 órdenes, 1 orden de mercado y 4 órdenes pendientes. ¿Cuál es el error aquí?

 

Hola a todos.

Me pueden decir por favor: después de probar en el historial, ¿hay alguna forma de obtener el comentario o número mágico de cada operación realizada, o alguna otra forma de identificar las operaciones? Permítanme que intente explicar el significado. Supongamos que programé algunos patrones y ejecuté el Asesor Experto en el historial y, como suele suceder, falla. Sería interesante ver, cuál de los patrones y bajo qué condiciones de mercado está perdiendo más y más a menudo, y cuál (si alguno) muestra al menos algún beneficio.

Gracias de antemano por las respuestas.

 
artmedia70:


Artemida70, gracias por el consejo de encontrar errores al depurar el programa.

Tengo un par de preguntas más, por favor contesten en la medida de lo posible.

Primera pregunta. Durante las pruebas muestro información técnica sobre el nivel de los deslices, la tasa de crecimiento de la tendencia, etc. con la ayuda de alertas. Al final de la prueba estoy revisando el diario con las operaciones y la información técnica en el momento de la apertura de la orden. Reviso todas las entradas en el registro usando el deslizador. Parece que la información sobre las operaciones más recientes es visible, mientras que las primeras operaciones y en la mitad del intervalo de prueba no están disponibles. Pregunta: ¿Cómo puedo ver toda la información de todo el periodo que se está comprobando?

Segunda pregunta. En uno de los foros cerrados he visto que se habla de la existencia de un libro más completo sobre el lenguaje MQL4 y también sobre un pequeño manual o instrucción para el terminal MT4, en el que se dan las claves de los operadores que permiten sacar el Asesor Experto de la operativa, ponerlo de prueba, etc. de forma programática.

PREGUNTA: ¿puede ayudar a conseguir esta información?

GRACIAS

 

He creado un indicador personalizado con los siguientes datos externos:

//------- Параметры индикатора --------------------------------------+
extern datetime  Zero_Point      = D'2010.10.10 00:00';
extern int       cnt_Bars        = 0;
extern string    Lots            = "0.1";                            // Размеры лотов
extern string    BUY_Pairs       = "AUDJPY;AUDCAD;EURJPY;GBPJPY;GBPUSD;NZDUSD;CADJPY";
extern string    SELL_Pairs      = "AUDUSD;CHFJPY;EURCHF;EURUSD;GBPCHF;NZDJPY;USDJPY";
extern bool      CalculateInPips = False;

Lo llamo desde el EA:

string List = DSDig (MathMax (Lot, gd_Lot[gi_cur_Basket]));
        Print ("Zero_Point = ", Zero_Point, "; Lot = ", List, "; Basket Long = ", cur_Basket_Long, "; Basket Short = ", cur_Basket_Short);
        iCustom (Symbol(), TF_ind, "i-PSI@EquityBasket", Zero_Point, 0, List, cur_Basket_Long, cur_Basket_Short, False, 0, 0);

Registro de EA:

20:13:54 e-PSI@BasketBull_v2.4 EURUSD,H4: Zero_Point = 1288915200; Lot = 0.10; Basket Long = USDJPY;USDCHF;CADJPY;CADCHF; Basket Short = NZDUSD;AUDCAD;EURJPY;EURGBP;AUDUSD;EURCAD;EURCHF;EURUSD

Aquí tengo que los datos se transmiten correctamente.

Veamos el registro del indicador:

Basket LONG[8]: 0 - NZDUSD; 1 - AUDCAD; 2 - EURJPY; 3 - EURGBP; 4 - AUDUSD; 5 - EURCAD; 6 - EURCHF; 7 - EURUSD; 
Basket SHORT[7]: 0 - AUDUSD; 1 - CHFJPY; 2 - EURCHF; 3 - EURUSD; 4 - GBPCHF; 5 - NZDJPY; 6 - USDJPY; 
20:13:34 i-PSI@EquityBasket EURUSD,M30: List Lot = USDJPY;USDCHF;CADJPY;CADCHF
20:13:34 i-PSI@EquityBasket EURUSD,M30: Zero_Point = 0; Lot = 0.00

Valor del punto cero en el EA:

extern datetime Zero_Point          = D'2010.10.10 00:00';
Transmitir valor igual a (del registro EA)
Zero_Point = 1288915200

y obtenemos 0 en el indicador. ¿Puede alguien decirme cuál es el problema?