Author: Raúl Canessa Castañeda
Indicators Used
Moving average indicator
0 Views
0 Downloads
0 Favorites
Media_LSMA
ÿþ//+------------------------------------------------------------------+

//|                                                   Media_LSMA.mq4 |

//|                                           Raúl Canessa Castañeda |

//|                               https://www.tecnicasdetrading.com/ |

//+------------------------------------------------------------------+

#property copyright "Raúl Canessa Castañeda"

#property link      "https://www.tecnicasdetrading.com/"

#property version   "1.00"

#property strict

#property indicator_chart_window

#property description "Media móvil LSMA (Least Square Moving Average). "

"Indicador gratuito para MT4. Si tienen interés en crear su propio indicador "

"modificado o automatizar su estrategia de trading, pueden comunicarse con nosotros a: "

"rcanessa@gmail.com"

//+------------------------------------------------------------------+

//| Función de inicialización de media móvil LSMA                    |

//+------------------------------------------------------------------+

#property indicator_buffers 1

#property indicator_color1 Red

#property indicator_width1 2

#property indicator_label1 "LSMA"



extern int Periodo_LSMA=10;  //Periodo de media móvil LSMA



input ENUM_APPLIED_PRICE  Precio_Aplicado=0;  //Precio aplicado en el calculo

//Aquí el trader puede escoger entre el precio de cierre (0), precio de apertura(1)

//precio máximo (2), precio mínimo (3), precio mediano (4), precio típico (5) y

//precio ponderado (6)



double LSMA_[];             //Array para cálculo de media móvil LSMA

double Tipo_Precio[];       //Array para el tipo de precio usado en el cálculo



//+------------------------------------------------------------------+

//|                                                                  |

//+------------------------------------------------------------------+

int OnInit()

  {

//Asignación de los buffers a las variables de matriz para el cálculo del indicador

   IndicatorDigits(5);

   IndicatorBuffers(1);

   SetIndexBuffer(0,LSMA_);                       //Buffer para media móvil LSMA



//Etiqueta de Técnicas de Trading

   ObjectCreate("Label_Tecnicas", OBJ_LABEL, 0, 0, 0);  //Creación de etiqueta de TecnicadeTrading

   ObjectSet("Label_Tecnicas", OBJPROP_CORNER, 0);    // Esquina de referencia

   ObjectSet("Label_Tecnicas", OBJPROP_XDISTANCE, 20);// Coordenada X

   ObjectSet("Label_Tecnicas", OBJPROP_YDISTANCE, 25);// Coordenada Y

   ObjectSetText("Label_Tecnicas","LSMA - TecnicasDeTrading.com",15,"Arial",Blue);



//---

   return(INIT_SUCCEEDED);

  }



//+------------------------------------------------------------------+

//|                                                                  |

//+------------------------------------------------------------------+

int deinit()

  {

   ObjectsDeleteAll();

   return(0);

  }

//+------------------------------------------------------------------+

//| Función de cálculo del indicador                                 |

//+------------------------------------------------------------------+

int OnCalculate(const int rates_total,

                const int prev_calculated,

                const datetime &time[],

                const double &open[],

                const double &high[],

                const double &low[],

                const double &close[],

                const long &tick_volume[],

                const long &volume[],

                const int &spread[])

  {

//Variables usadas para el procesado de datos y el cálculo de las medias móviles

   int i;           //Variable usada para el conteo de las barras de precios

   int LSMA1=0;     //Variable usada para el cálculo de la LSMA

   i=rates_total-prev_calculated-1;   //Conteo de barras de precios para el cálculo de la LSMA

   

//Cálculo de la media móvil

   if(i>0)

      LSMA1=i-Periodo_LSMA+1;

   if(i==0)

      LSMA1=0;



   while(LSMA1>=0)

    {

     LSMA_[LSMA1]=3*iMA(NULL,0,Periodo_LSMA,0,MODE_LWMA,Precio_Aplicado,LSMA1)-2*iMA(NULL,0,Periodo_LSMA,0,MODE_SMA,Precio_Aplicado,LSMA1);  //Cálculo de la LSMA mediante la formula 1: LWMA y SMA

     LSMA1--;

    }

   return(rates_total);

  }

Comments

Markdown supported. Formatting help

Markdown Formatting Guide

Element Markdown Syntax
Heading # H1
## H2
### H3
Bold **bold text**
Italic *italicized text*
Link [title](https://www.example.com)
Image ![alt text](image.jpg)
Code `code`
Code Block ```
code block
```
Quote > blockquote
Unordered List - Item 1
- Item 2
Ordered List 1. First item
2. Second item
Horizontal Rule ---