[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No podría ir a ningún sitio sin ti - 2. - página 186

 
Dimka-novitsek:
Tengo curiosidad, ¿qué tiene de malo mi versión?

En su versión, primero se duerme 300 veces en 1 cálculo

En segundo lugar, se cansa de crear un mensaje 600 veces en cada tic.

Y tercero, dibuja esta línea roja en el gráfico. La línea roja tiene un máximo de 0,86, y la verde un mínimo de 1,34

para que no puedas ver los resultados.

 
ScioMe:

Sí dibuja en verde, pero sólo en la vela antes de que se cierre. Antes de eso, nunca lo hace.

Creo que debería dibujar sólo si usted cambia StopLoss y / o TakeProfit
 
pyatka__ASD:

Buenas tardes. Por favor, ayuda.

¿Cómo puedo encontrar un patrón de desplazamiento de barras calculado con esta fórmula? ObjectGetShiftByValue

cuál es el patrón
 

No veo ningún resultado.

¡Gracias! ¡Soy un cordero!

 
eddy:
Creo que sólo debería dibujarse si cambias el StopLoss y/o el TakeProfit

Sí, el registro lo confirma.
 
Bueno, él los cambia en la barra de apertura
 

Una pregunta sobre algunos de los matices de la llamada a las funciones WinAPI.

Hay una función GetPrivateProfileStringA.

Importación de la función en mql.

#import "kernel32.dll"
  int GetPrivateProfileStringA
      ( string SectionName,    // Наименование секции
        string KeyName,        // Наименование параметра
        string Default,        // Значение по умолчанию
        string ReturnedString, // Возвращаемое значение параметра
        int    nSize,          // Размер буфера под значение параметра
        string FileName);      // Полное имя файла
  int WritePrivateProfileStringA
      ( string SectionName,    // Наименование секции
        string KeyName,        // Наименование параметра
        string sString,        // Записываемое значение параметра
        string FileName);      // Полное имя файла
#import

Descripción de uno de los parámetros:

lpKeyName [in] 

The name of the key whose associated string is to be retrieved. 
If this parameter is NULL, all key names in the section specified by the lpAppName parameter 
are copied to the buffer specified by the lpReturnedString parameter.

Pregunta - ¿Cómo pasar "NULL real"?

Al pasar "mql NULL" (también cadena "") se obtiene el valor por defecto en lugar de la lista de "claves en la sección".

lpDefault [in] 
A default string. If the lpKeyName key cannot be found in the initialization file, 
GetPrivateProfileString copies the default string to the lpReturnedString buffer. 
If this parameter is NULL, the default is an empty string, "".

He mencionado "NULL real" porque he leído sobre un problema similar (exactamente con esta función) en algún foro sobre Basic. El foro era de habla inglesa (es decir, todo lo que podía entender no era cierto), y el problema se solucionó con lo básico.

 
eddy:
bueno, los cambia en la barra libre


Según tengo entendido, OrderModify() puede cambiar los stops en otras barras que no sean la de apertura? Mi código (casi todo del libro de S. Kovalev) está construido de manera que las paradas se cambian no sólo durante la apertura, sino también al producirse algunos eventos:

 switch(Tip)                                  // По типу ордера
   {
      case 0 :                                // Ордер Buy
         if (NormalizeDouble(SL,Digits)<     // Если ниже желаем.
            NormalizeDouble(Bid-TS*Point,Digits))
               {
      // Ниже я только добавил функцию New_Stop
                  SL=Bid-New_Stop(TS)*Point; // то модифицируем его
                  string Text="Buy ";         // Текст для Buy 
                  Modify=true;                // Назначен к модифи.
               }
               break;
// Функция из этой же книги:
int New_Stop(int Parametr)                      // Проверка стоп-прик.
  {
   int Min_Dist=MarketInfo(Symb,MODE_STOPLEVEL);// Миним. дистанция
   if (Parametr < Min_Dist)                     // Если меньше допуст.
     {
      Parametr=Min_Dist;                        // Установим допуст.
      Alert("Увеличена дистанция стоп-приказа.");
     }
   return(Parametr);                            // Возврат значения
  }
 

Por favor, dígame cómo asignar el tiempo a la línea del indicador

val1[]. O díganme cómo hacerlo y qué usar porque no me aclaro. Indicador de Laguerre.
   i=CountBars-1;
   while(i>=0)
   {
      L0A = L0;
      L1A = L1;
      L2A = L2;
      L3A = L3;
      L0 = (1 - gamma)*Close[i] + gamma*L0A;
      L1 = - gamma *L0 + L0A + gamma *L1A;
      L2 = - gamma *L1 + L1A + gamma *L2A;
      L3 = - gamma *L2 + L2A + gamma *L3A;

      CU = 0;
      CD = 0;
      
      if (L0 >= L1) CU = L0 - L1; else CD = L1 - L0;
      if (L1 >= L2) CU = CU + L1 - L2; else CD = CD + L2 - L1;
      if (L2 >= L3) CU = CU + L2 - L3; else CD = CD + L3 - L2;

      if (CU + CD != 0) LRSI = CU / (CU + CD);
      val1[i] = LRSI;
          i--;
        }
         

   if(counted_bars>0)
      counted_bars--;
   
   limit=Bars-counted_bars;
   
   if(limit>CountBars)
      limit=CountBars;
  
   for(int c=1;c<limit;c++)
        
{if(val1[c]>0.45)
   LastLag++;}

Por ejemplo, cuando la línea val1[c] cruza 0.45 hacia arriba el valor del tiempo se establece en la variable TimeBegin y cuando cruza hacia abajo el valor del tiempo se establece en la variable TimeEnd. Y así a lo largo de todo el gráfico.

Archivos adjuntos:
 
ScioMe:

Según tengo entendido, OrderModify() también puede cambiar los stops en otras barras que no sean la de apertura?

Bueno, las flechas están en la barra libre. sólo se fija su color