una estrategia de negociación basada en la teoría de las ondas de Elliott - página 64

 
<br/ translate="no"> Estoy totalmente de acuerdo con Rosh. El flujo de entrada se asocia mejor con el delta, y Close[] con el volumen acumulado en el depósito. Sin embargo, me parece que como Close[] es el total acumulado del delta, las dos series están muy relacionadas. Por lo tanto, los coeficientes de Hurst para ellos deben correlacionarse de alguna manera. Pero no debería confiar en mi opinión. Todo lo que digo se basa sólo en mi comprensión general. Cuando trabaje con mis manos, podré formarme una opinión más informada.


Y poco a poco me voy inclinando hacia ese punto de vista. Queda algo por aclarar, a saber. Supongamos, razonando por analogía, que Close[] es el nivel de agua de un embalse. No tenemos forma de medir la afluencia exacta (lluvias, numerosos ríos, etc.), pero estimaremos la afluencia, por el nivel.

Cuando el nivel del agua aumenta, todo está claro: la afluencia será una diferencia positiva. Pero si empezamos la observación en un verano seco y como consecuencia - valores negativos del cambio de nivel. Al fin y al cabo, un descenso del nivel no significa que no haya habido afluencia, sino que ha salido más de lo que ha entrado. La afluencia media debe ser igual al volumen liberado del embalse cada año. De nuevo surge algo de ciclicidad.

Quiero aclarar cuál es la metodología correcta a tomar como entrada para mi caso:
- Solo la diferencia
- Solo la diferencia modulo
- Solo la diferencia positiva

Intuitivamente, entiendo que lo principal es determinar correctamente la entrada.

También dudo que haya una correlación entre Close[] y Close[i]-Close[i+1]. Una vez traté de encontrarlo usando métodos DSP (como prueba, estaba depurando funciones para determinar la correlación y autocorrelación de señales en ese momento), el resultado del cálculo - no está relacionado de ninguna manera. Esto, en general, se puede ver a simple vista, si se observa la forma de la señal. Pero estos son métodos DSP, puede que no sea lógico utilizarlos en este caso.

Además, no se puede reconstruir la serie original sólo con Close[i]-Close[i+1] - la información necesaria se pierde, y el cálculo de Hearst se realiza, de hecho, con una serie diferente a la original.
 
<br / translate="no"> Me gustaría aclarar cuál es la metodología correcta a tomar como entrada para mi caso:
-Sólo diferencia
- diferencia de módulo
- única diferencia positiva

Intuitivamente, entiendo que lo principal es determinar correctamente la afluencia.

También dudo que haya alguna correlación entre Close[] y Close[i]-Close[i+1].
...
Además, no se puede reconstruir la serie original sólo con Close[i]-Close[i+1] - la información necesaria se pierde, y el cálculo de Hearst se realiza, de hecho, con una serie diferente a la original.


Sólo aceptaría la diferencia. Además, si tienes una buena razón, no digas que no puedes usarla :)

http://forex.kbpauk.ru/showflat.php/Cat/0/Number/120077/an/0/page/0#Post120077
 
<br/ translate="no"> Efectivamente, utilizo enfoques completamente diferentes. Aunque el análisis espectral de series aleatorias es, en mi opinión, una dirección muy interesante. Sin embargo, es demasiado complicado para mí. Y demasiado lejos de mi especialidad, para retomarla ahora.


Y no soy un "digitalizador" profesional. Hace tres meses me encontré con un artículo que alababa el uso de DSP en el comercio. Me pareció interesante y decidí hacer un conjunto básico de filtros digitales. Bueno, se hizo. Fui a una librería, elegí dos libros más gruesos y los compré. Tras leer las primeras 200 páginas del primer libro que encontré, lo cerré y, murmurando palabrotas, fui a coger el polvoriento libro de matemáticas de dos volúmenes.

Me interesaba no comprar un producto ya hecho (tengo suficiente dinero para eso), sino hacer el mío propio, suponiendo que el estudio de esta área - aparecerán nuevas ideas. Y así sucedió. En 3 meses, sin ninguna distracción, conseguí lo que quería: indicadores basados en DSP y un montón de ideas.

Pero la perfección no conoce fronteras....) :о))) Quiero pedir a los profesionales (es más rápido o lo conseguiré yo mismo, pero más tarde) que definan algunas especificaciones de los filtros existentes y escriban un filtro realmente adaptable.

Por lo que se ofrece, nadie los tiene, es decir, no hay filtros adaptativos.

PD: Y pronto me pondré con los espectros :o))))
 
<br / translate="no"> ...
Sólo aceptaría la diferencia.
...


Yo pienso lo mismo. Son muchos datos correctos, bueno... casi correctos.
 
Y no soy un "digitalizador" profesional"<br/ translate="no"> ......
- Indicadores basados en DSP y un montón de ideas.
......
Por lo que se ofrece, nadie los tiene, es decir, no hay filtros adaptativos.
PD: Y pronto me pondré con los espectros :o))))

Aquí estoy, creo en el DSP y "no soy un "digitalizador" profesional"
uso esto:
"Paquete para el análisis técnico mediante métodos de filtrado digital"
Desarrollado gracias a Keny (Oleg, Krasnoyarsk, unclekenny@yandex.ru) y
Goodman (Zyabrev Ilya, Moscú, info@goodman.ru)
Ayuda en las pruebas - Tsygankov Andrey gypsy@mail.ru, Elizarov Oleg TOPpoint@yandex.ru
Distribuido gratuitamente según los principios "AS-IS".
Por favor, informe al autor sobre todas las observaciones y errores".
y hay una idea no realizada de cómo optimizar los filtros sobre la marcha:
No hay nada nuevo. Esto se ha hecho manualmente cientos de veces, pero ¿cómo automatizarlo? -
Estoy hablando de FATL SATL (FATL-SATL, FATL SATL CD ...) y ajustando sus parámetros
manualmente usando el analizador de espectro (incluido en el paquete).
Se necesita una biblioteca que realice el análisis del espectro, dando como salida los periodos de
de máxima densidad de señal (series temporales). Analizando estos datos
para diferentes fragmentos de series temporales se puede intentar adivinar los períodos, las fases, los coeficientes ponderados (amplitudes) de los componentes armónicos (¿cómo? Todavía no lo sé)
Cuantos más componentes armónicos se puedan determinar, más probable será predecir el desarrollo de las series. Eso es todo.
Yeshe. Si la previsión difiere mucho de la realidad, podemos suponer la reacción
del mercado a las noticias fuertes. Eso es todo.

No es un programador ni un matemático. :)
Esta rama está claramente más allá de mi comprensión. Hace una semana que lo estoy masticando. :(
 
Vladislav, tengo una pregunta sobre el indicador Murray. Lo he notado hace tiempo cuando uso su indicador en mi Expert Advisor (la última versión) que a veces hay días en que la nueva versión del indicador no muestra los niveles correctamente, mientras que la versión antigua no tiene ese inconveniente. Para evitar estos fallos en esos momentos, simplemente utilizo los últimos niveles calculados correctamente. Antes lo achacaba a alguna imperfección del probador de MT4, pero ahora se ha producido la situación que he observado durante mucho tiempo en mi Asesor Experto durante las pruebas en el historial (es decir, ¡el probador no se ha equivocado al indicar la posibilidad de dicha situación!) Vea las capturas de pantalla en https://c.mql5.com/mql4/forum/2006/06/Murrey_new_and_old.zip
Dos capturas de pantalla realizadas con una sola diferencia en la configuración de la versión de cálculo (OldVersion: true y false)
Puede ver que la versión antigua muestra los niveles habituales, mientras que la nueva muestra un fallo con los mismos parámetros: niveles "pegajosos" de Murray. ¿Puede comentar esta situación? ¿Los niveles de Murray "adheridos" en la nueva versión del indicador son sólo un fallo técnico o tienen un significado más profundo? Por ejemplo, hoy no pueden existir niveles de Murray debido al movimiento más fuerte y debemos esperar a que se calculen correctamente, por ejemplo, el lunes, y entonces podremos tomar decisiones sobre la entrada en el mercado? ¿Y hoy, por ejemplo, si no consiguió entrar ayer, sería mejor quedarse fuera del mercado? Me gustaría conocer su opinión sobre esta cuestión.

PD: Pero ahora con la nueva barra la nueva versión ha empezado a mostrar los mismos niveles de Murray que la antigua. Probablemente se trate de algún error técnico de la nueva versión de cálculo de los niveles de Murray.

PPS: Llegaron un par de barras más y los niveles en la nueva versión están pegados de nuevo.
 
Paquete de análisis técnico para métodos de filtrado digital

¿dónde puedo verlo?
google no dice nada
 
Vladislav Tengo una pregunta sobre el indicador Murray.
...............................................
PS: Pero ahora con la llegada de la nueva barra y la nueva versión empezó a mostrar los mismos niveles de Murray que la antigua. Probablemente se trate de algún error técnico de la nueva versión del cálculo de los niveles de Murray.

PPS: Llegaron un par de barras más y los niveles en la nueva versión están pegados de nuevo.


Extraño, lo vigilaré, claro que no debería ser así. Tengo que mirar la inicialización de los arrays que voy a comprobar.
En realidad no lo tengo, pero no lo uso como un indicador separado - Acabo de construir el código en el Asesor de Expertos.

HH Encontré un lugar más donde había un error tipográfico. Tenías razón: el error es técnico. Aquí está el código corregido :

i//+------------------------------------------------------------------+
//|                                                   MMLevls_VG.mq4 |
//|                       Copyright © 2006, Vladislav Goshkov (VG).  |
//|                                           4vg@mail.ru            |
//|                                       Many thanks to Tim Kruzel  |
//+------------------------------------------------------------------+
#property copyright "Vladislav Goshkov (VG)."
#property link      "4vg@mail.ru"

#property indicator_chart_window

// ============================================================================================
// * Линии 8/8 и 0/8 (Окончательное сопротивление).
// * Эти линии самые сильные и оказывают сильнейшие сопротивления и поддержку.
// ============================================================================================
//* Линия 7/8  (Слабая, место для остановки и разворота). Weak, Stall and Reverse
//* Эта линия слаба. Если цена зашла слишком далеко и слишком быстро и если она остановилась около этой линии, 
//* значит она развернется быстро вниз. Если цена не остановилась около этой линии, она продолжит движение вверх к 8/8.
// ============================================================================================
//* Линия 1/8  (Слабая, место для остановки и разворота). Weak, Stall and Reverse
//* Эта линия слаба. Если цена зашла слишком далеко и слишком быстро и если она остановилась около этой линии, 
//* значит она развернется быстро вверх. Если цена не остановилась около этой линии, она продолжит движение вниз к 0/8.
// ============================================================================================
//* Линии 6/8 и 2/8 (Вращение, разворот). Pivot, Reverse
//* Эти две линии уступают в своей силе только 4/8 в своей способности полностью развернуть ценовое движение.
// ============================================================================================
//* Линия 5/8 (Верх торгового диапазона). Top of Trading Range
//* Цены всех рынков тратят 40% времени, на движение между 5/8 и 3/8 линиями. 
//* Если цена двигается около линии 5/8 и остается около нее в течении 10-12 дней, рынок сказал что следует 
//* продавать в этой «премиальной зоне», что и делают некоторые люди, но если цена сохраняет тенденцию оставаться 
//* выше 5/8, то она и останется выше нее. Если, однако, цена падает ниже 5/8, то она скорее всего продолжит 
//* падать далее до следующего уровня сопротивления.
// ============================================================================================
//* Линия 3/8 (Дно торгового диапазона). Bottom of Trading Range
//* Если цены ниже этой лини и двигаются вверх, то цене будет сложно пробить этот уровень. 
//* Если пробивают вверх эту линию и остаются выше нее в течении 10-12 дней, значит цены останутся выше этой линии 
//* и потратят 40% времени двигаясь между этой линией и 5/8 линией.
// ============================================================================================
//* Линия 4/8 (Главная линия сопротивления/поддержки). Major Support/Resistance
//* Эта линия обеспечивает наибольшее сопротивление/поддержку. Этот уровень является лучшим для новой покупки или продажи. 
//* Если цена находится выше 4/8, то это сильный уровень поддержки. Если цена находится ниже 4/8, то это прекрасный уровень 
//* сопротивления.
// ============================================================================================
extern bool OldVersion = false;
extern int P = 90;
extern int MMPeriod = 1440;
extern int StepBack = 0;

extern color  mml_clr_m_2_8 = White;       // [-2]/8
extern color  mml_clr_m_1_8 = White;       // [-1]/8
extern color  mml_clr_0_8   = Aqua;        //  [0]/8
extern color  mml_clr_1_8   = Yellow;      //  [1]/8
extern color  mml_clr_2_8   = Red;         //  [2]/8
extern color  mml_clr_3_8   = Green;       //  [3]/8
extern color  mml_clr_4_8   = Blue;        //  [4]/8
extern color  mml_clr_5_8   = Green;       //  [5]/8
extern color  mml_clr_6_8   = Red;         //  [6]/8
extern color  mml_clr_7_8   = Yellow;      //  [7]/8
extern color  mml_clr_8_8   = Aqua;        //  [8]/8
extern color  mml_clr_p_1_8 = White;       // [+1]/8
extern color  mml_clr_p_2_8 = White;       // [+2]/8

extern int    mml_wdth_m_2_8 = 2;        // [-2]/8
extern int    mml_wdth_m_1_8 = 1;        // [-1]/8
extern int    mml_wdth_0_8   = 2;        //  [0]/8
extern int    mml_wdth_1_8   = 1;        //  [1]/8
extern int    mml_wdth_2_8   = 1;        //  [2]/8
extern int    mml_wdth_3_8   = 1;        //  [3]/8
extern int    mml_wdth_4_8   = 2;        //  [4]/8
extern int    mml_wdth_5_8   = 1;        //  [5]/8
extern int    mml_wdth_6_8   = 1;        //  [6]/8
extern int    mml_wdth_7_8   = 1;        //  [7]/8
extern int    mml_wdth_8_8   = 2;        //  [8]/8
extern int    mml_wdth_p_1_8 = 1;        // [+1]/8
extern int    mml_wdth_p_2_8 = 2;        // [+2]/8

extern color  MarkColor   = Blue;
extern int    MarkNumber  = 217;


double  dmml = 0,
        dvtl = 0,
        sum  = 0,
        v1 = 0,
        v2 = 0,
        mn = 0,
        mx = 0,
        x1 = 0,
        x2 = 0,
        x3 = 0,
        x4 = 0,
        x5 = 0,
        x6 = 0,
        y1 = 0,
        y2 = 0,
        y3 = 0,
        y4 = 0,
        y5 = 0,
        y6 = 0,
        octave = 0,
        fractal = 0,
        range   = 0,
        finalH  = 0,
        finalL  = 0,
        mml[13];

string  ln_txt[13],        
        buff_str = "";
        
int     
        bn_Lo   = -1,
        bn_Hi   = -1,
        extr_bn_Lo  = -1,
        extr_bn_Hi  = -1,
        OctLinesCnt = 13,
        mml_thk = 8,
        mml_clr[13],
        mml_wdth[13],
        mml_shft = 35,
        nT = 0,
        nB = 0,
        nP = 0,
        nDigits = 0,
        i = 0;
int NewPeriod=0;
int CurPeriod=0;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init() {
//---- indicators
   CurPeriod=Period();
   if(MMPeriod>CurPeriod)
      NewPeriod   = P*MathCeil(MMPeriod/CurPeriod);
   else NewPeriod = P;
   
   ln_txt[0]  = "[-2/8]P";// "extremely overshoot [-2/8]";// [-2/8]
   ln_txt[1]  = "[-1/8]P";// "overshoot [-1/8]";// [-1/8]
   ln_txt[2]  = "[0/8]P";// "Ultimate Support - extremely oversold [0/8]";// [0/8]
   ln_txt[3]  = "[1/8]P";// "Weak, Stall and Reverse - [1/8]";// [1/8]
   ln_txt[4]  = "[2/8]P";// "Pivot, Reverse - major [2/8]";// [2/8]
   ln_txt[5]  = "[3/8]P";// "Bottom of Trading Range - [3/8], if 10-12 bars then 40% Time. BUY Premium Zone";//[3/8]
   ln_txt[6]  = "[4/8]P";// "Major Support/Resistance Pivotal Point [4/8]- Best New BUY or SELL level";// [4/8]
   ln_txt[7]  = "[5/8]P";// "Top of Trading Range - [5/8], if 10-12 bars then 40% Time. SELL Premium Zone";//[5/8]
   ln_txt[8]  = "[6/8]P";// "Pivot, Reverse - major [6/8]";// [6/8]
   ln_txt[9]  = "[7/8]P";// "Weak, Stall and Reverse - [7/8]";// [7/8]
   ln_txt[10] = "[8/8]P";// "Ultimate Resistance - extremely overbought [8/8]";// [8/8]
   ln_txt[11] = "[+1/8]P";// "overshoot [+1/8]";// [+1/8]
   ln_txt[12] = "[+2/8]P";// "extremely overshoot [+2/8]";// [+2/8]

   //mml_shft = 3;
   mml_thk  = 3;

   // Начальная установка цветов уровней октав и толщины линий
   mml_clr[0]  = mml_clr_m_2_8;   mml_wdth[0] = mml_wdth_m_2_8; // [-2]/8
   mml_clr[1]  = mml_clr_m_1_8;   mml_wdth[1] = mml_wdth_m_1_8; // [-1]/8
   mml_clr[2]  = mml_clr_0_8;     mml_wdth[2] = mml_wdth_0_8;   //  [0]/8
   mml_clr[3]  = mml_clr_1_8;     mml_wdth[3] = mml_wdth_1_8;   //  [1]/8
   mml_clr[4]  = mml_clr_2_8;     mml_wdth[4] = mml_wdth_2_8;   //  [2]/8
   mml_clr[5]  = mml_clr_3_8;     mml_wdth[5] = mml_wdth_3_8;   //  [3]/8
   mml_clr[6]  = mml_clr_4_8;     mml_wdth[6] = mml_wdth_4_8;   //  [4]/8
   mml_clr[7]  = mml_clr_5_8;     mml_wdth[7] = mml_wdth_5_8;   //  [5]/8
   mml_clr[8]  = mml_clr_6_8;     mml_wdth[8] = mml_wdth_6_8;   //  [6]/8
   mml_clr[9]  = mml_clr_7_8;     mml_wdth[9] = mml_wdth_7_8;   //  [7]/8
   mml_clr[10] = mml_clr_8_8;     mml_wdth[10]= mml_wdth_8_8;   //  [8]/8
   mml_clr[11] = mml_clr_p_1_8;   mml_wdth[11]= mml_wdth_p_1_8; // [+1]/8
   mml_clr[12] = mml_clr_p_2_8;   mml_wdth[12]= mml_wdth_p_2_8; // [+2]/8
   
   
//----
   return(0);
  }

//+------------------------------------------------------------------+
//| Custor indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit() {
//---- TODO: add your code here
Comment(" ");   
for(i=0;i<OctLinesCnt;i++) {
    buff_str = "mml"+i;
    ObjectDelete(buff_str);
    buff_str = "mml_txt"+i;
    ObjectDelete(buff_str);
    }
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+

//=========================================================================
int FindeExtrHi_bn(int n_bg, int n_nd ){

int    ext_bn = -1;
double ext_Hi = -10000000000000000000.0;
int    k = 0;
int    stop_bn = -1;
int    start_bn = -1;
int    cur_bn = n_bg;
    //Print(" FindeExtrHi_bn : n_bg = ", n_bg," n_nd = ", n_nd);
    if(n_bg<n_nd){
       start_bn = n_bg+1;
       stop_bn  = n_nd; 
       //Print(" FindeExtrHi_bn (n_bg<n_nd): start_bn = ", start_bn," stop_bn = ", stop_bn);
       for(int j=start_bn;j<stop_bn;j++){
          if( (High[j]>High[j+1])&&(High[j]>High[j-1])&&(High[j]>ext_Hi) ){
             ext_bn = j;
	          ext_Hi = High[j];
	          }
	       }//for(int j=start_bn;j<stop_bn;j++){
       }//if(n_bg<n_nd){


    if(n_bg>n_nd){
       start_bn = n_bg;
       stop_bn  = n_nd+1; 
       //Print(" FindeExtrHi_bn (n_bg>n_nd): start_bn = ", start_bn," stop_bn = ", stop_bn);
       for( j=start_bn;j>stop_bn;j--){
          if( (High[j]>High[j+1])&&(High[j]>High[j-1])&&(High[j]>ext_Hi) ){
             ext_bn = j;
	          ext_Hi = High[j];
	          }
          }//for(int j=start_bn;j>stop_bn;j--){
       }//if(n_bg>n_nd){
   
   //Print(" FindeExtrHi_bn:=> ext_bn = ",ext_bn);
   return(ext_bn);
   }

//=========================================================================
int FindeExtrLo_bn(int n_bg, int n_nd ){

int    ext_bn = -1;
double ext_Lo = 10000000000000000000.0;
int    stop_bn = -1;
int    start_bn = -1;
int    cur_bn = n_bg;


    //Print(" FindeExtrLo_bn : n_bg = ", n_bg," n_nd = ", n_nd);

    if(n_bg<n_nd){
       start_bn = n_bg+1;
       stop_bn  = n_nd; 
       //Print(" FindeExtrLo_bn (n_bg<n_nd): start_bn = ", start_bn," stop_bn = ", stop_bn);
       for(int j=start_bn;j<stop_bn;j++){
          if( (Low[j]<Low[j+1])&&(Low[j]<Low[j-1])&&(Low[j]<ext_Lo) ){
             ext_bn = j;
	          ext_Lo = Low[j];
	          }
	       }//for(int j=start_bn;j<stop_bn;j++){
       }//if(n_bg<n_nd){


    if(n_bg>n_nd){
       start_bn = n_bg;
       stop_bn  = n_nd+1; 
       //Print(" FindeExtrLo_bn (n_bg>n_nd): start_bn = ", start_bn," stop_bn = ", stop_bn);
       for( j=start_bn;j>stop_bn;j--){
          if( (Low[j]<Low[j+1])&&(Low[j]<Low[j-1])&&(Low[j]<ext_Lo) ){
             ext_bn = j;
	          ext_Lo = Low[j];
	          }
          }//for(int j=start_bn;j>stop_bn;j--){
       }//if(n_bg>n_nd){
   //Print(" FindeExtrLo_bn:=> ext_bn = ",ext_bn);
   return(ext_bn);
   }

int start() {
//---- TODO: add your code here

if( (nT!=Time[0])||(nP!=Period())||(nB!=Bars) ) {
   CurPeriod=Period();
   if(MMPeriod>CurPeriod)
      NewPeriod   = P*MathCeil(MMPeriod/CurPeriod);
   else NewPeriod = P;
   
  //price
  //Print("MMLevls : NewPeriod = ",NewPeriod);
   if(OldVersion){
      bn_Lo = Lowest(NULL,0,MODE_LOW,NewPeriod,StepBack);
      bn_Hi = Highest(NULL,0,MODE_HIGH,NewPeriod,StepBack);
   } else {//  if(OldVersion){
      extr_bn_Lo = FindeExtrLo_bn(NewPeriod+StepBack,StepBack);
      extr_bn_Hi = FindeExtrHi_bn(NewPeriod+StepBack,StepBack);
      if(extr_bn_Lo>=0){
         bn_Lo = extr_bn_Lo;
         //Print("MMLevls : 1 bn_Lo = ",bn_Lo);
         for(int k=0;k<1;k++){
            if(Low[k]<Low[extr_bn_Lo]) {
               bn_Lo = k;
               break;
               }
            }
         //Print("MMLevls : 2 bn_Lo = ",bn_Lo);
         } else bn_Lo = Lowest(NULL,0,MODE_LOW,NewPeriod,StepBack);
      if(extr_bn_Hi>=0){
         bn_Hi = extr_bn_Hi;
         for(k=0;k<1;k++){
            if(High[k]>High[extr_bn_Hi]) {//ошибка была здесь
               bn_Hi = k;                // И здесь была описка
               break;
               } 
            }
         } else  bn_Hi = Highest(NULL,0,MODE_HIGH,NewPeriod,StepBack);
      // Пусть будет на всякий случай :).
      if(High[bn_Hi]<Low[bn_Lo]){
         //Print("MM ??? HiLo :High[",bn_Hi,"] = ",High[bn_Hi]," Low",bn_Lo,"] = ",Low[bn_Lo]);
         bn_Lo = Lowest(NULL,0,MODE_LOW,NewPeriod,StepBack);
         bn_Hi = Highest(NULL,0,MODE_HIGH,NewPeriod,StepBack);
         }

      }//} else {//  if(OldVersion){

   //Print("MMLevls : Low[",bn_Lo,"] = ",Low[bn_Lo]," High[",bn_Hi,"] = ",High[bn_Hi]);
 
   v1 = Low[bn_Lo];
   v2 = High[bn_Hi];

//determine fractal.....
   if( v2<=250000 && v2>25000 )
   fractal=100000;
   else
     if( v2<=25000 && v2>2500 )
     fractal=10000;
     else
       if( v2<=2500 && v2>250 )
       fractal=1000;
       else
         if( v2<=250 && v2>25 )
         fractal=100;
         else
           if( v2<=25 && v2>12.5 )
           fractal=12.5;
           else
             if( v2<=12.5 && v2>6.25)
             fractal=12.5;
             else
               if( v2<=6.25 && v2>3.125 )
               fractal=6.25;
               else
                 if( v2<=3.125 && v2>1.5625 )
                 fractal=3.125;
                 else
                   if( v2<=1.5625 && v2>0.390625 )
                   fractal=1.5625;
                   else
                     if( v2<=0.390625 && v2>0)
                     fractal=0.1953125;
      
   range=(v2-v1);
   //Print(" v2 = ",v2," v1 = ",v1," range = ",range );
   sum=MathFloor(MathLog(fractal/range)/MathLog(2));
   octave=fractal*(MathPow(0.5,sum));
   mn=MathFloor(v1/octave)*octave;
   if( (mn+octave)>v2 )
   mx=mn+octave; 
   else
     mx=mn+(2*octave);


// calculating xx
//x2
    if( (v1>=(3*(mx-mn)/16+mn)) && (v2<=(9*(mx-mn)/16+mn)) )
    x2=mn+(mx-mn)/2; 
    else x2=0;
//x1
    if( (v1>=(mn-(mx-mn)/8))&& (v2<=(5*(mx-mn)/8+mn)) && (x2==0) )
    x1=mn+(mx-mn)/2; 
    else x1=0;

//x4
    if( (v1>=(mn+7*(mx-mn)/16))&& (v2<=(13*(mx-mn)/16+mn)) )
    x4=mn+3*(mx-mn)/4; 
    else x4=0;

//x5
    if( (v1>=(mn+3*(mx-mn)/8))&& (v2<=(9*(mx-mn)/8+mn))&& (x4==0) )
    x5=mx; 
    else  x5=0;

//x3
    if( (v1>=(mn+(mx-mn)/8))&& (v2<=(7*(mx-mn)/8+mn))&& (x1==0) && (x2==0) && (x4==0) && (x5==0) )
    x3=mn+3*(mx-mn)/4; 
    else x3=0;

//x6
    if( (x1+x2+x3+x4+x5) ==0 )
    x6=mx; 
    else x6=0;

     finalH = x1+x2+x3+x4+x5+x6;
// calculating yy
//y1
    if( x1>0 )
    y1=mn; 
    else y1=0;

//y2
    if( x2>0 )
    y2=mn+(mx-mn)/4; 
    else y2=0;

//y3
    if( x3>0 )
    y3=mn+(mx-mn)/4; 
    else y3=0;

//y4
    if( x4>0 )
    y4=mn+(mx-mn)/2; 
    else y4=0;

//y5
    if( x5>0 )
    y5=mn+(mx-mn)/2; 
    else y5=0;

//y6
    if( (finalH>0) && ((y1+y2+y3+y4+y5)==0) )
    y6=mn; 
    else y6=0;

    finalL = y1+y2+y3+y4+y5+y6;

    for( i=0; i<OctLinesCnt; i++) {
         mml[i] = 0;
         }
         
   dmml = (finalH-finalL)/8;
   //Print("MMLevls : NewPeriod = ",NewPeriod," dmml = ",dmml," finalL = ",finalL);
   mml[0] =(finalL-dmml*2); //-2/8
   for( i=1; i<OctLinesCnt; i++) {
        mml[i] = mml[i-1] + dmml;
        }
   for( i=0; i<OctLinesCnt; i++ ){
        buff_str = "mml"+i;
        if(ObjectFind(buff_str) == -1) {
           ObjectCreate(buff_str, OBJ_HLINE, 0, Time[0], mml[i]);
           ObjectSet(buff_str, OBJPROP_STYLE, STYLE_SOLID);
           ObjectSet(buff_str, OBJPROP_COLOR, mml_clr[i]);
           ObjectSet(buff_str, OBJPROP_WIDTH, mml_wdth[i]);
           ObjectMove(buff_str, 0, Time[0],  mml[i]);
           }
        else {
           ObjectMove(buff_str, 0, Time[0],  mml[i]);
           }
             
        buff_str = "mml_txt"+i;
        if(ObjectFind(buff_str) == -1) {
           ObjectCreate(buff_str, OBJ_TEXT, 0, Time[mml_shft], mml_shft);
           ObjectSetText(buff_str, ln_txt[i], 8, "Arial", mml_clr[i]);
           ObjectMove(buff_str, 0, Time[mml_shft],  mml[i]);
           }
        else {
           ObjectMove(buff_str, 0, Time[mml_shft],  mml[i]);
           }
        } // for( i=1; i<=OctLinesCnt; i++ ){

   string buff_str = "LR_LatestCulcBar";
   if(ObjectFind(buff_str) == -1) {
      ObjectCreate(buff_str, OBJ_ARROW,0, Time[StepBack], Low[StepBack]-2*Point );
      ObjectSet(buff_str, OBJPROP_ARROWCODE, MarkNumber);
      ObjectSet(buff_str, OBJPROP_COLOR, MarkColor);
      }
   else {
      ObjectMove(buff_str, 0, Time[StepBack], Low[StepBack]-2*Point );
      }

   nT = Time[0];
   nB = Bars;
   nP = Period();
   }//if( (nT!=Time[0])||(nP!=Period())||(nB!=Bars) ) {
 
//---- End Of Program
  return(0);
  }
//+------------------------------------------------------------------+ 



Buena suerte y felices tendencias.



 
ZS Encontré otro lugar donde había un error tipográfico. Tenías razón: fue un error técnico. Aquí está el código corregido :

Realmente arreglando un error más se eliminó el problema, ya que sólo la versión original de añadir código al principio de start() no solucionó el problema y estuve a punto de enviarte citas y capturas de pantalla para reproducir el problema en tu ordenador. Pero ahora no es necesario porque has resuelto completamente el problema a juzgar por mi observación del último código corregido. Moveré el nuevo código corregido a mi Asesor Experto.

¡¡¡Muchas gracias por la pronta solución del problema!!!
 
Demax, generador de métodos digitales - http://fx.qrz.ru/
También hay uno de pago de Finware. No lo he probado
Razón de la queja: