当前位置:首页>行情>趋势行情一键吃满!这才是散户的交易神器,EA源码在文末

趋势行情一键吃满!这才是散户的交易神器,EA源码在文末

  • 2026-11-05 00:01:15
趋势行情一键吃满!这才是散户的交易神器,EA源码在文末
大家好,我是浪哥!
很多做外汇的朋友,一直想找一款逻辑简单、不花哨、抓趋势超稳的MT4自动化EA,所以今天给大家分享这款FlyBot 2.0版本,实测非常适合咱们普通散户!
我简单给大家讲下它的核心交易逻辑,一听就懂。它会自动统计近期平均K线大小,一旦市场走出超常规的爆发大K线,超过我们设定的波动阈值,就判定行情开启单边趋势。大阳线直接顺势做多,大阴线果断顺势做空,专门抓市场的突破启动行情。
而且它自带顺势网格加仓机制,这点特别亮眼!只要趋势延续,它会自动分批加仓,放大单边行情的利润,一波趋势吃满收益。
除此之外,它还有很贴心的细节优化。自带交易时间过滤,默认避开凌晨低波动鸡肋行情,只在高活跃时段交易;仓位可以自动根据账户余额风控配比,不用手动调仓位,新手也能直接上手。
最后给大家提个关键风控提醒,它原生不带止损,震荡行情容易反复扫单,所以使用时一定要避开震荡盘整行情,配合趋势环境使用,稳定性直接拉满。
适合震荡盘的EA,浪哥也有很多,你们有需要私信浪哥,浪哥帮你们找:wzc10106
源码我放下面了,需要的自取:
//+------------------------------------------------------------------+//|                                                    FlyBot EA.mq4 |//|                                                       MFOREX.PRO |//|                                           https://www.mforex.pro |//+------------------------------------------------------------------+#property copyright "MFOREX.PRO"#property link      "https://www.mforex.pro"#property version   "2.00"#property strict//+------------------------------------------------------------------+//|========================= Параметры ==============================|                                                    //+------------------------------------------------------------------+   extern double    Risk             =0.5; extern int       ProfitPips       =20;extern int       TimeFrame        =0;  extern int       TimeStart        =3; extern int       TimeEnd          =23;extern int       HowBar           =1000; extern double    ExpBar           =2.4;extern int       MaxOrders        =200;extern int       Magic            =2021;extern int       SpeedEA          =200;extern bool      Info             =true;  extern color     TextColor        =White;   extern color     InfoDataColor    =DodgerBlue; extern color     FonColor         =Black;   extern int       FontSizeInfo     =7;      //+------------------------------------------------------------------+//|====================== Доп. Переменные ===========================|//+------------------------------------------------------------------+string           Commemt          ="www.mforex.pro";int              D,o;double           Lot              =0;int              dig;color            FonButtonBuy     =Blue;color            FonButtonSell    =Red;color            TextButtonBS     =White; color            ButtonBorder     =Blue;color            ClickButton      =Black;int              AccNumber        =0;//+------------------------------------------------------------------+//|====================== Инициализация =============================|//+------------------------------------------------------------------+intOnInit(){EventSetMillisecondTimer(SpeedEA);D=1;if (Digits==5 || Digits==3){D=10;}return(INIT_SUCCEEDED);}//+------------------------------------------------------------------+//|===================== ДеИнициализация ============================|//+------------------------------------------------------------------+voidOnDeinit(constint reason){EventKillTimer();ObjectsDeleteAll(0,OBJ_LABEL);ObjectsDeleteAll(0,OBJ_RECTANGLE_LABEL);}//+------------------------------------------------------------------+//|======================== Старт ===================================|//+------------------------------------------------------------------+voidOnTick(){//============== Привязываем к номеру счета ========================if(AccNumber>0 && AccountNumber()!=AccNumber) {RectLabelCreate("ERROR_FON",850,100,300,120,FonColor,1);PutLabelD("ERROR_TEXT1",780,110,"NOT A VALID ACCOUNT NUMBER!",1);PutLabelT("ERROR_TEXT2",845,130,"Contact the author:",1);PutLabelT("ERROR_TEXT3",845,150,"Skype:",1);PutLabelD("ERROR_TEXT4",780,150,"live:mforex.pro",1);PutLabelT("ERROR_TEXT5",845,170,"Telegram:",1);PutLabelD("ERROR_TEXT6",780,170,"@mforexpro",1);PutLabelT("ERROR_TEXT7",845,190,"E-Mail:",1);PutLabelD("ERROR_TEXT8",780,190,"mforex.pro@gmail.com",1);}else{//======= Находим лот Lot=NormalizeDouble(AccountBalance()/100*Risk/(MarketInfo(Symbol(),MODE_TICKVALUE)*100*D),2);if(Lot<MarketInfo(Symbol(),MODE_MINLOT)) {Lot=MarketInfo(Symbol(),MODE_MINLOT);} if(Lot>=MarketInfo(Symbol(),MODE_MAXLOT)) {Lot=MarketInfo(Symbol(),MODE_MAXLOT);}if(MarketInfo(Symbol(),MODE_LOTSTEP)==0.01)     dig =2;if(MarketInfo(Symbol(),MODE_LOTSTEP)==0.10)     dig =1;if(MarketInfo(Symbol(),MODE_LOTSTEP)==1.00)     dig =0;//======= Точка входаbool GoBuy =false;bool GoSell =false;bool buy =false;bool sell =false;if(iOpen(Symbol(),TimeFrame,0)>iClose(Symbol(),TimeFrame,0) && AverageBar(HowBar)*ExpBar<(iOpen(Symbol(),TimeFrame,0)-iClose(Symbol(),TimeFrame,0))/Point){buy=true;}if(iOpen(Symbol(),TimeFrame,0)<iClose(Symbol(),TimeFrame,0) && AverageBar(HowBar)*ExpBar<(iClose(Symbol(),TimeFrame,0)-iOpen(Symbol(),TimeFrame,0))/Point){sell=true; }if(TimeHour(TimeCurrent())>=TimeStart && TimeHour(TimeCurrent())<TimeEnd){    if(buy) {GoBuy=true;}if(sell) {GoSell=true;}    } //======= Открываем ордераif(CountHistBar(-1)==0){if(Count(-1)==0 && GoSell && AccountFreeMarginCheck(Symbol(),OP_SELL,Lot)>0){o=OrderSend(Symbol(),OP_SELL,Lot,Bid,5,0,0,Commemt,Magic,0,Red);}if(Count(-1)==0 && GoBuy && AccountFreeMarginCheck(Symbol(),OP_BUY,Lot)>0){o=OrderSend(Symbol(),OP_BUY,Lot,Ask,5,0,0,Commemt,Magic,0,Green);}    //======= Сетки ордепровif(CountAll(-1)<MaxOrders && (CountAll(-1)<AccountInfoInteger(ACCOUNT_LIMIT_ORDERS) || AccountInfoInteger(ACCOUNT_LIMIT_ORDERS)==0) && CountBar(-1)==0){if(Count(OP_BUY)>0 && GoBuy){o=OrderSend(Symbol(),OP_BUY,Lot,Ask,10,0,0,Commemt,Magic,0,Green);}  if(Count(OP_SELL)>0 && GoSell){o=OrderSend(Symbol(),OP_SELL,Lot,Bid,10,0,0,Commemt,Magic,0,Red);} }}//======= Закрываем ордера при достижении прибылиdouble ProfProc=AllLots(-1)*ProfitPips;if(ProfitAll(-1)>=ProfProc && ProfProc!=0){ClosePos();}//======= Вывод информации на графикif(Info){   RectLabelCreate3("INFO_fon",220,20,200,225,FonColor);   PutLabel("INFO_LOGO",165,24,"WWW.MFOREX.PRO");   PutLabel("INFO_Line",215,27,"___________________________");   PutLabel_("INFO_txt1",215,45,"Account information");   PutLabel("INFO_Line2",215,47,"___________________________");   PutLabel("INFO_txt2",215,65,"Minimum stop:");   PutLabel("INFO_txt3",215,80,"Average bar:");   PutLabel("INFO_txt4",215,95,"Balanse:");   PutLabel("INFO_txt5",215,110,"Equity:");   PutLabel("INFO_Line3",215,112,"___________________________");   PutLabel_("INFO_txt6",215,130,"Profit on account");   PutLabel("INFO_Line4",215,132,"___________________________");   PutLabel("INFO_txt7",215,150,"Profit on pair:");   PutLabel("INFO_txt8",215,165,"Total profit:");   PutLabel("INFO_txt9",215,180,"Profit for today:");   PutLabel("INFO_txt10",215,195,"Profit for yesterday:");   PutLabel("INFO_txt11",215,210,"Profit for week:");   PutLabel("INFO_txt12",215,225,"Profit for month:");   PutLabel_("INFO_txt13",85,65,DoubleToStr(MarketInfo(Symbol(),MODE_STOPLEVEL),0));   PutLabel_("INFO_txt14",85,80,DoubleToStr(AverageBar(HowBar),0));   PutLabel_("INFO_txt15",85,95,DoubleToStr(AccountBalance(),2));   PutLabel_("INFO_txt16",85,110,DoubleToStr(AccountEquity(),2));   PutLabel_("INFO_txt17",85,150,DoubleToStr(Profit(-1),2));   PutLabel_("INFO_txt18",85,165,DoubleToStr(ProfitAll(-1),2));   PutLabel_("INFO_txt19",85,180,DoubleToStr(ProfitDey(-1),2));   PutLabel_("INFO_txt20",85,195,DoubleToStr(ProfitTuDey(-1),2));   PutLabel_("INFO_txt21",85,210,DoubleToStr(ProfitWeek(-1),2));   PutLabel_("INFO_txt22",85,225,DoubleToStr(ProfitMontag(-1),2));   PutButtonBS("TRADEs_B",220,245,"BUY           " + DoubleToStr(Lot, dig),100,22,FonButtonBuy,TextButtonBS);   PutButtonBS("TRADEs_S",118,245,"SELL           " + DoubleToStr(Lot, dig),100,22,FonButtonSell,TextButtonBS);}//======= Завершение}}//+------------------------------------------------------------------+//|   Кнопки                                                         |//+------------------------------------------------------------------+voidOnChartEvent(constint id, constlong &lparam, constdouble &dparam, conststring &sparam){//+------------------------------------------------------------------+//   Изменяем цвет кнопок при нажатии//+------------------------------------------------------------------+  if(ObjectGetInteger(0,"TRADEs_B",OBJPROP_STATE)) {ObjectSetInteger(0,"TRADEs_B",OBJPROP_BGCOLOR,ClickButton);}else  {ObjectSetInteger(0,"TRADEs_B",OBJPROP_BGCOLOR,FonButtonBuy);}//------------------ if(ObjectGetInteger(0,"TRADEs_S",OBJPROP_STATE)) {ObjectSetInteger(0,"TRADEs_S",OBJPROP_BGCOLOR,ClickButton);}else  {ObjectSetInteger(0,"TRADEs_S",OBJPROP_BGCOLOR,FonButtonSell);}//------------------//+------------------------------------------------------------------+//    Проверим событие на нажатие кнопки мышки//+------------------------------------------------------------------+if(id==CHARTEVENT_OBJECT_CLICK){string clickedChartObject=sparam;if(clickedChartObject=="TRADEs_B")  {o=OrderSend(Symbol(),OP_BUY,Lot,Ask,10,0,0,Commemt,Magic,0,Green);          ObjectSetInteger(0,"TRADEs_B",OBJPROP_STATE,false);}if(clickedChartObject=="TRADEs_S")  {o=OrderSend(Symbol(),OP_SELL,Lot,Bid,10,0,0,Commemt,Magic,0,Red);   ObjectSetInteger(0,"TRADEs_S",OBJPROP_STATE,false);}//--- Принудительно перерисуем все объекты на графикеChartRedraw();}}//+------------------------------------------------------------------+//|========================== Функции ===============================|//+------------------------------------------------------------------+//======== Счетчик ордеров в истории на текущем баре ================intCountHistBar(int type){int count=0;for(int i=OrdersHistoryTotal()-1;i>=0;i--) if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))  {  if(Symbol()==OrderSymbol() && OrderMagicNumber()==Magic && OrderCloseTime()>=iTime(Symbol(),TimeFrame,0) && (type==-1 || OrderType()==type))   {  count++;  }  }return(count);}//======== Счетчик ордеров на текущем баре ================intCountBar(int type){int count=0;for(int i=OrdersTotal()-1;i>=0;i--) if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))  {  if(Symbol()==OrderSymbol() && OrderMagicNumber()==Magic && OrderOpenTime()>=iTime(Symbol(),TimeFrame,0) && (type==-1 || OrderType()==type))   {  count++;  }  }return(count);}//-- Закрытие ордеров (Закрыть все)voidClosePos(){bool cl; for(int i=OrdersTotal()-1;i>=0;i--){if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){if(OrderMagicNumber()==Magic){if(OrderType()==0){RefreshRates(); cl=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(MarketInfo(OrderSymbol(),MODE_BID),Digits),10,White);}if(OrderType()==1){RefreshRates(); cl=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(MarketInfo(OrderSymbol(),MODE_ASK),Digits),10,White);}}}}}//--- Сумма открытых лотовdoubleAllLots(int type) {double lot = 0;   for (int cnt = OrdersTotal() - 1; cnt >= 0; cnt--) {      if(OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES))      {if (OrderMagicNumber()==Magic && (OrderType() == type || type==-1)) lot += OrderLots();}}       return (lot);}//--- Счетчик всех ордеров на счетеintCountAll(int type){int count=0;for(int i=OrdersTotal()-1;i>=0;i--) if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))  {  if(OrderMagicNumber()==Magic &&  (type==-1 || OrderType()==type))   {  count++;  }  }return(count);}//================ Находим цену последнего бай =======================doubleBuyPric() {   double oldorderopenprice=0;   int oldticketnumber;   double unused = 0;   int ticketnumber = 0;   for (int cnt = OrdersTotal() - 1; cnt >= 0; cnt--) {      bool clos=OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);      if (OrderSymbol() != Symbol() || OrderMagicNumber() != Magic) continue;      if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderType() == OP_BUY) {         oldticketnumber = OrderTicket();         if (oldticketnumber > ticketnumber) {            oldorderopenprice = OrderOpenPrice();            unused = oldorderopenprice;            ticketnumber = oldticketnumber;}}}   return (oldorderopenprice);}//================ Находим цену последнего селл ====================== doubleSellPric() {   double oldorderopenprice=0;   int oldticketnumber;   double unused = 0;   int ticketnumber = 0;   for (int cnt = OrdersTotal() - 1; cnt >= 0; cnt--) {      bool clos=OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);      if (OrderSymbol() != Symbol() || OrderMagicNumber() != Magic) continue;      if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderType() == OP_SELL) {         oldticketnumber = OrderTicket();         if (oldticketnumber > ticketnumber) {            oldorderopenprice = OrderOpenPrice();            unused = oldorderopenprice;            ticketnumber = oldticketnumber;}}}   return (oldorderopenprice);}//======== Средняя величина бара в пипсах ================doubleAverageBar(int countCandles){double size=0;double returnSize=0;for(int i=1; i<=countCandles; i++) {size+=(iHigh(Symbol(),TimeFrame,i)-iLow(Symbol(),TimeFrame,i))/Point;}returnSize=size/countCandles;return(returnSize);}//======= Счетчик ордеровintCount(int type){int count=0;for(int i=OrdersTotal()-1;i>=0;i--) if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))  {  if(Symbol()==OrderSymbol() && Magic==OrderMagicNumber() && (type==-1 || OrderType()==type))   {  count++;  }  }return(count);}//======= Счетчик текущего профита по пареdoubleProfit(int type) {double Profit = 0; for (int cnt = OrdersTotal() - 1; cnt >= 0; cnt--) { if(OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)){if (Symbol()==OrderSymbol() && OrderMagicNumber()==Magic && (OrderType() == type || type==-1)) Profit += OrderProfit()+OrderSwap()+OrderCommission();}}return (Profit);}//======= Счетчик текущего профита по счетуdoubleProfitAll(int type) {double Profit = 0;   for (int cnt = OrdersTotal() - 1; cnt >= 0; cnt--) {      if(OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES))      {if (OrderMagicNumber()==Magic && (OrderType() == type || type==-1)) Profit += OrderProfit()+OrderSwap()+OrderCommission();}}       return (Profit);}//======= Счетчик зафиксированой прибыли за сегодня doubleProfitDey(int type) {double Profit = 0;   for (int cnt = OrdersHistoryTotal() - 1; cnt >= 0; cnt--) {      if(OrderSelect(cnt, SELECT_BY_POS, MODE_HISTORY))      {if (OrderMagicNumber()==Magic && OrderCloseTime()>=iTime(Symbol(),1440,0) && (OrderType() == type || type==-1)) Profit += OrderProfit()+OrderSwap()+OrderCommission();}}       return (Profit);}//======= Счетчик зафиксированой прибыли за вчера     doubleProfitTuDey(int type) {double Profit = 0;   for (int cnt = OrdersHistoryTotal() - 1; cnt >= 0; cnt--) {      if(OrderSelect(cnt, SELECT_BY_POS, MODE_HISTORY))      {if (OrderMagicNumber()==Magic && OrderCloseTime()>=iTime(Symbol(),1440,1) && OrderCloseTime()<iTime(Symbol(),1440,0) && (OrderType() == type || type==-1)) Profit += OrderProfit()+OrderSwap()+OrderCommission();}}       return (Profit);}//======= Счетчик зафиксированой прибыли за позавчера       doubleProfitEsTuDey(int type) {double Profit = 0;   for (int cnt = OrdersHistoryTotal() - 1; cnt >= 0; cnt--) {      if(OrderSelect(cnt, SELECT_BY_POS, MODE_HISTORY))      {if (OrderMagicNumber()==Magic && OrderCloseTime()>=iTime(Symbol(),1440,2) && OrderCloseTime()<iTime(Symbol(),1440,1) && (OrderType() == type || type==-1)) Profit += OrderProfit()+OrderSwap()+OrderCommission();}}       return (Profit);}//======= Счетчик зафиксированой прибыли за неделю  doubleProfitWeek(int type) {double Profit = 0;   for (int cnt = OrdersHistoryTotal() - 1; cnt >= 0; cnt--) {      if(OrderSelect(cnt, SELECT_BY_POS, MODE_HISTORY))      {if (OrderMagicNumber()==Magic && OrderCloseTime()>=iTime(Symbol(),10080,0) && (OrderType() == type || type==-1)) Profit += OrderProfit()+OrderSwap()+OrderCommission();}}       return (Profit);}//======= Счетчик зафиксированой прибыли за месяц          doubleProfitMontag(int type) {double Profit = 0;   for (int cnt = OrdersHistoryTotal() - 1; cnt >= 0; cnt--) {      if(OrderSelect(cnt, SELECT_BY_POS, MODE_HISTORY))      {if (OrderMagicNumber()==Magic && OrderCloseTime()>=iTime(Symbol(),43200,0) && (OrderType() == type || type==-1)) Profit += OrderProfit()+OrderSwap()+OrderCommission();}}       return (Profit);}//======= Создаем текстовую метку voidPutLabel(string name,int x,int y,string text)  {ObjectCreate(0,name,OBJ_LABEL,0,0,0);//--- установим координаты метки   ObjectSetInteger(0,name,OBJPROP_XDISTANCE,x);   ObjectSetInteger(0,name,OBJPROP_YDISTANCE,y);//--- установим угол графика, относительно которого будут определяться координаты точки   ObjectSetInteger(0,name,OBJPROP_CORNER,1);//--- установим текст   ObjectSetString(0,name,OBJPROP_TEXT,text);//--- установим шрифт текста   ObjectSetString(0,name,OBJPROP_FONT,"Arial");//--- установим размер шрифта   ObjectSetInteger(0,name,OBJPROP_FONTSIZE,FontSizeInfo);//--- установим цвет   ObjectSetInteger(0,name,OBJPROP_COLOR,TextColor);//--- скроем (true) или отобразим (false) имя графического объекта в списке объектов   ObjectSetInteger(0,name,OBJPROP_HIDDEN,false);//--- отобразим на переднем (false) или заднем (true) плане   ObjectSetInteger(0,name,OBJPROP_BACK,false);}//======= Создаем вторую текстовую меткуvoidPutLabel_(string name,int x,int y,string text)  {ObjectCreate(0,name,OBJ_LABEL,0,0,0);//--- установим координаты метки   ObjectSetInteger(0,name,OBJPROP_XDISTANCE,x);   ObjectSetInteger(0,name,OBJPROP_YDISTANCE,y);//--- установим угол графика, относительно которого будут определяться координаты точки   ObjectSetInteger(0,name,OBJPROP_CORNER,1);//--- установим текст   ObjectSetString(0,name,OBJPROP_TEXT,text);//--- установим шрифт текста   ObjectSetString(0,name,OBJPROP_FONT,"Arial");//--- установим размер шрифта   ObjectSetInteger(0,name,OBJPROP_FONTSIZE,FontSizeInfo);//--- установим цвет   ObjectSetInteger(0,name,OBJPROP_COLOR,InfoDataColor);//--- скроем (true) или отобразим (false) имя графического объекта в списке объектов   ObjectSetInteger(0,name,OBJPROP_HIDDEN,false);//--- отобразим на переднем (false) или заднем (true) плане   ObjectSetInteger(0,name,OBJPROP_BACK,false);}//======= Создаем прямоугольникboolRectLabelCreate3(string  name, int x,int y, int width, int height, color back_clr)  {ResetLastError(); //--- создадим прямоугольную метку if(!ObjectCreate(0,name,OBJ_RECTANGLE_LABEL,0,0,0))   {return(false);} //--- установим координаты метки    ObjectSetInteger(0,name,OBJPROP_XDISTANCE,x);    ObjectSetInteger(0,name,OBJPROP_YDISTANCE,y); //--- установим размеры метки    ObjectSetInteger(0,name,OBJPROP_XSIZE,width);    ObjectSetInteger(0,name,OBJPROP_YSIZE,height); //--- установим цвет фона    ObjectSetInteger(0,name,OBJPROP_BGCOLOR,back_clr); //--- установим тип границы    ObjectSetInteger(0,name,OBJPROP_BORDER_TYPE,BORDER_SUNKEN); //--- установим угол графика, относительно которого будут определяться координаты точки    ObjectSetInteger(0,name,OBJPROP_CORNER,1); //--- установим цвет плоской рамки (в режиме Flat)    ObjectSetInteger(0,name,OBJPROP_COLOR,Blue); //--- установим толщину плоской границы    ObjectSetInteger(0,name,OBJPROP_WIDTH,1); //--- отобразим на переднем (false) или заднем (true) плане    ObjectSetInteger(0,name,OBJPROP_BACK,false); //--- скроем (true) или отобразим (false) имя графического объекта в списке объектов    ObjectSetInteger(0,name,OBJPROP_HIDDEN,false); //--- успешное выполнение return(true);} //--- Кнопки торговой панели (Бай/Селл)voidPutButtonBS(string name,int x,int y,string text,int BWidth2,int BHeigh2,color FonButtonBS,color TXTButtonBS)  {ObjectCreate(0,name,OBJ_BUTTON,0,0,0);//--- установим координаты кнопки   ObjectSetInteger(0,name,OBJPROP_XDISTANCE,x);   ObjectSetInteger(0,name,OBJPROP_YDISTANCE,y);//--- установим размер кнопки   ObjectSetInteger(0,name,OBJPROP_XSIZE,BWidth2);   ObjectSetInteger(0,name,OBJPROP_YSIZE,BHeigh2);//--- установим угол графика, относительно которого будут определяться координаты точки   ObjectSetInteger(0,name,OBJPROP_CORNER,1);//--- установим текст   ObjectSetString(0,name,OBJPROP_TEXT,text);//--- установим шрифт текста   ObjectSetString(0,name,OBJPROP_FONT,"Arial");//--- установим размер шрифта   ObjectSetInteger(0,name,OBJPROP_FONTSIZE,FontSizeInfo);//--- установим цвет текста   ObjectSetInteger(0,name,OBJPROP_COLOR,TXTButtonBS);//--- установим цвет фона   ObjectSetInteger(0,name,OBJPROP_BGCOLOR,FonButtonBS);//--- установим цвет границы   ObjectSetInteger(0,name,OBJPROP_BORDER_COLOR,ButtonBorder);//--- скроем (true) или отобразим (false) имя графического объекта в списке объектов   ObjectSetInteger(0,name,OBJPROP_HIDDEN,false);//--- отобразим на переднем (false) или заднем (true) плане   ObjectSetInteger(0,name,OBJPROP_BACK,false);  }voidPutLabelT(string name,int x,int y,string text, int space)  {ObjectCreate(0,name,OBJ_LABEL,0,0,0);//--- установим координаты метки   ObjectSetInteger(0,name,OBJPROP_XDISTANCE,x);   ObjectSetInteger(0,name,OBJPROP_YDISTANCE,y);//--- установим угол графика, относительно которого будут определяться координаты точки   ObjectSetInteger(0,name,OBJPROP_CORNER, space);//--- установим текст   ObjectSetString(0,name,OBJPROP_TEXT,text);//--- установим шрифт текста   ObjectSetString(0,name,OBJPROP_FONT,"Arial");//--- установим размер шрифта   ObjectSetInteger(0,name,OBJPROP_FONTSIZE,FontSizeInfo);//--- установим цвет   ObjectSetInteger(0,name,OBJPROP_COLOR,TextColor);//--- скроем (true) или отобразим (false) имя графического объекта в списке объектов   ObjectSetInteger(0,name,OBJPROP_HIDDEN,false);//--- отобразим на переднем (false) или заднем (true) плане   ObjectSetInteger(0,name,OBJPROP_BACK,false);}//--- Цвет текста данныхvoidPutLabelD(string name,int x,int y,string data,int space)  {ObjectCreate(0,name,OBJ_LABEL,0,0,0);//--- установим координаты метки   ObjectSetInteger(0,name,OBJPROP_XDISTANCE,x);   ObjectSetInteger(0,name,OBJPROP_YDISTANCE,y);//--- установим угол графика, относительно которого будут определяться координаты точки   ObjectSetInteger(0,name,OBJPROP_CORNER,space);//--- установим текст   ObjectSetString(0,name,OBJPROP_TEXT,data);//--- установим шрифт текста   ObjectSetString(0,name,OBJPROP_FONT,"Arial");//--- установим размер шрифта   ObjectSetInteger(0,name,OBJPROP_FONTSIZE,FontSizeInfo);//--- установим цвет   ObjectSetInteger(0,name,OBJPROP_COLOR,InfoDataColor);//--- скроем (true) или отобразим (false) имя графического объекта в списке объектов   ObjectSetInteger(0,name,OBJPROP_HIDDEN,false);//--- отобразим на переднем (false) или заднем (true) плане   ObjectSetInteger(0,name,OBJPROP_BACK,false);}//--- Создаем прямоугольную метку (фон)boolRectLabelCreate(string  name, int x,int y, int width, int height, color back_clr, int space)  {ResetLastError(); //--- создадим прямоугольную метку if(!ObjectCreate(0,name,OBJ_RECTANGLE_LABEL,0,0,0))   {return(false);} //--- установим координаты метки    ObjectSetInteger(0,name,OBJPROP_XDISTANCE,x);    ObjectSetInteger(0,name,OBJPROP_YDISTANCE,y); //--- установим размеры метки    ObjectSetInteger(0,name,OBJPROP_XSIZE,width);    ObjectSetInteger(0,name,OBJPROP_YSIZE,height); //--- установим цвет фона    ObjectSetInteger(0,name,OBJPROP_BGCOLOR,back_clr); //--- установим тип границы    ObjectSetInteger(0,name,OBJPROP_BORDER_TYPE,BORDER_SUNKEN); //--- установим угол графика, относительно которого будут определяться координаты точки    ObjectSetInteger(0,name,OBJPROP_CORNER,space); //--- установим цвет плоской рамки (в режиме Flat)    ObjectSetInteger(0,name,OBJPROP_COLOR,Blue); //--- установим толщину плоской границы    ObjectSetInteger(0,name,OBJPROP_WIDTH,1); //--- отобразим на переднем (false) или заднем (true) плане    ObjectSetInteger(0,name,OBJPROP_BACK,false); //--- скроем (true) или отобразим (false) имя графического объекта в списке объектов    ObjectSetInteger(0,name,OBJPROP_HIDDEN,false); //--- успешное выполнение return(true);} //--- ТаймерvoidOnTimer()  {   RefreshRates();   OnTick();  }  由于时间有限加上对源码的追溯做不到最终解释权,所以我们提供的源码EA仅仅只能用来做模拟测试使用,严格禁止商业使用和跑实盘!

最新文章

随机文章