Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 1300

 
ANDREY:

Es posible cerrar el diferencial, es decir, añadir algún valor al precio de oferta. Pero, ¿cómo se puede arreglar el tamaño de este diferencial? En los ticks reales el spread es flotante, es decir, el valor del spread es desconocido. Y por lo tanto no se puede cerrar en ticks reales ..... en mi opinión profesional, sino puramente lógica. Probablemente sólo sea posible coser lo que se sabe EXACTAMENTE PARA SIEMPRE.

¿Le sorprende Metatrader? Yo no... ya no... Por favor, ....

<FECHA> <HORA> <ABIERTO> <ALTO> <BAJO><CLOSE> <TICKVOL> <VOL> <SPREAD>
1999.01.28 00:03:00 1.14450 1.14450 1.14450 1.14450 1.14450 1 0 50
1999.01.28 00:13:00 1.14440 1.14440 1.14420 1.14420 3 0 50

 
Александр:

¿Le sorprende Metatrader? Yo no... ya no... Por favor, ....

<FECHA> <HORA> <ABIERTO> <ALTO> <BAJO><CLOSE> <TICKVOL> <VOL> <SPREAD>
1999.01.28 00:03:00 1.14450 1.14450 1.14450 1.14450 1.14450 1 0 50
1999.01.28 00:13:00 1.14440 1.14440 1.14420 1.14420 3 0 50

Es decir, el diferencial es O , o simplemente no se muestra el valor del diferencial. Y estos datos por MT4 , o por MT5. ¿Y de qué elemento del menú son estos datos?

Si hay un valor de spread pero por alguna razón no se muestra, entonces este fallo de MT es muy similar a mi fallo de MT5. Alpari dice que la profundidad del historial no afecta a la calidad de las cotizaciones de los ticks y piensa que mi problema está oculto en el propio terminal y aconseja ponerse en contacto con los desarrolladores. Así que, como en tu ejemplo, tengo el mismo valor del historial de calidad para 2010, pero por alguna razón no se muestra en MT5. Si no hubiera ninguna marca, o su número fuera demasiado pequeño (por ejemplo, 1000), no se mostraría la calidad del historial.
 

Hola.
Por favor, preste atención a un novato.
No hay errores ni advertencias al compilar, pero el EA no abre las órdenes en el probador... Y no hay errores en el registro...

¿Cuál puede ser la razón? Ya he probado diferentes cosas...

extern double Lot=0.1;            
extern int Slippage = 30;
extern int TakeProfit = 30;
extern int StopLoss   = 30;
extern int MA_Smoth_S = 60;
extern int MA_Smoth_B = 12;
extern int MA_Simpl_S = 3;
extern int MA_Simpl_B = 1;

int start()
         {
          int MA_Simpl_S_Op,      
              MA_Simpl_B_Op;      
                 
          MA_Smoth_S = iMA(NULL,0,MA_Smoth_S,0,MODE_SMMA,PRICE_CLOSE,1);
          MA_Smoth_B = iMA(NULL,0,MA_Smoth_B,0,MODE_SMMA,PRICE_CLOSE,1);
          MA_Simpl_S = iMA(NULL,0,MA_Simpl_S,0,MODE_SMA,PRICE_CLOSE,1);
          MA_Simpl_B = iMA(NULL,0,MA_Simpl_B,0,MODE_SMA,PRICE_CLOSE,1);
          MA_Simpl_S_Op = iMA(NULL,0,MA_Simpl_S,0,MODE_SMA,PRICE_CLOSE,2);
          MA_Simpl_B_Op = iMA(NULL,0,MA_Simpl_B,0,MODE_SMA,PRICE_CLOSE,2);
          
          //Условие для Buy______________________
          while(MA_Smoth_B > MA_Smoth_S)
               {
                if(MA_Simpl_B_Op < MA_Simpl_S_Op && MA_Simpl_B > MA_Simpl_S)
                  {
                   bool check = OrderSend(Symbol(),OP_BUY,Lot,NormalizeDouble(Ask, Digits),Slippage,Bid-StopLoss*Point,Ask+TakeProfit*Point,"Buy",0,0,clrGreen);
                   return(0);
                  }
               }
               
          //Условия для Sell_____________________
          while(MA_Smoth_S > MA_Smoth_B)
               {
                if(MA_Simpl_B_Op > MA_Simpl_S_Op && MA_Simpl_B < MA_Simpl_S)
                  {
                   check = OrderSend(Symbol(),OP_SELL,Lot,NormalizeDouble(Bid, Digits),Slippage,Ask+StopLoss*Point,Bid-TakeProfit*Point,"Sell",0,0,clrRed);
                   return(0);
                  }   
               }     
          return(0);
         }
 
IndependentMK:

Hola.
Por favor, preste atención a un novato.
No hay errores ni advertencias al compilar, pero el EA no abre las órdenes en el probador... Y no hay errores en el registro...

¿Cuál puede ser la razón? Ya he probado diferentes cosas...

int X = 5;
if(X > 10 && X < 3)  int ticket = OrderSend(Symbol(), OP_SELL, Доп_Лот, NormalizeDouble(Bid, Digits), 3,  NormalizeDouble(Ask + StopLoss_S * Point, Digits),  NormalizeDouble(Bid - TakeProfit_S * Point, Digits), "", MAGIC_S, 0, CLR_NONE);
 

¿Qué te parece? ¿Abrirá el probador la posición? No. Porque X no está en el rango de prueba. Por eso. Se insertan las huellas en el código y se analiza el registro del probador.

int start()
  {
   int MA_Simpl_S_Op,
       MA_Simpl_B_Op;
   MA_Smoth_S = iMA(NULL, 0, MA_Smoth_S, 0, MODE_SMMA, PRICE_CLOSE, 1);
   MA_Smoth_B = iMA(NULL, 0, MA_Smoth_B, 0, MODE_SMMA, PRICE_CLOSE, 1);
   MA_Simpl_S = iMA(NULL, 0, MA_Simpl_S, 0, MODE_SMA, PRICE_CLOSE, 1);
   MA_Simpl_B = iMA(NULL, 0, MA_Simpl_B, 0, MODE_SMA, PRICE_CLOSE, 1);
   MA_Simpl_S_Op = iMA(NULL, 0, MA_Simpl_S, 0, MODE_SMA, PRICE_CLOSE, 2);
   MA_Simpl_B_Op = iMA(NULL, 0, MA_Simpl_B, 0, MODE_SMA, PRICE_CLOSE, 2);
//Условие для Buy______________________
   Print(" MA_Smoth_B = ", MA_Smoth_B, " MA_Smoth_B = ", MA_Smoth_B);
   while(MA_Smoth_B > MA_Smoth_S)
     {
      Print(" MA_Simpl_B_Op = ", MA_Simpl_B_Op, " MA_Simpl_S_Op = ", MA_Simpl_S_Op);
      if(MA_Simpl_B_Op < MA_Simpl_S_Op)
        {
         Print(" MA_Simpl_B = ", MA_Simpl_B, " MA_Simpl_S = ", MA_Simpl_S);
         if(MA_Simpl_B > MA_Simpl_S)
           {
            bool check = OrderSend(Symbol(), OP_BUY, Lot, NormalizeDouble(Ask, Digits), Slippage, Bid - StopLoss * Point, Ask + TakeProfit * Point, "Buy", 0, 0, clrGreen);
            return(0);
           }
        }
     }
//Условия для Sell_____________________
   while(MA_Smoth_S > MA_Smoth_B)
     {
      if(MA_Simpl_B_Op > MA_Simpl_S_Op && MA_Simpl_B < MA_Simpl_S)
        {
         bool check = OrderSend(Symbol(), OP_SELL, Lot, NormalizeDouble(Bid, Digits), Slippage, Ask + StopLoss * Point, Bid - TakeProfit * Point, "Sell", 0, 0, clrRed);
         return(0);
        }
     }
   return(0);
  }
//+------------------------------------------------------------------+
Совершение сделок - Торговые операции - Справка по MetaTrader 5
Совершение сделок - Торговые операции - Справка по MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
 
ANDREY:

Es decir, el diferencial es O , o simplemente no se muestra el valor del diferencial. ¿Estos datos son de MT4 o MT5? ¿Y de qué elemento del menú son estos datos?

Si el valor del spread está ahí, pero por alguna razón no se muestra, entonces este fallo de MT es muy similar a mi fallo de MT5. Alpari dice que la profundidad del historial no afecta a la calidad de las cotizaciones de los ticks y cree que mi problema está oculto en el propio terminal, y aconseja ponerse en contacto con los desarrolladores. Así que, como en tu ejemplo, tengo el mismo valor del historial de calidad para 2010, pero por alguna razón no se muestra en MT5. Si no hubiera ninguna marca, o su número fuera demasiado pequeño (por ejemplo, 1000), no se mostraría la calidad del historial.

Aquí está la cotización de MT4

2007.02.12, 00:00, 0.9051, 0.9087, 0.9047, 0.907, 3739

Aquí está MT5
1999.01.28 00:03:00 1.14450 1.14450 1.14450 1.14450 1 0 50
1999.01.28 00:13:00 1.14440 1.14440 1.14420 1.14420 3 0 50

Siente la diferencia... Hace tiempo que dejé de trabajar con garrapatas. Y tal y como están las cosas, no tengo suficiente energía para luchar contra los distintos "manitas/funcionarios".

Ponga el mismo Asesor Experto en otra empresa de corretaje. Qué problema con las garrapatas allí. Incluso en Open, incluso abriendo y cerrando al mismo tiempo. La diferencia es AMBOS. Tal vez alguien haya solucionado este problema (garrapatas, etc.), y yo no sé cómo afrontarlo. Y en MT5 también hay un spread...

 
Александр:

Aquí están las cotizaciones de MT4

2007.02.12, 00:00, 0.9051, 0.9087, 0.9047, 0.907, 3739

Aquí está MT5
1999.01.28 00:03:00 1.14450 1.14450 1.14450 1.14450 1 0 50
1999.01.28 00:13:00 1.14440 1.14440 1.14420 1.14420 3 0 50

Siente la diferencia... Hace tiempo que dejé de trabajar con garrapatas. Y tal y como están las cosas, no tengo la suficiente energía para luchar contra los distintos "manitas/funcionarios".

Ponga el mismo Asesor Experto en otra empresa de corretaje. Qué problema con las garrapatas allí. Incluso en Open, incluso abriendo y cerrando al mismo tiempo. La diferencia es AMBOS. Tal vez alguien haya solucionado este problema (garrapatas, etc.), y yo no sé cómo afrontarlo. Y en MT5 también hay un spread...

Claro que tú estás más avanzado en todas estas cuestiones que yo ...... por eso no entiendo tu proceso de pensamiento en algunos puntos...
Cuando traté de usar Mt4 por ejemplo mis códigos mostraban muy buenos resultados con los códigos Tiki ... Luego me enteré de que mi muy buen resultado no es del todo exacto, porque MT4 no tiene en cuenta el spread real y que el spread real de MT4 en Alpari no se puede tener en cuenta porque flota (especialmente por la noche). Y mi Asesor Experto mostró los mejores resultados sólo de 22 a 1.

En este foro me dijeron que durante las pruebas el spread real (que es exactamente flotante) se tiene en cuenta sólo en MT5. Esto me llevó a estudiar MT5 y ejecutar mi código en él en el modelo - cada tick basado en ticks REALES. Después de eso me quedé sobrio, porque mi código no mostró tan buenos resultados como en MT4. Por otro lado, algunos puntos positivos del código, que estaban en MT4, se confirmaron también en MT5. Y me alegré de poder mejorar mi código, estando seguro de que los resultados de las pruebas se acercaban al comercio real.

Por ello, no entiendo muy bien (quizás por falta de conocimientos y experiencia) su actitud negativa a las pruebas sobre el historial de garrapatas. Al fin y al cabo, si se abren operaciones no por Сlose (como has hecho tú), sino a cualquier precio que se especifique en la solicitud de apertura de una orden (como hago yo), ¿cuál es entonces la desventaja de probar en ticks?
La posible desventaja puede ser, como me parece, sólo un conjunto incompleto de ticks y su omisión en las cotizaciones cargadas, pero el número de ticks, en comparación con el número de velas de un minuto, es enorme. Y todavía no he investigado si los ticks que faltan (como las velas) pueden ser detectados en absoluto y añadidos al archivo de ticks. Por eso tengo que confiar en la promesa de Alpari hasta ahora, que tienen un historial de ticks COMPLETO desde 2001.
Y sigo sin entender la diferencia, que debería sentir mirando los candelabros que has traído para demostrar alguna idea tuya
.

No quiero probar mi EA con otro broker, porque si alguna vez me atrevo a operar en vivo, será con Alpari. Además, tú mismo has dicho que este broker tiene los datos de tick más completos y fiables.

Estoy seguro de que tiene una información valiosa para mí, que, por desgracia, no soy capaz de tomar de sus palabras.

Тестирование торговых стратегий на реальных тиках
Тестирование торговых стратегий на реальных тиках
  • www.mql5.com
В данной статье мы покажем результаты тестирования простой торговой стратегии в 3-х режимах: " OHLC на M1 " с использованием только цен Open,High, Low и Close минутных баров; затем детальное моделирование в режиме " Все тики ", и самое достоверное тестирование в режиме " Каждый тик на основе реальных тиков " с использованием записанных тиков из...
 
ANDREY:


Su actitud negativa a las pruebas sobre la historia de las garrapatas. Al fin y al cabo, si se abren operaciones no por Сlose (como tú) sino por cualquier precio que se especifique en la solicitud de apertura de una orden (como hago yo), entonces ¿cuál es la desventaja de probar en ticks?

Y sigo sin entender cuál es la diferencia, que debería sentir al mirar los parámetros de los candelabros, que has traído para demostrar tu idea.

No quiero probar mi EA con otro broker, porque si lo hago, operaré en dinero real sólo con Alpari. Además, tú mismo has dicho que este broker tiene los datos de tick más completos y fiables.

Estoy seguro de que tiene información valiosa para mí, que, por desgracia, no he podido captar de sus palabras hasta ahora.

1. Actitud negativa... No, no es negativo. Todas las empresas de corretaje FILTRAN las cotizaciones. Los filtros los distorsionan. He optado por escribir un EA que no critica la calidad de las cotizaciones.

2. La diferencia en las cotizaciones entre MT4 y MT5 es que yo empecé con que MT5 tiene un spread PARA CADA TIPO. ¿Por qué? No lo sé. Fuera de línea, este diferencial está al máximo. El offline se pasea por ahí. Es decir, debemos hacer un sistema que no sea crítico. Véase el punto 1 G).

Eso es todo. No hay subtexto.

 
Александр:

1. Una actitud negativa... No es negativo. Es que presionas, esperas semanas a que terminen las pruebas, y luego resulta que las cotizaciones no son lo suficientemente buenas y tiene un impacto ENORME en los resultados. Todos los DCs FILTRAN las cotizaciones. Los filtros los distorsionan. He optado por escribir un EA que no critica la calidad de las cotizaciones.

2. La diferencia en las cotizaciones entre MT4 y MT5 es que empecé con que MT5 tiene un spread PARA CADA TIPO. ¿Por qué? No lo sé. Fuera de línea, este diferencial está al máximo. El offline se pasea por ahí. Es decir, debemos hacer un sistema que no sea crítico. Véase el punto 1 G).

Eso es todo. No hay subtexto.

" ....... y luego resulta que las cotizaciones no son lo suficientemente buenas y eso afecta mucho a los resultados. Los filtros los distorsionan. ...."


Supongamos que hay un tick de cotizaciones reales de 2008 para un par descargado automáticamente desde el servidor de Alpari a MT5 para probarlo. ¿Cómo se puede saber si estas cotizaciones no son lo suficientemente buenas? En general, ¿con qué criterios evalúa la calidad de los presupuestos? ¿Qué conjunto de parámetros debe tener las cotizaciones de garrapatas de calidad óptima?
Como dice Alpari, las cotizaciones reales de las garrapatas no se modelan ni se generan, sino que se toman de la historia registrada. Según tengo entendido .... trajo otra garrapata cualquier cita - Alpari garrapata con esta cita registrada y grabada. Y así con cada garrapata. Como resultado, tienen una enorme base de datos de ticks con precios, que descargan en MT5 para hacer pruebas. Y sólo si una cotización necesaria o su secuencia falta por alguna razón, sólo entonces Alpari, en lugar de omitir los ticks reales con los precios, estos ticks son simulados según un algoritmo cercano a la apariencia de los ticks reales.

Por eso no entiendo muy bien qué quejas se pueden hacer sobre la calidad de las cotizaciones. Como alternativa, puedo imaginar que ha llegado un tick y ha hecho que el precio, por ejemplo, sea de 1,00061. Pero Alpari ha asignado un precio diferente a este tick, por ejemplo, 1,00077. O pueden adjuntar a esta garrapata una propagación diferente a la que había en la realidad. Pero si realmente es así, un extraño no puede detectar esta alteración, especialmente en una historia profunda. Así que, por supuesto, es posible afirmar que Alpari ha filtrado esta garrapata con la cotización. Pero me parece prácticamente imposible demostrarlo. Porque nadie más que el especialista de Alpari en cuestión sabe cuál era el precio primario o el spread del tick filtrado. La única variante posible es que este especialista revele este secreto a alguien, e incluso confirme el hecho por escrito. Pero, según me parece, esta información con pruebas documentales aparecería inmediatamente en este foro.


"... Todos los CC son citas de filtrado. Los filtros los distorsionan....."


He leído sobre esto muchas veces. Pero esta filtración era sobre el comercio real. Y me parece que esa filtración es razonable para las empresas de corretaje. Con su ayuda pueden evitar grandes pérdidas, si una gran cantidad de posiciones con un volumen muy grande puede cerrar en Take Profit, si la empresa de corretaje no entró en el mercado. ¿Y de qué sirve la filtración cuando una empresa de corretaje ofrece presupuestos para las pruebas?

Основы тестирования в MetaTrader 5
Основы тестирования в MetaTrader 5
  • www.mql5.com
Идея автоматической торговли привлекательна тем, что торговый робот может без устали работать 24 часа в сутки и семь дней в неделю. Робот не знает усталости, сомнений и страха,  ему не ведомы психологические проблемы. Достаточно четко формализовать торговые правила и реализовать их в виде алгоритмов, и робот готов неустанно трудиться. Но прежде...
 

¿Puedes decirme cómo obtener un ratio de x2 al cerrar una posición con pérdidas?

Ahora tengo 1,4,9,16 - y necesito 2,4,8,16.

¿Qué hay que arreglar en el código?

 int cn=0,c=0;
  datetime dt=0;
   for(int i=OrdersHistoryTotal()-1; i>=0; i--){
    if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY) && OrderType()<=1) {
     if((OrderSymbol()==mSymbol)&&(OrderMagicNumber()==Magic)) {
       double Profit=OrderProfit()+OrderCommission()+OrderSwap();
        if(Profit<0) {  
        c++;   
        cn=(int)MathPow(c,2); // что здесь исправить?
        } else break;     
 }}}
   Comment(cn);
 
Denis Pershin:

Me pueden decir cómo obtener un multiplicador de x2 cuando una posición se cierra con pérdidas.

Ahora tengo 1,4,9,16 - y necesito 2,4,8,16.

¿Qué hay que arreglar en el código?

Hay que arreglar todo.

Su código busca el primer pedido del historial de pedidos con el símbolo y el número mágico especificados

A continuación se calcula el número de pedidos no rentables y se multiplica por 2.

busca en el foro"funciones útiles de MMC" y haz algo así

- encontrar el billete de la última orden para nuestro símbolo y nuestro magik

- obtener OrderProfit() y OrderLots() de la entrada encontrada y multiplicar por su coeficiente de martingala, si es necesario

ZS: puede haber una solución lista

Только "Полезные функции от KimIV".
Только "Полезные функции от KimIV".
  • 2011.02.18
  • www.mql5.com
Все функции взяты из этой ветки - http://forum.mql4...
Razón de la queja: