"Ichimoku göstergesine dayalı bir ticaret sistemi nasıl geliştirilir?" makalesi için tartışma

 

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.

  • Birinci strateji: Ichimoku trend tanımlayıcı:

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.

Ichimoku trend tanımlayıcı planı

Yazar: Mohamed Abdelmaaboud

[Silindi]  
Bu iyi bir sunum, beğendim
 
ApostleT #:
Bu iyi bir sunum, beğendim
Yorumunuz için teşekkürler
 
Çok iyi ve faydalı bir ders.
Teşekkür ederim
 
Alım satım sinyallerini daha güçlü hale getirmek için açıklanan stratejileri bir araya getirmenin daha iyi olacağını düşünüyorum.
 

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;
  }
 
Herkese merhaba, mql5'i bozmak için bana yardım edin:
Dosyalar:
trendtang.mq5  3 kb
 

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);

}