Articolo eccellente: l'unico problema minore è che ho avuto perdite di memoria con il codice di esempio.

Ho scoperto che cancellando l'oggetto in DeInit() si risolveva il problema.
//+------------------------------------------------------------------+ //|| //+------------------------------------------------------------------+ void OnDeinit(const int reason) { delete Ichimoku; }
la mia mente :
draw spanB limegreen when close > past clouds and close > past tenkansen, close > past kijunsen and close > Present clouds, spanA > spanB :
#includere <Indicatori/Trend.mqh>
CiIchimoku*Ichimoku;
//--- impostazioni dell'indicatore
#proprietà indicator_chart_window
#proprietà indicator_buffers 9
#proprietà indicator_plots 1
#proprietà indicatore_tipo1 DRAW_LINE
#proprietà indicator_color1 LimeGreen
#proprietà indicator_width1 2
double sp1tl[];
double sp2tl[];
double trendtang[];
double tenqk[];
doppio kijqk[];
doppio sp1ht[];
doppio sp2ht[];
doppio sp1qk[];
doppio sp2qk[];
void OnInit()
{
Ichimoku = new CiIchimoku();
Ichimoku.Create(_Symbol,PERIOD_CURRENT,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);
//--- imposta la prima barra a partire dalla quale verrà disegnato l'indice
PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,51);
//--- sposta le linee durante il disegno
PlotIndexSetInteger(0,PLOT_SHIFT,25);
}
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[])
{
int start;
//---
if(prev_calculated==0)
start=0;
altrimenti
start=prev_calcolato-1;
//--- ciclo principale
for(int i=start; i<rates_total && !IsStopped(); i++)
{
MqlRates PArray[];
int Data=CopyRates(_Symbol,_Period,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);
double 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;
se(
sp1tl[i]>=sp2tl[i]
&& close[i]>tenqk[i]
&& close[i]>kijqk[i]
&& close[i]>sp1ht[i]
&& chiusura[i]>sp2ht[i]
&& chiusura[i]>sp1qk[i]
&& chiusura[i]>sp2qk[i]
)
{
trendtang[i]=sp2tl[i];
}
altrimenti
{
trendtang[i]=EMPTY_VALUE;
}
}
//---
return(rates_total);
}
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Accetti la politica del sito e le condizioni d’uso
Il nuovo articolo Scopri come progettare un sistema di trading tramite Ichimoku è stato pubblicato:
Ecco un nuovo articolo della nostra serie su come progettare un sistema di trading con gli indicatori più comuni, parleremo in dettaglio dell'indicatore Ichimoku e di come progettare un sistema di trading con questo indicatore.
In questa parte, creeremo uno schema per ogni strategia, considero questo passaggio il passo più importante della nostra missione nel creare un sistema di trading in quanto ci aiuterà a progettare uno schema passo-passo che ci aiuterà a comprendere cosa vogliamo fare esattamente.
Sulla base di questa strategia, dobbiamo creare un sistema di trading in grado di controllare continuamente i valori dei prezzi di chiusura, Senkou Span A e Senkou Span B. Abbiamo bisogno che il sistema di trading faccia un confronto tra questi valori per decidere quale sia maggiore o minore e determinare se c'è un trend rialzista o ribassista e visualizzarlo come commento sul grafico con i valori del prezzo di chiusura e le linee Ichimoku. Se il prezzo di chiusura è maggiore di Span B e il prezzo di chiusura è maggiore di Span A, allora il trend è al rialzo. Se il prezzo di chiusura è inferiore di Span B e il prezzo di chiusura è inferiore di Span A, il trend è al ribasso.
Autore: Mohamed Abdelmaaboud