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

 
Ereke:
¡Enhorabuena a usted!

Hay que dar la enhorabuena. Aunque un disparo al aire no hace daño a nadie.
 
Vinin:

Hay que dar la enhorabuena. Aunque un disparo al aire no hace daño a nadie.
Víctor, ¿se te ha caído el Skype o se te ha acabado la conexión? ¿Qué pasa con la ZZ?
 
2011.01.24 17:18:44 TestGenerator: error de datos no coincidentes (límite de volumen 971 en 2011.01.19 10:00 superado)
¿Podría decirme qué tipo de error es? En el registro durante la prueba a granel, pero las órdenes abiertas.
 
artmedia70:
Víctor, ¿se te ha caído el Skype o se te ha acabado la conexión? ¿Qué es la ZZ?

Sí, estoy diciendo que tal vez debería hacer un zapper especial. No es mi Skype el que está muriendo. Te tengo en verde.
 
r.ig.h:
2011.01.24 17:18:44 TestGenerator: error de datos no coincidentes (límite de volumen 971 en 2011.01.19 10:00 superado)
¿Podría decirme qué tipo de error es? En el registro durante la prueba a granel, pero las órdenes abiertas.

No hay historia o hay errores en la historia
 
Ayudar a ajustar el script que significaría abrir un acuerdo inmediatamente, al precio actual del mercado. Un chet, ya estoy al vapor Distancia de los peces en 5 pips no está satisfecho, y por lo que sería al menos con una desviación en el intercambio.
Archivos adjuntos:
 

¡Buenas noches!

Parece que no puedo dar sentido a la

turno - Índice del valor recibido del búfer del indicador (desplazamiento relativo a la barra actual en el número de períodos especificado hacia atrás).

En el indicador Fractales. Si pienso correctamente - el indicador muestra el valor del extremo entre cinco barras con la condición de que los máximos de dos barras anteriores y dos siguientes (en caso de un fractal hacia arriba) son más pequeños (aunque el "pajarito" de un fractal se muestra en el gráfico también cuando el extremo de la barra más a la izquierda de esos cinco = extremo ......, no más pequeño que él). Entonces, ¿por qué cambiar? ¿Qué se mostrará si el desplazamiento no es igual a 3 sino a 2 o a 5?

 

Hice este código para entrar en el mercado después de la primera ruptura fractal después de la ruptura de la MA. Pero al probarlo, no abre las operaciones en todas partes, aunque parece que se supone que lo hace. No puedo entender qué es lo que está mal? En modo real (al comprobar en M1 no encuentro el error).

 extern int Period_MA = 5,                 // Период расчётной МА
            PERIOD=1,                      // Период текущего графика (таймфрейм)
            MODE=3,                        // Метод усреднения из методов скользящего среднего
            PRICE_TYPE=0,                  // Используемая цена из ценовых констант
            Прибыль=10,
            Ограничение=55;

 double 
        upfractal,
        dwfractal,
        SL[10001]={0,,10000},
        TP[10001]={0,,10000};
        
 bool   Двверх=false,
        Дввниз=false,
        Сделкавверх=false,
        Сделкавниз=false;
        
  int   A,                             // Переменная массива вверх
        B,                             // Переменная массива вниз
        BarTime,                       // Время текущего бара
        ticketup,                      // Ордер вверх
        ticketdown,                    // Ордер вниз
        Tвверх,                        // Время сделки вверх
        Tвниз;                         // Время сделки вниз;
        
 color вверх = SpringGreen,           // Цвет сделки вверх
       вниз = Red;                    // Цвет сделки вниз       
        
int start()
  {
  
  string Symb=Symbol();         // Финанс. инструмент
  
  double  Lot=0.01;              // Лот
  
    if(BarTime!=Time[0])           // Условие для того, чтобы программа считала только на начале бара, а не на каждом тике
      {
        double MA_1 = iMA(Symbol(),PERIOD,Period_MA,0,MODE, PRICE_TYPE, 1);
        double MA_2 = iMA(Symbol(),PERIOD,Period_MA,0,MODE, PRICE_TYPE, 2);
        double MA_3 = iMA(Symbol(),PERIOD,Period_MA,0,MODE, PRICE_TYPE, 3);
        double MA_4 = iMA(Symbol(),PERIOD,Period_MA,0,MODE, PRICE_TYPE, 4);
        double MA_5 = iMA(Symbol(),PERIOD,Period_MA,0,MODE, PRICE_TYPE, 5);
        double MA_6 = iMA(Symbol(),PERIOD,Period_MA,0,MODE, PRICE_TYPE, 6);
        double MA_7 = iMA(Symbol(),PERIOD,Period_MA,0,MODE, PRICE_TYPE, 7); 
        double MA_8 = iMA(Symbol(),PERIOD,Period_MA,0,MODE, PRICE_TYPE, 8); 
               
//--------------------------------------------------------------------
        if(NormalizeDouble(MA_8,Digits)>NormalizeDouble(MA_2,Digits)
        && NormalizeDouble(MA_7,Digits)>=NormalizeDouble(MA_2,Digits)
        && NormalizeDouble(MA_6,Digits)>=NormalizeDouble(MA_2,Digits)
        && NormalizeDouble(MA_5,Digits)>=NormalizeDouble(MA_2,Digits) 
        && NormalizeDouble(MA_3,Digits)>=NormalizeDouble(MA_2,Digits)
        && NormalizeDouble(MA_4,Digits)>=NormalizeDouble(MA_2,Digits)
        && NormalizeDouble(MA_2,Digits)<NormalizeDouble(MA_1,Digits)) // Перелом вверх
          {
            Двверх=true;
            Alert("Двверх");
            Дввниз=false;
            Сделкавниз=false;
            dwfractal=0;
            upfractal=0;
          }
        if(Двверх==true)
          {    
            
                upfractal=iFractals(Symbol(), PERIOD, MODE_UPPER, 3);
                Alert("upfractal вначале = ",upfractal);
                
              
          }
        if(NormalizeDouble(MA_8,Digits)<NormalizeDouble(MA_2,Digits)
        && NormalizeDouble(MA_7,Digits)<=NormalizeDouble(MA_2,Digits)
        && NormalizeDouble(MA_6,Digits)<=NormalizeDouble(MA_2,Digits)
        && NormalizeDouble(MA_5,Digits)<=NormalizeDouble(MA_2,Digits)
        && NormalizeDouble(MA_3,Digits)<=NormalizeDouble(MA_2,Digits)
        && NormalizeDouble(MA_4,Digits)<=NormalizeDouble(MA_2,Digits)
        && NormalizeDouble(MA_2,Digits)>NormalizeDouble(MA_1,Digits)) // Перелом вниз
          {
            Дввниз=true;
            Двверх=false;
            Alert("Дввниз");
            Сделкавверх=false;
            upfractal=0;
            dwfractal=0;
          }
        if(Дввниз==true)
          {    
            
                dwfractal=iFractals(Symbol(),PERIOD, MODE_LOWER, 3);
                Alert("dwfractal вначале = ",dwfractal);
              
          }    
          BarTime=Time[0];
      }else                                                                  // На каждый тик
        { 
          Alert("upfractal на тиках = ",upfractal,", Bid = ", Bid);
          if (Двверх==true && upfractal !=0 && Bid > NormalizeDouble(upfractal+1*Point,Digits) && Tвверх!=Time[0] && Сделкавверх==false) // Открытие ордеров при пробитии последнего (свежайшего) фрактала }
            {
               Alert("upfractal = ",upfractal, ", Ask = ",Ask);
               Tвверх=Time[0];
               while(true)                                                  // Цикл открытия орд.
                  {
                    A++;
                    SL[A]=Bid-Ограничение*Point;
                    TP[A]=Bid+7*Point+Прибыль*Point;
                    ticketup=OrderSend(Symb, OP_BUY, Lot, Ask,0, SL[A], TP[A],NULL,A,0,вверх); // Ордер вверх
                        int Error=GetLastError();
                        switch(Error)                                      // Преодолимые ошибки
                          {
                           case 6: Alert("Нет связи с торговым сервером. Пробуем ещё раз..");
                           RefreshRates();                                 // Обновим данные
                           Sleep(1);                                       // Задержка в цикле до нового тика
                         continue;                                         // На след. итерацию
                          }
                         break;                                            // Выход из цикла
                   }
                    Сделкавверх=true; 
            }
            Alert("dwfractal на тиках = ",dwfractal,", Bid = ", Bid);
          if (Дввниз==true && dwfractal !=0 && Bid < NormalizeDouble(dwfractal-1*Point,Digits) && Tвниз!=Time[0] && Сделкавниз==false) // Открытие ордеров при пробитии последнего (свежайшего) фрактала }
            {
               Alert("dwfractal = ",dwfractal, ", Bid = ",Bid);
               Tвниз=Time[0];
               while(true)                                  // Цикл открытия орд.
                  {
                    B++;
                    SL[B]=Bid+Ограничение*Point;
                    TP[B]=Bid-4*Point-Прибыль*Point;
                    ticketdown=OrderSend(Symb, OP_SELL, Lot, Bid,0, SL[B], TP[B],NULL,B,0,вниз); // Ордер вниз
                        Error=GetLastError();
                        switch(Error)                             // Преодолимые ошибки
                          {
                           case 6: Alert("Нет связи с торговым сервером. Пробуем ещё раз..");
                           RefreshRates();                        // Обновим данные
                           Sleep(1);                              // Задержка в цикле до нового тика
                         continue;                                // На след. итерацию
                          }
                         break;                                    // Выход из цикла
                   }
                   Сделкавниз=true;
            } 
        }
//----
   return(0);
  }
//+------------------------------------------------------------------+
Y hasta que no funcione en el probador, no tiene sentido utilizarlo para la optimización con un error. ¿Cuál es el error...?
 

Adaptado de otro hilo

Leonid82 24.01.2011 19:51

Hola, tengo un Asesor Experto que trabaja con EURUSD. ¿Cómo puedo obtener High[1] en GBPUSD por ejemplo?

Gracias por su ayuda.

 

Leonid82, High[1] es el precio alto de la primera vela. Para conseguirlo, sólo tienes que hacer este script. Y este precio no se obtiene del Asesor Experto, sino del terminal.

//+------------------------------------------------------------------+
//|                 Старт работы скрипта                             |
//+------------------------------------------------------------------+
int start(){
  Alert("High[",i,"] = ",High[i]);
        return(0);
}