[ARCHIVO] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 3. - página 258

 
palesandr:

Se trata de promediar las aperturas y cierres en n velas

sólo dibuja una línea que apunta hacia abajo

¿Qué ocurre?

1) corregir el bucle interno

k no desde 1 sino desde i

2) en los primeros pasos, ir más allá de la historia

 
granit77:
También me gustaría ver un ejemplo de cómo hacerlo correctamente.

¿Qué puede ser más complicado que eso?

#property copyright "Bicus"
#property link      "Bicus"


double aPrices [5];

void PutStack (double p_Price)
{
  int nCounter;
  
  for (nCounter = 4; nCounter > 0; nCounter--)
    aPrices [nCounter] = aPrices [nCounter - 1];
    
  aPrices [0] = p_Price;
}

int start()
{
  int nCounter;
  
  PutStack (Bid);
  
  for (nCounter = 0; nCounter < 5; nCounter++)
    Print (nCounter, "-й тик: ", DoubleToStr (aPrices [nCounter], Digits));
}

El elemento 0 de la matriz tendrá el precio del último tick, el primer elemento tendrá el precio de hace 1 tick, el segundo elemento tendrá el precio de hace 2 ticks, etc.

¿O tal vez entendí mal algo y quise decir otra cosa?

 
palesandr:

Se trata de promediar las aperturas y cierres en n velas

sólo dibuja una línea que apunta hacia abajo

¿Qué ocurre?


#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Red 

extern double n = 50;
double Buf_0[];

int init()
  {
 SetIndexBuffer(0,Buf_0);
 SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2);    
    
   return(0);
  }

int start()
  {
   int    Counted_bars=IndicatorCounted();
      
   double v;
  int i=Bars-Counted_bars-1;
 
  while(i>=0)  
  {  v=0; 
          for(int k=i;k<i+n;k++)
        {
      
        v=v+MathAbs(Open[k]-Close[k]);
       
        
      }
       Buf_0[i] = v/n;
       
       i--;
       }
 return;
 }
 
Bicus:

¿Qué puede ser más complicado que eso?

El elemento 0 de la matriz tendrá el precio del último tick, el primer elemento tendrá el precio de hace 1 tick, el segundo elemento tendrá el precio de hace 2 ticks, etc.

¿O he entendido algo mal y he querido decir otra cosa?

Gracias, es exactamente lo que necesito. No parece complicado, pero la gente que no conoce los fundamentos de la programación a veces tarda mucho en hacer cosas sencillas. Tienen que idear todo desde cero.
Por ejemplo, para ti la "clasificación de burbujas" es un elemento del alfabeto, mientras que yo sólo he oído hablar de él, y al no tener un ejemplo delante, lo escribiría todo de nuevo :))
 
¿Alguien tiene una función de "Saltar la siguiente barra" preparada? :)
 
Hola a todos y beneficios. Quería preguntar si alguien tiene un indicador como el RSI, pero que nunca diverja. Gracias.
 
ikatsko:
¿Alguien tiene una función de saltar la siguiente barra ya hecha? :)

if(iTime(Symbol(),period_bar,number_of_ bars_to_skip)>OrderOpenTime()

Omitir_barra_para_saltar

0 - salta la actual, 1 - la actual y la siguiente, etc.

 

yosuf:
Hace poco leí en este foro que si abrimos 2 órdenes dirigidas de forma diferente con el mismo SL al mismo tiempo, después de que una de ellas se cierre, podemos intentar acabar con beneficios. ¿Alguien ha comprobado esta idea o no? ¿Tal vez haya un EA similar?
160777:

Expert Grid v.2.

"Copyright©2008 EAfactory.com y Expert-4x.com - "Revisión: 264".

Abre las posiciones en ambos sentidos y las cierra si la diferencia es positiva.

Ilumíname, ¿cómo es posible estar en el lado positivo si las órdenes son iguales en términos de tamaño de lote? La posición total será siempre menos el doble margen.

Otra cosa es si las órdenes tienen lotes diferentes: entonces el stop loss de la más pequeña no es el mismo, pero el stop loss de la más grande es igual al take profit. Entonces su cierre simultáneo lleva, si se sabe calcular, a un beneficio.

 

Hola a todos, ¿cómo puedo guardar un informe Statement.htm utilizando MQL? ¿Alguien lo sabe?

 

No consigo averiguar cómo hacer que se muestren las líneas, ya sea mediante este script o alejándose de él, o tal vez me equivoque:

   //---------------------------------
  
        double PriceBid = Bid;
        double PriceAsk = Ask;
        double be = GetWeightedBELevel();

        if(be != -1)
        {
                double BuyLots = GetBuyLotsSum();
                double SellLots = GetSellLotsSum();
                
                double Swap = GetSwap();
                //string str = be + " ";
                if(Swap < 0)
                {
                        double diff = BuyLots - SellLots;
                        //str = str + MarketInfo(Symbol(), MODE_TICKVALUE) * diff + " " + (-Swap / (MarketInfo(Symbol(), MODE_TICKVALUE) * diff) * Point) + " ";
                        be += ND(-Swap / (MarketInfo(Symbol(), MODE_TICKVALUE) * diff) * Point + diff / MathAbs(diff) * 1 * Point);
                }
                //str = str + Swap + " " + be;
                //Comment(str);
                        
                if((BuyLots > SellLots && ND(PrevPriceBid) < ND(be + TakeProfitBuy * Point) && ND(PriceBid) >= ND(be + TakeProfitBuy * Point)) ||
                        (BuyLots < SellLots && ND(PrevPriceAsk) > ND(be - TakeProfitSell * Point) && ND(PriceAsk) <= ND(be - TakeProfitSell * Point)))
                {
                        CloseAllBuy();
                        CloseAllSell();
                }               
                
        }
        //---------------------

es decir, cuando este precio alcanza este nivel las órdenes se cierran, y quiero ver este precio en el gráfico como una línea o una pequeña entrada en un cuadrado y con un guión.

guíame en la dirección correcta
Razón de la queja: