PDS.mq4 |
//| Copyright © 2012, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2012, Analizci"
#property link "http://www.ortaklar.de"
#property indicator_separate_window
#property indicator_buffers 4
#property indicator_minimum -2
#property indicator_maximum 2
#property indicator_color1 Blue
#property indicator_color2 Red
#property indicator_color3 White
#property indicator_color4 DarkOrange
extern int PS_LLV=14;
extern int PS_HHV=14;
extern int PS_ATR=14;
double BufferAL[];
double BufferSAT[];
double BufferCIKIS[];
double BufferSTOP[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
IndicatorBuffers(4);
SetIndexStyle(0, DRAW_ARROW);
//SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2);
SetIndexBuffer(0,BufferAL);
SetIndexLabel(0,"AL");
SetIndexArrow(0,233);
SetIndexStyle(1, DRAW_ARROW);
SetIndexBuffer(1,BufferSAT);
SetIndexLabel(1,"SAT");
SetIndexArrow(1,232);
//SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,2);
// SetIndexBuffer(1,BufferSAT);
SetIndexStyle(2,DRAW_LINE,STYLE_SOLID,2);
SetIndexBuffer(2,BufferCIKIS);
// SetIndexStyle(3,DRAW_LINE,STYLE_SOLID,2);
//SetIndexBuffer(3,BufferSTOP);
SetIndexStyle(3, DRAW_ARROW);
SetIndexBuffer(3,BufferSTOP);
SetIndexLabel(3,"Stop");
SetIndexArrow(3,232);
//---- indicators
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
int i,j, k,BarsSayisi;
int GirisAnahtari =0;
int ilk_GirisAnahtari =0;
int Sat_CikisAnahtari =0;
double Hedef_Fiyat=0;
double Stop_Fiyat=0;
double Stop_Anahtar=0;
double Alis_Anahtar=0;
double PDS_Dalis_Degeri=0;
double PDS_Dalis_Hedef_Degeri=0;
double TepeNokta_Degeri=0;
int PDS_Dalis_Bar=0;
int PDS_Dalis_Dip_Anahtar=0;
BarsSayisi=Bars;
for(i=BarsSayisi-(BarsSayisi- 1500);i>=0;i--)
{
int hy=iHighest(NULL,0,MODE_HIGH,PS_HHV,i);
int ld=iLowest(NULL,0,MODE_LOW,PS_LLV,i);
double hyd=High[hy];
double ldd=Low[ld];
double myATR=iATR(NULL,0,PS_ATR,i);
int LowBar=i;
double LowDegeri=Low[i];
if(ilk_GirisAnahtari==0)
{
if (hy>ld )
{
for(j=i;j<=i+(hy-ld);j++)
{
if ( Low[j]<LowDegeri)
{
LowBar=j;
LowDegeri=Low[j];
}
}
if(Close[i]>LowDegeri+myATR && Close[i+1]<=LowDegeri+iATR(NULL,0,PS_ATR,i+1) && hyd>Close[i])
{
ilk_GirisAnahtari =1;
GirisAnahtari =1;
BufferAL[i]= 1;
Hedef_Fiyat=LowDegeri+2.5*myATR ;
Stop_Fiyat=Close[i]-myATR;
Stop_Anahtar=0;
Alis_Anahtar=1;
// Alert("AL 1 " + i + "" + Close[i] + " " + myATR);
}
}
}
if ( GirisAnahtari ==1 && Stop_Anahtar==0 )
{
if(Close[i]<=Stop_Fiyat)
{
TepeNokta_Degeri=0;
Stop_Anahtar=1;
//Stop_Fiyat=0;
PDS_Dalis_Bar=i;
BufferSTOP[i]=1;
PDS_Dalis_Hedef_Degeri=Close[i]-2.5*myATR ;
PDS_Dalis_Degeri=Close[i];
//Alert("STOP" + " " + i +" " + Close[i] + " " + PDS_Dalis_Hedef_Degeri +" " + PDS_Dalis_Bar);
}
}
if ( PDS_Dalis_Bar !=0 )
{
//Alert(i);
if (Close[i]<PDS_Dalis_Hedef_Degeri)
{
PDS_Dalis_Dip_Anahtar=1;
}
if (PDS_Dalis_Dip_Anahtar==1)
{
LowBar=i;
LowDegeri=Low[i];
for(j=0;j<=PDS_Dalis_Bar-i;j++)
{
if ( Low[i+j]<LowDegeri)
{
LowBar=i+j;
LowDegeri=Low[i+j];
}
}
if(Close[i]>LowDegeri+myATR && Close[i+1]<=LowDegeri+iATR(NULL,0,PS_ATR,i+1))
{
ilk_GirisAnahtari =1;
BufferAL[i]= 1;
Hedef_Fiyat=LowDegeri+2.5*myATR ;
Stop_Fiyat=Close[i]-myATR;
Stop_Anahtar=0;
Alis_Anahtar=1;
// Alert("AL 2 " + "" + i);
}
}
}
if ( GirisAnahtari ==1 && Alis_Anahtar==1)
{
if(Close[i]>=Hedef_Fiyat)
{
BufferSAT[i]=1;
Sat_CikisAnahtari=1;
Stop_Fiyat=Close[i]-myATR;
ilk_GirisAnahtari =1;
Alis_Anahtar=0;
Stop_Anahtar=1;
ilk_GirisAnahtari =0;
}
if ( GirisAnahtari ==1 && Alis_Anahtar==1)
{
if(Close[i]>=Hedef_Fiyat)
{
if(TepeNokta_Degeri==0)
{
TepeNokta_Degeri=High[i];
Stop_Fiyat=High[i]-myATR;
}
if(High[i]>High[i+1] && TepeNokta_Degeri<High[i])
{
TepeNokta_Degeri=High[i];
Stop_Fiyat=TepeNokta_Degeri-myATR;
}
}
}
//BufferAL[i]= High[hy];
// double ld=LLV(l,5);
}
}
//----
//----
return(0);
}
//+------------------------------------------------------------------+
bu pds sistemini matrıkse çeviremezmiyiz üstadım...