[¡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 288

 
TheXpert писал(а) >>

Tut. La expresión que has citado merece la pena.

Gracias.

 
Buenos días a todos). Tengo el sistema de comercio de Grebenshchikov. Trabaja en el canal y en la ruptura del canal y la entrada por órdenes pendientes fuera de un plano. Me gustaría probarlo en el historial y actualizar el MM con él. ¿Quizás alguien ya ha implementado este sistema en el código? ¿Qué elementos pueden utilizarse para construir un sistema de este tipo? He aquí la descripción del sistema http://www.fx4u.ru/rinki-forex-commodities-cfd-futures-f14/strategii-opitnih-f4/ts-grebenschikova-si-forex-i-mi-t529.html
 

Tengo una pregunta

puede hacer un convertidor de periodos para mostrar un gráfico promedio de los cuatro pares principales ...

Considerando que el dólar-yen tiene un precio de, digamos, 101,50, tradúzcalo al estado de 1,0150, y luego utilícelo para construir un gráfico medio...

Sí y sería bueno utilizar este gráfico medio en la prueba y la optimización ...

gracias de antemano por escuchar ...

 

¡Hola a todos y todas!

Este es el código (sólo la función de inicio)

//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
    // Узнаем уровень стопов и спрэд
    int Spread = MarketInfo(Symbol(), MODE_SPREAD);
    int StopLevel = MarketInfo(Symbol(), MODE_STOPLEVEL);

    // Рассчитываем значения средних на 0-ом и 1-ом барах
    double MAF_0 = iMA(NULL, 0, MAFP, 0, 1, 1, 0);
    double MAF_1 = iMA(NULL, 0, MAFP, 0, 1, 1, 1);
    double MAS_0 = iMA(NULL, 0, MASP, 0, 1, 1, 0);
    double MAS_1 = iMA(NULL, 0, MASP, 0, 1, 1, 1);
    
   // ----открытие позиции Buy покупка-----
    if( MAF_0 > MAF_1 && MAS_0 > MAS_1) { //-условие на покупку--- 
    if( isCloseLastPosByTake( NULL, OP_SELL, MagicNumber) ==true) {
     if( CheckOrders(OP_SELL))                                      {
       if( StopLoss <= StopLevel+ Spread)
         double SL = 0;        else         SL = Ask - StopLoss*Point;
       if( TakeProfit <= StopLevel- Spread)
         double TP = 0;        else         TP = Ask + TakeProfit*Point;
       if(!OrderSend(Symbol(), OP_BUY, Lots, Ask, 5, SL, TP, NULL, MagicNumber))
         Print("Не открыт ордер Buy. Ошибка №", GetLastError()); 
                }
               }
              }
   //-------------------Конец блока покупки ------------------
    
  //  ----- Открытие позиции Sell продажа------------  
    if( MAF_0 < MAF_1 && MAS_0 < MAS_1) { //-условие на продажу---
    if( CheckOrders(OP_BUY))                                     {
      if( StopLoss <= StopLevel+ Spread)
         SL = 0;        else         SL = Bid + StopLoss*Point;
       if( TakeProfit <= StopLevel- Spread)
         TP = 0;        else         TP = Bid - TakeProfit*Point;
       if(!OrderSend(Symbol(), OP_SELL, Lots, Bid, 5, SL, TP, NULL, MagicNumber))
         Print("Не открыт ордер Sell. Ошибка №", GetLastError()); 
                 }
                }
   //-------------------конец блока продажи -------------------
     
   return(0);
  }//+----------КОНЕЦ ФУНКЦИИ СТАРТ -------------------+

//ЖЖЖЖЖЖЖ Другие вызываемые пользовательские функции ЖЖЖЖЖЖ
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.05.2008                                                     |
//|  Описание : Возвращает флаг закрытия                                       |
//|  последней позиции по тейку.                                               |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
bool isCloseLastPosByTake(string sy="", int op=-1, int mn=-1) {
  datetime t;
  double   ocp, otp;
  int      dg, i, j=-1, k=OrdersHistoryTotal();

  if ( sy=="0") sy=Symbol();
  for ( i=0; i< k; i++) {
    if (OrderSelect( i, SELECT_BY_POS, MODE_HISTORY)) {
      if (OrderSymbol()== sy || sy=="") {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if ( op<0 || OrderType()== op) {
            if ( mn<0 || OrderMagicNumber()== mn) {
              if ( t<OrderCloseTime()) {
                t=OrderCloseTime();
                j= i;
              }} }}}}}

  if (OrderSelect( j, SELECT_BY_POS, MODE_HISTORY)) {
    dg=MarketInfo( sy, MODE_DIGITS);
    if ( dg==0) if (StringFind(OrderSymbol(), "JPY")<0) dg=4; else dg=2;
    ocp=NormalizeDouble(OrderClosePrice(), dg);
    otp=NormalizeDouble(OrderTakeProfit(), dg);
    if ( ocp== otp) return( True);
  }
  return( False);
}
 

Aquí, una condición es más o menos implementado, como se recomienda por rid. Con sus comentarios y correcciones.

El Asesor Experto mismo compila, comercia....... No es cierto.......

Traté de poner sólo long-n un comercio en el probador, poner sólo short-n un comercio también.

La lógica es simple, cuando la condición de compra se cumple, el EA hace un trato, el trato se cierra en el take profit.

Y entonces el asesor espera CUANDO SE PRESENTA LA SIGUIENTE CONDICIÓN DE COMERCIO. SÓLO QUE ESTA CONDICIÓN DEBE SER OPUESTA A LA ANTERIOR.

Т. Es decir, si la operación fue sobre BAY, la siguiente debería ser sobre SHELL.

 

También. En este hilo, sólo que mucho antes, se planteó una pregunta similar a la mía. Se trataba de banderas. Por eso todo este alboroto.

 

Otra pregunta.

Abrir 2 ventanas, la primera 5 minutos, la segunda 15 minutos.

Dibuja MAKs en ambos (10). ES CORRECTO si en el gráfico de 5 minutos dibujamos una MA con (30), se corresponde con una MA con (10) en el gráfico de 15 minutos.

Para los gráficos de 15 y 30 el coeficiente será de 2.

Para los gráficos de 30 y 1 hora el coeficiente es 2.

Para los gráficos de 1h y 4h el coeficiente será 4.

¿Es esto cierto o no????????????

 

igrok2008 писал(а) >>

¿Es esto cierto o no????????????

Estrictamente hablando, no. Pero muy cerca de ello.

 

Hola.

Es la primera vez que escribo en el foro. Esperemos que no sea la última. Soy un novato comparado con lo que escriben en el foro. Aprendí el lenguaje en un mes, hace aproximadamente medio año, con el "Libro de texto sobre programación en MQL4" de Sergei Korolev.

Lo estudié hace un mes más o menos con el "Libro de texto sobre programación en MQL4" de Sergei Kovalev. Ya he escrito varios Asesores Expertos y los he estado usando desde entonces. Escribí algunos Asesores Expertos, indicadores personalizados,

...indicadores personalizados, scripts. Siempre he tratado de encontrar respuestas a todas las preguntas que no entiendo en el foro. Sin embargo, he estado luchando con un detalle aparentemente menor y no puedo encontrar las respuestas.

Por favor, ayúdame.

La pregunta es sobre el uso de #include <XXX.mqh>, he releído todo el foro, pero no encuentro respuesta. En uno de los hilos dice:

"...También puedo añadir que el archivo eX4 es autosuficiente - para que funcione,
no requiere incluir el código fuente de las funciones personalizadas.
Puedes copiar el archivo ex4, enviarlo a otros operadores y utilizarlo allí.
Es completo independientemente de la tecnología para conseguirlo".

Este es el problema. Al pasar el EA no "ve" la función, pero escribe al compilar - no puede abrir el archivo del programa .

Aunque en include en el otro terminal apareció una entrada no compilada en ex4.

¿Puede explicar el error? Gracias.

 
gvi2504 >> :

... Al pasar el EA, no "ve" la función, pero escribe al compilar - no puede abrir el archivo del programa .

Aunque en include en el otro terminal apareció una entrada que no está compilada en ex4.

¿Puede explicar el error? Gracias.

Por favor, dame un ejemplo, con registros completos. Cómo se llama la biblioteca en el EA, qué hay en el título de la propia biblioteca. Tal vez sea eso.

Por cierto, TheXpert andaba por aquí, es bueno en estas cosas.