//+------------------------------------------------------------------+
//| emadeneme.mq4 |
//| Copyright 2014, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2014, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
#property strict
#property indicator_chart_window
#property indicator_color1 DodgerBlue
#property indicator_color2 Magenta
#property indicator_width1 1
#property indicator_width2 1
double val1[];
double val2[];
bool al=true;
bool sat=true;
int scala=700;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//--- indicator buffers mapping
SetIndexStyle(0,DRAW_ARROW);
SetIndexArrow(0,233);
SetIndexStyle(1,DRAW_ARROW);
SetIndexArrow(1,234);
SetIndexBuffer(0,val1);
SetIndexBuffer(1,val2);
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
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[])
{
//---
//--- return value of prev_calculated for next call
return(rates_total);
}
//+------------------------------------------------------------------+
/*a:=if(Cross(Mov(C,1,S),Mov(C,15,S)),1,0);
if(a=1 , Cross(Mov(C,7,S),Mov(C,17,S)),0)*/
void OnStart()
{
int i,t=0,j,ma=0;
// Alert(Bars);
double dizi[4000],dizi2[4000],dizi3[4000],dizi4[4000],dizi5[4000],dizi6[4000],dizi7[4000],dizi8[4000],yuzdeoran,basitortalama=0,sonuc,ghesaplama,x,say;
// Alert(Bars);
for(i=0;i<4000;i++){
dizi[i]=iMA(NULL,0,15,0,MODE_SMA,PRICE_CLOSE,i);//3.bölüm kaç bar alınacağı,4.bölümişlemin kaçıncı bardan başlanacağını,5.bölüm hangi matematiksel işlemin olacağını.6.bölüm uygulanması istenen fiyatın türünü ifade etmektedir.son bölümü 0 almakta fayda var...
dizi2[i]=iMA(NULL,0,1,0,MODE_SMA,PRICE_CLOSE,i);//3.bölüm kaç bar alınacağı,4.bölümişlemin kaçıncı bardan başlanacağını,5.bölüm hangi matematiksel işlemin olacağını.6.bölüm uygulanması istenen fiyatın türünü ifade etmektedir.son bölümü 0 almakta fayda var...
dizi3[i]=iMA(NULL,0,7,0,MODE_SMA,PRICE_CLOSE,i);//3.bölüm kaç bar alınacağı,4.bölümişlemin kaçıncı bardan başlanacağını,5.bölüm hangi matematiksel işlemin olacağını.6.bölüm uygulanması istenen fiyatın türünü ifade etmektedir.son bölümü 0 almakta fayda var...
dizi4[i]=iMA(NULL,0,17,0,MODE_SMA,PRICE_CLOSE,i);//3.bölüm kaç bar alınacağı,4.bölümişlemin kaçıncı bardan başlanacağını,5.bölüm hangi matematiksel işlemin olacağını.6.bölüm uygulanması istenen fiyatın türünü ifade etmektedir.son bölümü 0 almakta fayda var...
dizi5[i]=iMA(NULL,0,15,0,MODE_SMA,PRICE_CLOSE,i);//3.bölüm kaç bar alınacağı,4.bölümişlemin kaçıncı bardan başlanacağını,5.bölüm hangi matematiksel işlemin olacağını.6.bölüm uygulanması istenen fiyatın türünü ifade etmektedir.son bölümü 0 almakta fayda var...
dizi6[i]=iMA(NULL,0,1,0,MODE_SMA,PRICE_CLOSE,i);//3.bölüm kaç bar alınacağı,4.bölümişlemin kaçıncı bardan başlanacağını,5.bölüm hangi matematiksel işlemin olacağını.6.bölüm uygulanması istenen fiyatın türünü ifade etmektedir.son bölümü 0 almakta fayda var...
dizi7[i]=iMA(NULL,0,7,0,MODE_SMA,PRICE_CLOSE,i);//3.bölüm kaç bar alınacağı,4.bölümişlemin kaçıncı bardan başlanacağını,5.bölüm hangi matematiksel işlemin olacağını.6.bölüm uygulanması istenen fiyatın türünü ifade etmektedir.son bölümü 0 almakta fayda var...
dizi8[i]=iMA(NULL,0,17,0,MODE_SMA,PRICE_CLOSE,i);//3.bölüm kaç bar alınacağı,4.bölümişlemin kaçıncı bardan başlanacağını,5.bölüm hangi matematiksel işlemin olacağını.6.bölüm uygulanması istenen fiyatın türünü ifade etmektedir.son bölümü 0 almakta fayda var...
if(dizi2[i]>dizi[i] && dizi3[i]>dizi4[i] && al==true )
{
val2[i]=Close[i];
t++;
al=false;
sat=true;
}
if(dizi5[i]>dizi6[i]&&dizi8[i]>dizi7[i]&& sat==true)
{
val1[i]=Close[i];
ma++;
al=true;
sat=false;
}
}
}
Files:
ssssssson.mq4
5 kb
- EMA with alert?
- Very easy to solve for you
- Clear indicator value on bar 0 (bar[0])
-
Play videoPlease edit your post.
For large amounts of code, attach it.
- There's no difference between dizi2[] and dizi6[], dizi3[] and dizi7[], or dizi4[] vs. dizi8[]. So why have them? You never look at any other index but [i], so you don't need arrays at all.
- You are counting up (to the past,) therefor the indicator repaints. Future values must not determine past values. Count down.
- You assume that there are at least 4000 bars on the chart. Indicator crashes when not.
- If you ever change your loop from all bars to IndicatorCounted(), then your al=false; sat=true; will be bogus. You also don't need two variables since when one is true, the other must be false. That must be saved in a buffer so you have the value from the previous bar.
thank you so much :)
You are missing trading opportunities:
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
Registration
Log in
You agree to website policy and terms of use
If you do not have an account, please register