Excelente artículo - sólo un problema menor es que tengo fugas de memoria con el código de ejemplo

Encontré borrando el objeto en DeInit() arreglado esto
//+------------------------------------------------------------------+ //|| //+------------------------------------------------------------------+ void OnDeinit(const int reason) { delete Ichimoku; }
mi mente :
dibujar spanB limegreen cuando cerca > pasado nubes y cerca > pasado tenkansen, cerca > pasado kijunsen y cerca > Presente nubes, spanA > spanB :
#include <Indicators/Trend.mqh>
CiIchimoku*Ichimoku;
//--- configuración del indicador
#propiedad indicator_chart_window
#propiedad indicator_buffers 9
#propiedad indicator_plots 1
#propiedad indicator_type1 DRAW_LINE
#propiedad indicator_color1 LimeGreen
#propiedad indicator_width1 2
double sp1tl[];
double sp2tl[];
double trendtang[];
double tenqk[]
double kijqk[];
doble sp1ht[];
doble sp2ht[];
doble sp1qk[];
double sp2qk[];
void OnInit()
{
Ichimoku = new CiIchimoku();
Ichimoku.Create(_Símbolo,PERIODO_CURRENTE,9,26,52);
SetIndexBuffer(0,trendtang,INDICATOR_DATA);
SetIndexBuffer(1,sp1tl,INDICATOR_DATA);
SetIndexBuffer(2,sp2tl,INDICATOR_DATA);
SetIndexBuffer(3,tenqk,INDICATOR_DATA);
SetIndexBuffer(4,kijqk,INDICATOR_DATA);
SetIndexBuffer(5,sp1ht,INDICATOR_DATA);
SetIndexBuffer(6,sp2ht,INDICATOR_DATA);
SetIndexBuffer(7,sp1qk,INDICATOR_DATA);
SetIndexBuffer(8,sp2qk,INDICATOR_DATA);
IndicatorSetInteger(INDICATOR_DIGITS,_Digits+1);
//--- establece la primera barra a partir de la cual se dibujará el índice
PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,51);
//--- las líneas se desplazan al dibujar
PlotIndexSetInteger(0,PLOT_SHIFT,25);
}
int OnCalculate(const int rates_total,
const int prev_calculado,
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[])
{
int inicio;
//---
if(prev_calculado==0)
inicio=0;
si no
start=prev_calculado-1;
//--- bucle principal
for(int i=inicio; i<tasa_total && !IsStopped(); i++)
{
MqlRates PArray[];
int Datos=CopyRates(_Símbolo,_Periodo,0,1,PArray);
Ichimoku.Refresh(-1);
double spanAtl= Ichimoku.SenkouSpanA(0);
double spanBtl= Ichimoku.SenkouSpanB(0);
double spanAht= Ichimoku.SenkouSpanA(-25);
double spanBht= Ichimoku.SenkouSpanB(-25);
doble spanAqk= Ichimoku.SenkouSpanA(-51);
double spanBqk= Ichimoku.SenkouSpanB(-51);
double tenkanqk= Ichimoku.TenkanSen(-25);
double kijunqk= Ichimoku.KijunSen(-25);
sp1tl[i]=spanAtl;
sp2tl[i]=spanBtl;
tenqk[i]=tenkanqk;
kijqk[i]=kijunqk;
sp1ht[i]=spanAht;
sp2ht[i]=spanBht;
sp1qk[i]=spanAqk;
sp2qk[i]=spanBqk;
si(
sp1tl[i]>=sp2tl[i]
&& close[i]>tenqk[i]
&& close[i]>kijqk[i]
&& close[i]>sp1ht[i]
&& close[i]>sp2ht[i]
&& close[i]>sp1qk[i]
&& close[i]>sp2qk[i]
)
{
trendtang[i]=sp2tl[i];
}
else
{
trendtang[i]=VALOR_EMPTY;
}
}
//---
return(tasas_total);
}
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Usted acepta la política del sitio web y las condiciones de uso
Artículo publicado Aprendiendo a diseñar un sistema de trading con Ichimoku:
Este artículo continúa la serie sobre la construcción de sistemas comerciales basados en los indicadores más populares. Esta vez hablaremos del indicador Iсhimoku y crearemos un sistema comercial basado en sus indicadores.
En esta sección, desarrollaremos un plan para escribir el código de las estrategias analizadas. A nuestro juicio, que este es uno de los pasos más importantes a la hora de estudiar estrategias comerciales, porque este plan/esquema permite organizar paso a paso el proceso de desarrollo del sistema comercial tratado.
Según la descripción de esta estrategia, necesitaremos crear un sistema comercial que compruebe constantemente los precios de cierre y los valores de la Senkou Span A y la Senkou span. El sistema deberá entonces comparar estos valores y determinar cuál es mayor y cuál es menor. A partir de ahí, deberá decidir si el mercado se encuentra en una tendencia alcista o bajista. El valor correspondiente tendrá que aparecer como un comentario en el gráfico. Además, el precio de cierre y los valores de las líneas de Ichimoku deberán trazarse en el gráfico. Si el precio de cierre es simultáneamente más alto que Span B y más alto que Span A, la tendencia será alcista. Si el precio de cierre es simultáneamente inferior a Span B y a Span A, la tendencia será bajista.
Autor: Mohamed Abdelmaaboud