Any questions from newcomers on MQL4 and MQL5, help and discussion on algorithms and codes - page 117 1...110111112113114115116117118119120121122123124...1965 New comment Artyom Trishkin 2017.02.09 19:44 #1161 Rustam Bikbulatov: would I be paying for it? Well, if someone with a lot of time can do it, you might get lucky. But otherwise, yes, time is money, sorry ;) Or try to do it yourself, and you'll get help here - help is only for those who are learning on their own and fail at something. micro timefram chart 30 Banned temporary for too Any rookie question, so Rustam Bikbulatov 2017.02.09 19:47 #1162 Artyom Trishkin: Start writing. What doesn't work - ask - we'll help. Or do you want us to do it for you? I wanted to connect these indicators, but there is one error. I've been struggling all day Files: Moving_Averages.mq4 11 kb tyyu.mq4 5 kb Artyom Trishkin 2017.02.09 19:54 #1163 Rustam Bikbulatov: I wanted to connect these indicators, but there's one error. I've been trying to do this all day. Show me your code, where you are trying to connect them, and what's wrong? Please paste the code with SRC button to see what you're trying to do, instead of uploading these codes to your system, they are already too much. WindowScreenShot and Multiple Timeframes Help with lines simple code Rustam Bikbulatov 2017.02.09 19:54 #1164 Rustam Bikbulatov: I tried to connect these indicators, but one error is coming out.'start' - function already defined and has body sound Moving Averages.mq4 178 5 Files: 3co2_Moving_Averages.mq4 13 kb Rustam Bikbulatov 2017.02.09 19:55 #1165 Artyom Trishkin: Show your code, where are you trying to connect them, and what are you failing to do? Please use SRC button to see what you are trying to do instead of uploading these codes to your system - there are already too many of them. I wish I knew what that magic button was. Vitaly Muzichenko 2017.02.09 20:05 #1166 Rustam Bikbulatov: if I knew what the magic button was.Oh well.Read the help on how to use the forum. Do you want a link, or can you find it yourself? Rustam Bikbulatov 2017.02.09 20:09 #1167 //+------------------------------------------------------------------+//| Custom Moving Average.mq4 |//| Copyright © 2004, MetaQuotes Software Corp. |//| http://www.metaquotes.net/ |//+------------------------------------------------------------------+#property copyright "Copyright © 2004, MetaQuotes Software Corp."#property link "http://www.metaquotes.net/"#property indicator_chart_window#property indicator_buffers 1#property indicator_color1 Red//---- indicator parametersextern int MA_Period=13;extern int MA_Shift=0;extern int MA_Method=0;extern double Alert_Level = 0;//---- indicator buffersdouble ExtMapBuffer[];double Buffer2[];//----int ExtCountedBars=0;int br1=0;//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+int init() { int draw_begin; string short_name;//---- drawing settings SetIndexStyle(0,DRAW_LINE); SetIndexShift(0,MA_Shift); IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS)); if(MA_Period<2) MA_Period=13; draw_begin=MA_Period-1;//---- indicator short name switch(MA_Method) { case 1 : short_name="EMA("; draw_begin=0; break; case 2 : short_name="SMMA("; break; case 3 : short_name="LWMA("; break; default : MA_Method=0; short_name="SMA("; } IndicatorShortName(short_name+MA_Period+")"); SetIndexDrawBegin(0,draw_begin);//---- indicator buffers mapping SetIndexBuffer(0,ExtMapBuffer);//---- initialization done return(0); }//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+int start() { if(Bars<=MA_Period) return(0); ExtCountedBars=IndicatorCounted();//---- check for possible errors if (ExtCountedBars<0) return(-1);//---- last counted bar will be recounted if (ExtCountedBars>0) ExtCountedBars--;//---- switch(MA_Method) { case 0 : sma(); break; case 1 : ema(); break; case 2 : smma(); break; case 3 : lwma(); }//---- done return(0); }//+------------------------------------------------------------------+//| Simple Moving Average |//+------------------------------------------------------------------+void sma() { double sum=0; int i,pos=Bars-ExtCountedBars-1;//---- initial accumulation if(pos<MA_Period) pos=MA_Period; for(i=1;i<MA_Period;i++,pos--) sum+=Close[pos];//---- main calculation loop while(pos>=0) { sum+=Close[pos]; ExtMapBuffer[pos]=sum/MA_Period; sum-=Close[pos+MA_Period-1]; pos--; }//---- zero initial bars if(ExtCountedBars<1) for(i=1;i<MA_Period;i++) ExtMapBuffer[Bars-i]=0; }//+------------------------------------------------------------------+//| Exponential Moving Average |//+------------------------------------------------------------------+void ema() { double pr=2.0/(MA_Period+1); int pos=Bars-2; if(ExtCountedBars>2) pos=Bars-ExtCountedBars-1;//---- main calculation loop while(pos>=0) { if(pos==Bars-2) ExtMapBuffer[pos+1]=Close[pos+1]; ExtMapBuffer[pos]=Close[pos]*pr+ExtMapBuffer[pos+1]*(1-pr); pos--; } }//+------------------------------------------------------------------+//| Smoothed Moving Average |//+------------------------------------------------------------------+void smma() { double sum=0; int i,k,pos=Bars-ExtCountedBars+1;//---- main calculation loop pos=Bars-MA_Period; if(pos>Bars-ExtCountedBars) pos=Bars-ExtCountedBars; while(pos>=0) { if(pos==Bars-MA_Period) { //---- initial accumulation for(i=0,k=pos;i<MA_Period;i++,k++) { sum+=Close[k]; //---- zero initial bars ExtMapBuffer[k]=0; } } else sum=ExtMapBuffer[pos+1]*(MA_Period-1)+Close[pos]; ExtMapBuffer[pos]=sum/MA_Period; pos--; } }//+------------------------------------------------------------------+//| Linear Weighted Moving Average |//+------------------------------------------------------------------+void lwma() { double sum=0.0,lsum=0.0; double price; int i,weight=0,pos=Bars-ExtCountedBars-1;//---- initial accumulation if(pos<MA_Period) pos=MA_Period; for(i=1;i<=MA_Period;i++,pos--) { price=Close[pos]; sum+=price*i; lsum+=price; weight+=i; }//---- main calculation loop pos++; i=pos+MA_Period; while(pos>=0) { ExtMapBuffer[pos]=sum/weight; if(pos==0) break; pos--; i--; price=Close[pos]; sum=sum-lsum+price*MA_Period; lsum-=Close[i]; lsum+=price; }//---- zero initial bars if(ExtCountedBars<1) for(i=1;i<MA_Period;i++) ExtMapBuffer[Bars-i]=0; }//+------------------------------------------------------------------+int start() {int limit; int counted_bars = IndicatorCounted();//---- check for possible errors if(counted_bars < 0) return(-1);//---- last counted bar will be recounted if(counted_bars > 0) counted_bars--; limit = Bars - counted_bars; if(counted_bars==0) limit--;//---- for(int i = limit; i >=0; i--) //for(int i = 1000; i >=0; i--) { Buffer2[i]=iMA(NULL,1,60,0,1,6,0); } if(((Buffer2[2]<0 && Buffer2[1]>Alert_Level) || (Buffer2[2]>0 && Buffer2[1]<Alert_Level)) && br1<Bars ) { PlaySound("alert.wav"); Sleep(500); PlaySound("alert.wav"); Sleep(500); PlaySound("alert.wav"); br1=Bars; Alert("На ",Symbol()," \"", "\" пересечение с =0= "); Print("На ",Symbol()," \"", "\" пересечение с =0= "); } }//+------------------------------------------------------------------+ Experts: NirvamanImax Combine Osma and MA Problem getting values from Mickey Moose 2017.02.09 20:37 #1168 another funny thingdouble OP = 5.00000TP = (OP/100); Print("TP= ",TP);2017.02.09 21:36:03.650 2015.01.05 04:00:00 martin H1-1 USDJPY,H1: TP= 0.5I don't understand since when do you divide 5 by 100 to be 0.5I've got it figured out - the terminal does not support different colours for some reason, it just takes what is already there in other functions iCustom() Question Metatrader known bugs ... HELP, failed cancel order Artyom Trishkin 2017.02.09 20:40 #1169 trader781:...the terminal does not support different colours and takes something that already exists in other functions In objects? Bullshit. Mickey Moose 2017.02.09 20:43 #1170 Artyom Trishkin: Objects? Bullshit. Artyom, the code I threw above 1...110111112113114115116117118119120121122123124...1965 New comment
would I be paying for it?
Or try to do it yourself, and you'll get help here - help is only for those who are learning on their own and fail at something.
Start writing. What doesn't work - ask - we'll help.
Or do you want us to do it for you?
I wanted to connect these indicators, but there's one error. I've been trying to do this all day.
Please paste the code with SRC button to see what you're trying to do, instead of uploading these codes to your system, they are already too much.
I tried to connect these indicators, but one error is coming out.
Show your code, where are you trying to connect them, and what are you failing to do?
Please use SRC button to see what you are trying to do instead of uploading these codes to your system - there are already too many of them.
if I knew what the magic button was.
Oh well.
Read the help on how to use the forum. Do you want a link, or can you find it yourself?
//| Custom Moving Average.mq4 |
//| Copyright © 2004, MetaQuotes Software Corp. |
//| http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2004, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net/"
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Red
//---- indicator parameters
extern int MA_Period=13;
extern int MA_Shift=0;
extern int MA_Method=0;
extern double Alert_Level = 0;
//---- indicator buffers
double ExtMapBuffer[];
double Buffer2[];
//----
int ExtCountedBars=0;
int br1=0;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
int draw_begin;
string short_name;
//---- drawing settings
SetIndexStyle(0,DRAW_LINE);
SetIndexShift(0,MA_Shift);
IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS));
if(MA_Period<2) MA_Period=13;
draw_begin=MA_Period-1;
//---- indicator short name
switch(MA_Method)
{
case 1 : short_name="EMA("; draw_begin=0; break;
case 2 : short_name="SMMA("; break;
case 3 : short_name="LWMA("; break;
default :
MA_Method=0;
short_name="SMA(";
}
IndicatorShortName(short_name+MA_Period+")");
SetIndexDrawBegin(0,draw_begin);
//---- indicator buffers mapping
SetIndexBuffer(0,ExtMapBuffer);
//---- initialization done
return(0);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int start()
{
if(Bars<=MA_Period) return(0);
ExtCountedBars=IndicatorCounted();
//---- check for possible errors
if (ExtCountedBars<0) return(-1);
//---- last counted bar will be recounted
if (ExtCountedBars>0) ExtCountedBars--;
//----
switch(MA_Method)
{
case 0 : sma(); break;
case 1 : ema(); break;
case 2 : smma(); break;
case 3 : lwma();
}
//---- done
return(0);
}
//+------------------------------------------------------------------+
//| Simple Moving Average |
//+------------------------------------------------------------------+
void sma()
{
double sum=0;
int i,pos=Bars-ExtCountedBars-1;
//---- initial accumulation
if(pos<MA_Period) pos=MA_Period;
for(i=1;i<MA_Period;i++,pos--)
sum+=Close[pos];
//---- main calculation loop
while(pos>=0)
{
sum+=Close[pos];
ExtMapBuffer[pos]=sum/MA_Period;
sum-=Close[pos+MA_Period-1];
pos--;
}
//---- zero initial bars
if(ExtCountedBars<1)
for(i=1;i<MA_Period;i++) ExtMapBuffer[Bars-i]=0;
}
//+------------------------------------------------------------------+
//| Exponential Moving Average |
//+------------------------------------------------------------------+
void ema()
{
double pr=2.0/(MA_Period+1);
int pos=Bars-2;
if(ExtCountedBars>2) pos=Bars-ExtCountedBars-1;
//---- main calculation loop
while(pos>=0)
{
if(pos==Bars-2) ExtMapBuffer[pos+1]=Close[pos+1];
ExtMapBuffer[pos]=Close[pos]*pr+ExtMapBuffer[pos+1]*(1-pr);
pos--;
}
}
//+------------------------------------------------------------------+
//| Smoothed Moving Average |
//+------------------------------------------------------------------+
void smma()
{
double sum=0;
int i,k,pos=Bars-ExtCountedBars+1;
//---- main calculation loop
pos=Bars-MA_Period;
if(pos>Bars-ExtCountedBars) pos=Bars-ExtCountedBars;
while(pos>=0)
{
if(pos==Bars-MA_Period)
{
//---- initial accumulation
for(i=0,k=pos;i<MA_Period;i++,k++)
{
sum+=Close[k];
//---- zero initial bars
ExtMapBuffer[k]=0;
}
}
else sum=ExtMapBuffer[pos+1]*(MA_Period-1)+Close[pos];
ExtMapBuffer[pos]=sum/MA_Period;
pos--;
}
}
//+------------------------------------------------------------------+
//| Linear Weighted Moving Average |
//+------------------------------------------------------------------+
void lwma()
{
double sum=0.0,lsum=0.0;
double price;
int i,weight=0,pos=Bars-ExtCountedBars-1;
//---- initial accumulation
if(pos<MA_Period) pos=MA_Period;
for(i=1;i<=MA_Period;i++,pos--)
{
price=Close[pos];
sum+=price*i;
lsum+=price;
weight+=i;
}
//---- main calculation loop
pos++;
i=pos+MA_Period;
while(pos>=0)
{
ExtMapBuffer[pos]=sum/weight;
if(pos==0) break;
pos--;
i--;
price=Close[pos];
sum=sum-lsum+price*MA_Period;
lsum-=Close[i];
lsum+=price;
}
//---- zero initial bars
if(ExtCountedBars<1)
for(i=1;i<MA_Period;i++) ExtMapBuffer[Bars-i]=0;
}
//+------------------------------------------------------------------+
int start()
{int limit;
int counted_bars = IndicatorCounted();
//---- check for possible errors
if(counted_bars < 0)
return(-1);
//---- last counted bar will be recounted
if(counted_bars > 0)
counted_bars--;
limit = Bars - counted_bars;
if(counted_bars==0) limit--;
//----
for(int i = limit; i >=0; i--)
//for(int i = 1000; i >=0; i--)
{
Buffer2[i]=iMA(NULL,1,60,0,1,6,0);
}
if(((Buffer2[2]<0 && Buffer2[1]>Alert_Level) ||
(Buffer2[2]>0 && Buffer2[1]<Alert_Level)) && br1<Bars )
{
PlaySound("alert.wav"); Sleep(500);
PlaySound("alert.wav"); Sleep(500);
PlaySound("alert.wav"); br1=Bars;
Alert("На ",Symbol()," \"", "\" пересечение с =0= ");
Print("На ",Symbol()," \"", "\" пересечение с =0= ");
}
}
//+------------------------------------------------------------------+
another funny thing
double OP = 5.00000
TP = (OP/100);
Print("TP= ",TP);
2017.02.09 21:36:03.650 2015.01.05 04:00:00 martin H1-1 USDJPY,H1: TP= 0.5
I don't understand since when do you divide 5 by 100 to be 0.5
I've got it figured out - the terminal does not support different colours for some reason, it just takes what is already there in other functions
...
the terminal does not support different colours and takes something that already exists in other functions
Objects? Bullshit.