[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. No puedo ir a ningún sitio sin ti - 4. - página 231

 

Estoy de acuerdo contigo en lo del color, pero me gustaría poder cambiar el método MA. Tal vez puedas decirme cómo hacerlo correctamente. Por ejemplo, si a través del meta-editor copiamos parte del código, que es el responsable del método MA del aligator (por ejemplo) y lo pegamos en el código del MASD? ¿O sigue siendo una idea descabellada?

 
kiroyama:

Tal vez puedas decirme cómo hacerlo bien.

Lo haré y te pido que te tomes el consejo en serio. Merece la pena aprender a programar. No es tan difícil como parece. Los beneficios serán enormes.
 

Buenas tardes! Hace una semana -más de una semana- empecé a entender cómo escribir indicadores y decidí escribir al menos algo. Bien, no hay nada en el código. ¡¡¡Pero si ni siquiera se traza una línea!!! No sé dónde, pero no puedo ver ninguna señal de vida del indicador, como dicen !!!!!!.

Puede que no lo haya escrito algo importante, algún tipo de comando para dibujarlo... La disposición rusa - bueno, es conveniente para mí así que para

//+------------------------------------------------------------------+
//|                                          поиск вульфа Димона.mq4 |
//|                        Copyright 2012, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

#property indicator_chart_window

#property indicator_buffers 2
#property indicator_color1 Green
#property indicator_color2 Red
double ВерхняячертаBuffer1[];
double НижняячертаBuffer2[];

 double вершина; 
 double основание_первого_снижения;
 double начало;
 double вершина_волны_3;
 
 int timeframe, start ;
 int бар_вершина ;
 int бар_основание_первого_снижения;
 int бар_начало;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()

  {SetIndexStyle(0,DRAW_SECTION,STYLE_SOLID,2,CLR_NONE);Alert ("SetIndexStyle ",GetLastError( ) );
  SetIndexBuffer(0,ВерхняячертаBuffer1);Alert ("SetIndexBuffer ",GetLastError( ) );
   SetIndexEmptyValue(0,0.0);
   
   SetIndexStyle(1,DRAW_SECTION,STYLE_SOLID,2,CLR_NONE);Alert ("SetIndexStyle ",GetLastError( ) );
  SetIndexBuffer(1,НижняячертаBuffer2);Alert ("SetIndexBuffer ",GetLastError( ) ); 
   SetIndexEmptyValue(1,0.0);
//---- indicators




//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int    counted_bars=IndicatorCounted();
//----

  // for(int i=Bars; i>=0;i--)
  int i=Bars;
       бар_вершина=iHighest( NULL,  timeframe, MODE_HIGH, i, start ) ;
       вершина =High[ бар_вершина ];
       бар_основание_первого_снижения=iLowest( NULL,  timeframe, MODE_LOW, бар_вершина, start ) ;
       основание_первого_снижения=Low[ бар_основание_первого_снижения ];
       бар_начало=iLowest( NULL,  timeframe, MODE_LOW, бар_вершина*2, бар_вершина ) ;
       начало=Low[ бар_начало ];
       
         
  
    НижняячертаBuffer2[бар_начало]=начало;
    НижняячертаBuffer2[бар_основание_первого_снижения]=основание_первого_снижения;
    
     int бар_проверка=iLowest( NULL,  timeframe, MODE_LOW, 5, 150 ) ;
     double проверка=Low[ бар_проверка ];
    ВерхняячертаBuffer1[бар_проверка]=проверка;
    ВерхняячертаBuffer1[бар_основание_первого_снижения]=основание_первого_снижения;
    
//----
   return(0);
  }
//+------------------------------------------------------------------+

a mí mismo.

 
kiroyama:

Estoy de acuerdo contigo en lo del color, pero me gustaría poder cambiar el método MA. Tal vez puedas decirme cómo hacerlo correctamente. Por ejemplo, si a través del meta-editor copiamos parte del código, que es el responsable del método MA del aligator (por ejemplo) y lo pegamos en el código del MASD? ¿O sigue siendo una idea descabellada?

Podemos utilizar el código deMetaQuotes para sustituir la MA apropiada para el MACD y el precio también. Recientemente he publicado un indicador para Bollinger con posibilidad de establecer MA y precio. Si está interesado en dicha modificación para el MACD, en base a la descripción de la fórmula de cálculo deMetaQuotes escríbame en su mensaje personal dónde y cómo debería modificarla.

 

Hay demasiadas cosas escritas en su primer indicador para que funcione correctamente.
De hecho, empieza con uno más sencillo. Dibuja una línea horizontal.
Un indicador sin ciclo es como una noche de bodas sin novia.
Poner en un bucle y tirar el 80% de los lados.

 

Gracias. Pero sí, conozco el código-ahinea, y quiero, exactamente, Y en realidad, empezar con algo más simple. Dibuja una línea horizontal.

¡¡¡Y no da señales de vida!!! Bueno, no horizontal, ¡¡¡como sea!!! He definido dos buffers, he definido el estilo de línea en el Inite, he vinculado los buffers a las matrices... ¡No quiero ver una cola! ¡Esa es la cuestión!

Por favor, quién sabe, tal vez escribí mal SetIndexStyle, o algo... o algo... He establecido dos puntos para la línea

TopBuffer1[bar_check]=check;
TopBuffer1[bar_base_first_decrease]=base_first_decrease; ¿Qué más?

 
Una línea está formada por puntos. Encuentre un lugar en su programa que especifique cuántos puntos dibujar.
 
Gracias.
 
Termínalo en el programa:
ВерхняячертаBuffer1[0]=25;
ВерхняячертаBuffer1[1]=25;
ВерхняячертаBuffer1[2]=25;
ВерхняячертаBuffer1[3]=25;
ВерхняячертаBuffer1[4]=25;
ВерхняячертаBuffer1[5]=25;
ВерхняячертаBuffer1[6]=25;
ВерхняячертаBuffer1[7]=25;
ВерхняячертаBuffer1[8]=25;
ВерхняячертаBuffer1[9]=25;
ВерхняячертаBuffer1[10]=25;
ВерхняячертаBuffer1[11]=25;
...

y luego pensar en lo que faltaba
 
Bien, una vez más. He puesto SetIndexStyle - para dibujar una línea entre dos puntos predefinidos - así
SECCIÓN_DRAGADA 1 Segmentos de línea entre valores de línea no vacíos
He entendido bien lo que dice la ayuda, ¿no?
Razón de la queja: