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

 
Vinin >> :

Se muestra, justo fuera de la pantalla. Hazlo en una ventana aparte.

>> "en una ventana aparte" - ¿cómo?

 
splxgf >> :

Este es un foro de programación, no un foro de elliotchiska... quizás deberías ir a http://elliottwave.ru/

En este foro se discuten las estrategias de trading y las ondas de Elliott

también es una estrategia, ¿no?

 
dmmikl86 писал(а) >>

"en una ventana aparte" - ¿cómo?

#property indicator_separate_window
 
dmmikl86 >> :

>> "en una ventana aparte" - ¿cómo?

No sepuede poner un caballo en el mismo carro

Un caballo y una cierva temblorosa. (с)

Su indicador se desmorona inevitablemente, aunque se muestre en una ventana independiente. Es muy inconveniente mostrar 1,5 para el GPPUSD y 145,0 para el GBPJPY en el mismo gráfico sin ningún truco especial.

 

Buenas noches! Estoy tratando de crear mi propio EA... Lo hice similar a otro EA para el cruce de MA y el cruce de vuelta...

Pero lo hizo con sus propios parámetros ... Abre posiciones sólo en una dirección y ni siquiera las cierra...

¿Cómo puedo añadir una función aquí que se cierra cuando una línea se cruza de nuevo...

En definitiva, ¡más ayuda!:-(

....

Cuando la línea azul se cruza hacia arriba compró y cuando se cruza hacia abajo se cierra.

Al cruzar la línea roja hacia arriba vender y al cruzar hacia abajo cerrar.

Como se puede ver en la imagen, este sistema no funciona...

Ayuda con el código un poco... ¡por favor!


extern double Lots               = 0.1;
double Points;
int init ()
  {
   Points = MarketInfo (Symbol(), MODE_POINT);
   return(0);
  }
int CalculateCurrentOrders(string symbol)
  {
   int buys=0, sells=0;
   for(int i=0; i<OrdersTotal(); i++)
     {
      if(OrderSelect( i, SELECT_BY_POS, MODE_TRADES)==false) break;
      if(OrderSymbol()==Symbol() && OrderMagicNumber()== MAGICMA)
        {
         if(OrderType()==OP_BUY)  buys++;
         if(OrderType()==OP_SELL) sells++;
        }
     }
   if( buys>0) return( buys);
   else       return(- sells);
  }
double LotsOptimized()
  {
   double lot= Lots;
   int    orders= HistoryTotal();  
   int    losses=0;                 
   lot=NormalizeDouble(AccountFreeMargin()*0.02/1000.0,1);
   if(3>0)
     {
      for(int i= orders-1; i>=0; i--)
        {
         if(OrderSelect( i, SELECT_BY_POS, MODE_HISTORY)==false) { Print("Error in history!"); break; }
         if(OrderSymbol()!=Symbol() || OrderType()>OP_SELL) continue;
         //----
         if(OrderProfit()>0) break;
         if(OrderProfit()<0) losses++;
        }
      if( losses>1) lot=NormalizeDouble( lot- lot* losses/3,1);
     }
   if( lot<0.1) lot=0.1;
   return( lot);
  }
void CheckForOpen()
  {
double apglav1;
double apglav2;
double apsig1;
double apsig2;
int    res;
   if(Volume[0]>1) return;
   apglav1 =iCustom(NULL,0,"Caska",0,1); // первая линия на 1м баре
   apsig1 =iCustom(NULL,0,"Caska",1,1); // вторая линия на 1м баре   
   apglav2 =iCustom(NULL,0,"Caska",0,2); // первая линия на 2м баре
   apsig2 =iCustom(NULL,0,"Caska",1,2); // вторая линия на 2м баре
     if ( apglav2< apsig2 && apglav1> apsig1)
     {
      res=OrderSend(Symbol(),OP_BUY, LotsOptimized(),Ask,3,"", MAGICMA,0,Blue);
      return;
     }
     if ( apglav2> apsig2 && apglav1< apsig1)
     {
      res=OrderSend(Symbol(),OP_SELL, LotsOptimized(),Bid,3,"", MAGICMA,0,Red);
      return;
     }
  }
  void CheckForClose()
  {
double apglav1;
double apglav2;
double apsig1;
double apsig2;
   if(Volume[0]>1) return;
   apglav1 =iCustom(NULL,0,"Caska",0,1); // первая линия на 1м баре
   apsig1 =iCustom(NULL,0,"Caska",1,1); // вторая линия на 1м баре   
   apglav2 =iCustom(NULL,0,"Caska",0,2); // первая линия на 2м баре
   apsig2 =iCustom(NULL,0,"Caska",1,2); // вторая линия на 2м бар
   for(int i=0; i<OrdersTotal(); i++)
     {
      if(OrderSelect( i, SELECT_BY_POS, MODE_TRADES)==false)        break;
      if(OrderMagicNumber()!= MAGICMA || OrderSymbol()!=Symbol()) continue;
      if(OrderType()==OP_BUY)
        {
        if( apglav2> apsig2 && apglav1< apsig1) OrderClose(OrderTicket(),OrderLots(),Bid,3,White);
        break;
        }
   if(OrderType()==OP_SELL)
        {
        if( apglav2< apsig2 && apglav1> apsig1) OrderClose(OrderTicket(),OrderLots(),Ask,3,White);
        break;
        }
}
}
void start()
  {
   if(Bars<100 || IsTradeAllowed()==false) return;
   if( CalculateCurrentOrders(Symbol())==0) CheckForOpen();
   else                                    CheckForClose();
  }
 

Los eliotistas siempre están en los foros donde hablan de trading. Crea un hilo de conversación y haz una pregunta. Y puedes hacer la pregunta aquí. Tal vez lo responda yo o lo haga otra persona.

 
DDFedor >> :

tarde... el temporizador comenzó... >> "análisis de ondas

Sabluk también va a conseguir que se banee este hilo.

 
Ibiss >> :

Al cruzar la línea azul hacia arriba comprar y al cruzar hacia abajo cerrar.

Al cruzar la línea roja hacia arriba vender y al cruzar hacia abajo cerrar.

Como se puede ver en la imagen, este sistema no funciona.

Ayuda con el código un poco... ¡por favor!


Parece que está bien. (sólo un vistazo).

Sólo. Esta expresión

if(Volumen[0]>1) return;

será mejor que lo quites. "Esto" sólo funciona correctamente en el probador. Y difícilmente funcionará en línea.

Mejor hacer un trabajo adecuado en el Precio de Apertura.

 

¡Estimados usuarios del foro!

He escrito un indicador y hay un problema, la media móvil (Buf_2) no se dibuja, aquí está el código:

#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Lime
#property indicator_color2 Red

extern int average=14;
//---- buffers
double Buf_1[], Buf_2[];


//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0, Buf_1);
   SetIndexStyle(1,DRAW_LINE);
   SetIndexBuffer(1, Buf_2);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int    i, 
          Counted_bars=IndicatorCounted();


//----
//====================================================================
// график тела с объемом
double sum_b=0.0;
i=Bars- Counted_bars-1;           // Индекс первого непосчитанного
   while( i>=0) 
      {  
       //----
       if (Close[ i]>Open[ i]) {
         sum_b = sum_b + (Close[ i]-Open[ i])*Volume[ i];
         Buf_1[ i]= sum_b;
         }
         
       if (Close[ i]<Open[ i]) {
         sum_b = sum_b - (Open[ i]-Close[ i])*Volume[ i];
         Buf_1[ i]= sum_b;
         }
         
       if (NormalizeDouble(Close[ i],Digits)==NormalizeDouble(Open[ i],Digits)) {
         Buf_1[ i] = Buf_1[ i-1];
         }
         
       i--;
       //----
      }
//====================================================================
// average
int n=0;
   while( i>=0) 
      {  
       //----
       while( n<= average){
         Buf_2[ i]= Buf_1[ i- n];
         n++;
         }
       
       i--;
       //----
      }

//----
   return(0);
  }
//+------------------------------------------------------------------+
¿Me ayudas a entender cuál es el problema?
 

Urain писал(а) >>

Sabluk también va a conseguir que se prohíba esta rama.

Sí, genial.

2 Oper. En resumen, para poder operar puramente con ondas, hay que tener un cerebro con el rendimiento de un ordenador. Exactamente el cerebro con tal rendimiento. En otras palabras, este puede ser un caso de gráfico de un mes (con todas sus implicaciones en B1 al menos). Sólo en un mes un principiante puede calcular todos los escenarios posibles, teniendo en cuenta todo el historial que también debe estar disponible, preferiblemente desde el inicio de la negociación del instrumento. O, como alternativa, la respuesta a la pregunta: ¿cómo se sabe cómo es la segunda ola (usted lo ha preguntado)? Cualquier inversión comienza con la PRIMERA onda. Una corrección de la primera es la segunda. Tome M15, en él verá en detalle el inicio del movimiento, la corrección al mismo (la primera y segunda ondas - el PATRÓN) si lo hace cien veces (considere la reversión), entonces la respuesta a su pregunta está lista. Lo único que hay que tener en cuenta es que el mercado a menudo dibuja el patrón sin ninguna continuación, es decir, si se ha visto tal PATRÓN, en la realidad, pero no en la historia, se puede considerar cierto, sólo después de que la tendencia se desarrolla en la misma dirección, a menudo el patrón se rompe. En general, hay que tener muchas condiciones para operar en las olas.

Personalmente, no poseo una parte de estas características.

1. No soy muy inteligente.

2. Mucho tiempo para dominar un tema muy complicado.

3. Cotizaciones desde el principio del instrumento de negociación.

Pensamiento abstracto.

4. Es necesario mantener el patrón de onda entera al menos durante un año en la mente (ahí es donde uno necesita un cerebro) y no sólo mantenerlo, sino con variantes. Hay muchas variantes, así como los tipos de corrección. Es como la optimización de los parámetros: si añades un parámetro y dos valores, tienes dos veces más variantes, y si añades cinco parámetros y si añades 1000 valores...

Bueno, no tenemos suficiente cerebro para eso. Y no hay suficiente tiempo. Y no hay suficientes citas.

Y hay muchas otras cosas. Es mucho más fácil utilizar el AT clásico. No funciona peor que el VA, aunque personalmente siempre uso el Análisis de Ondas ya que pasé mucho tiempo en él. Pero a la MAYORÍA de los comerciantes les va muy bien sin BA.

Razón de la queja: