Просьба кинуть камни в очередной грааль...

 
Никак я не могу прикрепить картинку, впрочем, если провести прямую 45 градусов - почти оно.
Попробую приложить советника.
Тестировал на всех тиках с 1999 по 2007.06. До 2006.10 очень хочется радоваться, после - уже нет :)

Ставьте 5 мин usd/jpy, таргет = 0,05

//+------------------------------------------------------------------+
//|                                             My_MovingAverage.mq4 |
//|                                                   Grigorev Artem |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Grigorev Artem"
#property link      "http://www.metaquotes.net"

//---- input parameters
extern double    Lots=0.1;
extern double    Target=0.10;
extern double    MovingPeriod = 6;
extern double    MovingShift = 0;
extern bool      onlybuy=false;

bool buy=false, sell=false,  hbarop=false, countbar=true, lbarop=false, stop=false;
int showbars=0,b=0,count=0;
double price=0, lprice=0, medium=0, mediumhigh=0, mediumlow=0,maxlow=1000, maxhigh=0, othmedium=0,othmediumhigh=0,othmediumlow=0;

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
  ObjectCreate("mediumhigh",OBJ_HLINE,0,0,0,0,0);
  ObjectCreate("medium",OBJ_HLINE,0,0,0,0,0);
  ObjectCreate("mediumlow",OBJ_HLINE,0,0,0,0,0);
  ObjectSet("mediumhigh",OBJPROP_COLOR, Blue);
  ObjectSet("medium",OBJPROP_COLOR, Green);
  ObjectSet("mediumlow",OBJPROP_COLOR, Red);
  ObjectSet("mediumhigh",OBJPROP_STYLE, STYLE_DOT);
  ObjectSet("medium",OBJPROP_STYLE, STYLE_DOT);
  ObjectSet("mediumlow",OBJPROP_STYLE, STYLE_DOT); 
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
if (showbars!=Bars)
   {
   ObjectDelete("lineopenbuy");
   ObjectDelete("lineopensell");
   showbars=Bars;
   hbarop=false;
   lbarop=false;
   countbar=false;
   medium=0;
   mediumhigh=0;
   mediumlow=0;
   maxlow=1000;
   maxhigh=0;
   count++;
   for (int i=(Bars-1);i>1;i--)
      {
      medium=medium+NormalizeDouble(Low[i]+((High[i]-Low[i])/2),Digits);
      mediumhigh=mediumhigh+High[i];
      mediumlow=mediumlow+Low[i];
      }
   for (int j=200;j>1;j--)
      {
      othmedium=othmedium+NormalizeDouble(Low[j]+((High[j]-Low[j])/2),Digits);
      othmediumhigh=othmediumhigh+High[j];
      othmediumlow=othmediumlow+Low[j];
      }
   medium=NormalizeDouble(medium/(Bars-1),Digits);
   othmedium=NormalizeDouble(othmedium/(200),Digits);
   mediumhigh=NormalizeDouble(mediumhigh/(Bars-1),Digits);
   othmediumhigh=NormalizeDouble(othmediumhigh/(200),Digits);
   mediumlow=NormalizeDouble(mediumlow/(Bars-1),Digits);
   othmediumlow=NormalizeDouble(othmediumlow/(200),Digits);
   //if (othmedium>medium+1 || othmedium<medium-1) 
   //   {
      medium=othmedium;
      mediumhigh=othmediumhigh;
      mediumlow=othmediumlow;
   //   }
   Comment(medium,";",mediumhigh,";", mediumlow);
   ObjectSet("mediumhigh",OBJPROP_PRICE1, mediumhigh);
   ObjectSet("mediumhigh",OBJPROP_PRICE2, mediumhigh);
   ObjectSet("mediumhigh",OBJPROP_TIME1, Time[0]);
   ObjectSet("mediumhigh",OBJPROP_TIME2, Time[0]);
   ObjectSet("medium",OBJPROP_PRICE1, medium);
   ObjectSet("medium",OBJPROP_PRICE2, medium);
   ObjectSet("medium",OBJPROP_TIME1, Time[0]);
   ObjectSet("medium",OBJPROP_TIME2, Time[0]);
   ObjectSet("mediumlow",OBJPROP_PRICE1, mediumlow);
   ObjectSet("mediumlow",OBJPROP_PRICE2, mediumlow);
   ObjectSet("mediumlow",OBJPROP_TIME1, Time[0]);
   ObjectSet("mediumlow",OBJPROP_TIME2, Time[0]);
   }
double ma=iMA(NULL,0,MovingPeriod,MovingShift,MODE_SMMA,PRICE_CLOSE,1);
if (Close[1]>NormalizeDouble(ma,Digits))
   {
   ObjectCreate("lineopenbuy",OBJ_HLINE,0,Time[1],NormalizeDouble(ma,Digits),Time[1],NormalizeDouble(ma,Digits));
   ObjectSet("lineopenbuy", OBJPROP_COLOR, Blue);
   if (hbarop==false && Close[0]<mediumlow && Close[0]>mediumlow-0.1)//-(Target))
      {
      if (buy==false && sell==false && Close[0]<=ObjectGet("lineopenbuy",OBJPROP_PRICE1))
         {
         Lots=NormalizeDouble(AccountBalance()/10000,1);
         if (Lots<0.1) Lots=0.1;
         if (Lots>900) Lots=900;
         b=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,0,"buy",0,Blue);
         //b++;
         OrderSelect(b,SELECT_BY_TICKET);
         price=OrderOpenPrice();
         buy=true;
         hbarop=true;
         count=0;
         }
      }
   }
if (Close[1]<NormalizeDouble(ma,Digits) && onlybuy==false)
   {
   ObjectCreate("lineopensell",OBJ_HLINE,0,Time[1],NormalizeDouble(ma,Digits),Time[1],NormalizeDouble(ma,Digits));
   ObjectSet("lineopensell", OBJPROP_COLOR, Red);
   if (lbarop==false && Close[0]>mediumhigh && Close[0]<mediumhigh+0.1)//+(Target/2))
      {
      if (sell==false && buy==false && Close[0]>=ObjectGet("lineopensell",OBJPROP_PRICE1))
         {
         Lots=NormalizeDouble(AccountBalance()/10000,1);
         if (Lots<0.1) Lots=0.1;
         if (Lots>900) Lots=900;
         //Comment(AccountBalance(),";",Lots);
         b=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,0,"sell",0,Red);
         //b++;
         OrderSelect(b,SELECT_BY_TICKET);
         lprice=OrderOpenPrice();
         sell=true;
         lbarop=true;
         count=0;
         }
      }
   } 
if (buy==true)
   {
   if (Close[0]>price+Target) //|| count>40) //|| Close[0]>=mediumhigh)
      {
      OrderClose(b,Lots,Bid,3);
      buy=false;
      }
   }
if (sell==true && onlybuy==false)
   {
   if (Close[0]<lprice-Target) //|| count>40) //|| Close[0]<=mediumlow)
      {
      OrderClose(b,Lots,Ask,3);
      sell=false;
      }
   }

if (medium>lprice && sell==true)
   {
      OrderClose(b,Lots,Ask,3);
      sell=false;
   }
if (medium<price && buy==true) //medium
   {
      OrderClose(b,Lots,Bid,3);
      buy=false;
   }
//----
   return(0);
}  //+-----------------------------------------------------------------+


 
покидать камни? а что нам за это будет? :)
 
покидать камни? а что нам за это будет? :)



5 лет, с поселением .. ;-)
 
Давно я тут не был. Флудеров развелось... Раньше такого не было.
Причина обращения: