
начинает торговать со второго бара после открытия дня
многим казался мал отрезок просчета в 1 год для однозначных высказываний — вот вам за 3 года
//+------------------------------------------------------------------+
//| Xma.mq4 |
//| Copyright © 2009, XrustSolution. |
//| http://www.xrust.ucoz.net |
//-------------------------------------------------------------------+
#property copyright "#Copyright © 2008, XrustSolution.#"
#property link "#http://www.xrust.ucoz.net#"
// Совсем другой индикатор получился
#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 Yellow
#property indicator_color2 Blue
#property indicator_color3 Red
#property indicator_color4 Yellow
extern double porog=1.0;
//---- buffers
double Signal[],up[],dn[],fl[];
//+------------------------------------------------------------------+
void init()
{
SetIndexStyle(0,DRAW_LINE);
SetIndexDrawBegin(0,0);
SetIndexBuffer(0,Signal);
SetIndexStyle(1,DRAW_LINE);
SetIndexDrawBegin(1,0);
SetIndexBuffer(1,up);
SetIndexStyle(2,DRAW_LINE);
SetIndexDrawBegin(2,0);
SetIndexBuffer(2,dn);
SetIndexStyle(3,DRAW_LINE);
SetIndexDrawBegin(3,0);
SetIndexBuffer(3,fl);
IndicatorShortName("Xma("+porog+")");
return;
}
//+------------------------------------------------------------------+
int start()
{
int limit;
double tmp;
int counted_bars=IndicatorCounted();
int i;
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
for(i=limit;i>=0;i--)
{
if(i==Bars-1) Signal[i]=Close[i]; else Signal[i]=Signal[i+1];
tmp=0;
if(Signal[i]>0)
tmp=(Close[i]/Signal[i]-1.0)*1000.0;
if(MathAbs(tmp)>porog)
{
double Znak=1.0; if(tmp<0) Znak=-1.0;
Signal[i]=Close[i]/(1.0+Znak*porog/1000.0);
if(Signal[i]>Signal[i+1]) up[i]=Signal[i];
if(Signal[i]<Signal[i+1]) dn[i]=Signal[i];
if(Signal[i]==Signal[i+1]) fl[i]=Signal[i];
}
}
return(0);
}
//+------------------------------------------------------------------+
if(Lot==0) lots=AccountEquity()/(Count*2*Koeff);
AM2