Mükemmel bir makale - tek küçük sorun örnek kodda bellek sızıntıları olması

DeInit() işlevinde nesneyi silerek bunu düzelttim
//+------------------------------------------------------------------+ //|| //+------------------------------------------------------------------+ void OnDeinit(const int reason) { delete Ichimoku; }
benim aklım :
yakın > geçmiş bulutlar ve yakın > geçmiş tenkansen, yakın > geçmiş kijunsen ve yakın > Şimdiki bulutlar, spanA > spanB olduğunda spanB kireç yeşili çizin:
#include <Indicators/Trend.mqh>
CiIchimoku*Ichimoku;
//--- gösterge ayarları
#property indicator_chart_window
#property indicator_buffers 9
#property indicator_plots 1
#property indicator_type1 DRAW_LINE
#property indicator_color1 LimeGreen
#property indicator_width1 2
double sp1tl[];
double sp2tl[];
double trendtang[];
double tenqk[];
double kijqk[];
double sp1ht[];
double sp2ht[];
double sp1qk[];
double sp2qk[];
void OnInit()
{
Ichimoku = yeni 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);
//--- indeksin çizileceği ilk çubuğu ayarlar
PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,51);
//--- Çizim sırasında çizgiler kayar
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 başlangıç;
//---
if(prev_calculated==0)
start=0;
else
start=prev_calculated-1;
//--- ana döngü
for(int i=start; i<rates_total && !IsStopped(); i++)
{
MqlRates PArray[];
int Data=CopyRates(_Symbol,_Period,0,1,PArray);
Ichimoku.Yenile(-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;
eğer(
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];
}
başka
{
trendtang[i]=EMPTY_VALUE;
}
}
//---
return(rates_total);
}
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Yeni makale Ichimoku göstergesine dayalı bir ticaret sistemi nasıl geliştirilir? yayınlandı:
Bu makalede de en popüler teknik göstergelere dayalı ticaret sistemlerini nasıl oluşturacağımızı öğrendiğimiz serimize devam ediyoruz. Bu sefer Ichimoku göstergesi hakkında konuşacağız ve ona dayalı bir ticaret sistemi geliştireceğiz.
Bu bölümde, ele aldığımız her strateji için olmak üzere adım adım ifadeler içeren bir plan hazırlayacağız. Bu adımı bir ticaret sistemi oluşturma sürecindeki en önemli adım olarak görüyorum çünkü oluşturacağımız bu plan, ticaret sisteminin kodunu yazarken bize bir kılavuz olarak hizmet edecektir.
Bu stratejiye göre, ticaret sistemi her tikte mevcut kapanış fiyatını, mevcut Senkou Span A değerini ve mevcut Senkou Span B değerini kontrol etmelidir. Ticaret sistemi daha sonra bu değerleri stratejinin koşullarına uygun şekilde karşılaştırarak ilgili sonucu grafik üzerinde yorum olarak yazmalıdır. Mevcut kapanış fiyatı mevcut Senkou Span B değerinden yüksekse ve aynı zamanda mevcut Senkou Span A değerinden de yüksekse, grafik üzerinde yükseliş trendi yorumu yazılmalıdır. Tersi şekilde, mevcut kapanış fiyatı mevcut Senkou Span B değerinden düşükse ve aynı zamanda mevcut Senkou Span A değerinden de düşükse, bu sefer de grafik üzerinde yükseliş trendi yorumu yazılmalıdır.
Yazar: Mohamed Abdelmaaboud