Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Попробую приложить советника.
Тестировал на всех тиках с 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); } //+-----------------------------------------------------------------+