|
我的是修改拼凑出来的,
两个同时加载。
- //+------------------------------------------------------------------+
- //| ProjectName |
- //| Copyright 2018, CompanyName |
- //| http://www.companyname.net |
- //+------------------------------------------------------------------+
- #property strict
- int FontSize=14;
- int WhichCorner0_3=1;
- int MarketSpread;
- int firsttime=1;
- string FontType="微软雅黑";
- color FontColor = Yellow;
- double p;
- int duokong=0;
- double pip=0.0001,point,digits;
- int slip=5;
- string hbd ="===";
- //+------------------------------------------------------------------+
- //| |
- //+------------------------------------------------------------------+
- int init()
- {
- ObjectCreate( "北京时间", OBJ_LABEL, 0,0,0,0,0,0,0);
- ObjectSet( "北京时间", OBJPROP_CORNER, 1);
- ObjectSet( "北京时间", OBJPROP_XDISTANCE, 110);
- ObjectSet( "北京时间", OBJPROP_YDISTANCE, 70);
- ObjectSetText( "北京时间", "", 18, "微软雅黑", clrAqua);
- ObjectCreate( "日期", OBJ_LABEL, 0,0,0,0,0,0,0);
- ObjectSet( "日期", OBJPROP_CORNER, 1);
- ObjectSet( "日期", OBJPROP_XDISTANCE, 115);
- ObjectSet( "日期", OBJPROP_YDISTANCE, 26);
- ObjectSetText( "日期", "", 14, "微软雅黑", clrAqua);
- return(0);
- }
- int start()
- {
-
- ObjectSetText("日期", TimeToStr(TimeLocal(), TIME_DATE), 20, "微软雅黑", clrAqua );
- ObjectSetText("北京时间", TimeToStr(TimeLocal(), TIME_MINUTES|TIME_SECONDS), 38, "微软雅黑", clrAqua );
- MarketSpread=MarketInfo(Symbol(),MODE_SPREAD);
-
- /*-------
- string Market_point5 = "输入点数 输入价格";
- ObjectCreate("Market_Point5_Label", OBJ_LABEL, 0, 0, 0);
- ObjectSetText("Market_Point5_Label", Market_point5, 12, FontType, clrAqua);
- ObjectSet("Market_Point5_Label", OBJPROP_CORNER, WhichCorner0_3);
- ObjectSet("Market_Point5_Label", OBJPROP_XDISTANCE, 110);
- ObjectSet("Market_Point5_Label", OBJPROP_YDISTANCE, 150);
- -------*/
- string Market_point4 = Ask;//买价
- ObjectCreate("Market_Point4_Label", OBJ_LABEL, 0, 0, 0);
- ObjectSetText("Market_Point4_Label", Market_point4, 20, FontType, clrRed);
- ObjectSet("Market_Point4_Label", OBJPROP_CORNER, WhichCorner0_3);
- ObjectSet("Market_Point4_Label", OBJPROP_XDISTANCE, 115);
- ObjectSet("Market_Point4_Label", OBJPROP_YDISTANCE, 150);
-
- string Market_point = MarketSpread;//点差
- ObjectCreate("Market_Point_Label", OBJ_LABEL, 0, 0, 0);
- ObjectSetText("Market_Point_Label", Market_point, 20, FontType, FontColor);
- ObjectSet("Market_Point_Label", OBJPROP_CORNER, WhichCorner0_3);
- ObjectSet("Market_Point_Label", OBJPROP_XDISTANCE,115);
- ObjectSet("Market_Point_Label", OBJPROP_YDISTANCE, 190);
-
- string Market_point3 = Bid;//卖价
- ObjectCreate("Market_Point3_Label", OBJ_LABEL, 0, 0, 0);
- ObjectSetText("Market_Point3_Label", Market_point3, 20, FontType, clrAqua);
- ObjectSet("Market_Point3_Label", OBJPROP_CORNER, WhichCorner0_3);
- ObjectSet("Market_Point3_Label", OBJPROP_XDISTANCE, 115);
- ObjectSet("Market_Point3_Label", OBJPROP_YDISTANCE, 230);
- if (hbd=="===")hbd=Symbol();
- PointInit();
- if(MarketInfo(hbd,MODE_DIGITS)==5){slip=slip*10;p=MarketInfo(Symbol(), MODE_SPREAD)/10;}
- if(MarketInfo(hbd,MODE_DIGITS)==4)p=MarketInfo(Symbol(), MODE_SPREAD);
-
-
- if (CountTrades(1,hbd,"",0)!=0)
- {
- string Market_point2 = "多单:"+DoubleToStr(CountTrades(1,hbd,"",0),2)+" 手, 均价:"+AvgPrice(1,hbd,1);
-
- ObjectCreate("Market_Point2_Label", OBJ_LABEL, 0, 0, 0);
- ObjectSetText("Market_Point2_Label", Market_point2, 14, FontType, clrWhite);
- ObjectSet("Market_Point2_Label", OBJPROP_CORNER, 1);
- ObjectSet("Market_Point2_Label", OBJPROP_XDISTANCE, 10);
- ObjectSet("Market_Point2_Label", OBJPROP_YDISTANCE, 305);
- }
- if(CountTrades(2,hbd,"",1)!=0)
- {
- string Market_point1 = "空单:"+DoubleToStr(CountTrades(2,hbd,"",1),2)+" 手, 均价:"+AvgPrice(2,hbd,2);
- ObjectCreate("Market_Point1_Label", OBJ_LABEL, 0, 0, 0);
- ObjectSetText("Market_Point1_Label", Market_point1, 14, FontType, clrWhite);
- ObjectSet("Market_Point1_Label", OBJPROP_CORNER, 1);
- ObjectSet("Market_Point1_Label", OBJPROP_XDISTANCE,10);
- ObjectSet("Market_Point1_Label", OBJPROP_YDISTANCE, 305);
- }
- return(0);
- }
- //+------------------------------------------------------------------+
- //| |
- //+------------------------------------------------------------------+
- int deinit()
- {
- switch(UninitializeReason())
- {
- case REASON_CHARTCLOSE:
- case REASON_REMOVE:
- case REASON_RECOMPILE:
- Comment("");
- //ObjectDelete(OBJECT_NAME);
- break;
- case REASON_CHARTCHANGE: // leave the object the way it is if simply switching timeframes
- case REASON_PARAMETERS:
- case REASON_ACCOUNT:
- break;
- }
- ObjectDelete("北京时间");
- ObjectDelete("日期");
- ObjectDelete("Market_Point3_Label");
- ObjectDelete("Market_Point4_Label");
- ObjectDelete("Market_Point_Label");
- ObjectDelete("Market_Point2_Label");
- ObjectDelete("Market_Point1_Label");
- return(0);
- }
- //+------------------------------------------------------------------+
- //+-------------------------------订单数量统计--
- double CountTrades(int duokong,string hb,string ordtip,int ordtype)
- {
- double count;
- for (int pos = OrdersTotal() - 1; pos >= 0; pos--)
- {
- OrderSelect(pos, SELECT_BY_POS, MODE_TRADES);
- if (OrderSymbol() == hb )
- {
- if (duokong == 1)
- {
- if ( OrderType() == ordtype)
- {
- count+=OrderLots();
- }
- }
-
- if (duokong == 2)
- {
- if ( OrderType() == ordtype)
- {
- count+=OrderLots();
- }
- }
- }
- }
-
- return (count);
- }
- /////////////////////////////////////////////////////
- void PointInit()
- {
- int digits = MarketInfo(hbd, MODE_DIGITS);
- if (digits >= 2 && digits < 4)
- {
- point = 0.01;
- }
- if (digits >= 4)
- {
- point = 0.0001;
- }
- }
-
- //////////////////////////////////////////
- //计算多单或者空单的平均入场价,结果精确到汇率小数点位
- double AvgPrice(int ddz,string hb,int duokong)
- {
- double sum = 0;
- double lots = 0;
-
-
- for (int pos = OrdersTotal() - 1; pos >= 0; pos--)
- {
- OrderSelect(pos, SELECT_BY_POS, MODE_TRADES);
- if (OrderSymbol() == hb )
- {
- if (duokong == 1)
- {
- if (OrderType() == 0)
- {
- sum += OrderOpenPrice() * OrderLots();
- lots += OrderLots();
- }
- }
-
- if (duokong == 2)
- {
- if (OrderType() == 1)
- {
- sum += OrderOpenPrice() * OrderLots();
- lots += OrderLots();
- }
- }
- }
- }
- double ret;
- if (lots!=0)
- ret = NormalizeDouble(sum/lots,5);
- else ret=0;
-
- return (ret);
- }
- ///////////////////////////////////////////
复制代码
- //+------------------------------------------------------------------+
- //| ProjectName |
- //| Copyright 2018, CompanyName |
- //| http://www.companyname.net |
- //+------------------------------------------------------------------+
- #property copyright "573"
- #property link "https://www.mql5.com"
- #property version "1.00"
- #property strict
- //+------------------------------------------------------------------+
- //| |
- //+------------------------------------------------------------------+
- int OnInit()
- {
- //biaoqian("shuoming","当前货币操作面板",75,5,10,White);
- //biaoqian("jiage","输入价格",95,200,12,White);
- anniu("closeall",clrWhite,90,30,"全部平仓");
- anniu("delgua",clrWhite,90,70,"删除挂单");
- anniu("dlpb",clrWhite,90,110,"独立平保");
- shurukuang("tp",clrWhite,90,190);
- anniu("slm",clrWhite,90,150,"统一止损");
- anniu("tpm",clrWhite,90,230,"统一止盈");
- return(INIT_SUCCEEDED);
- }
- //+------------------------------------------------------------------+
- //| |
- //+------------------------------------------------------------------+
- void OnDeinit(const int reason)
- {
- }
- //+------------------------------------------------------------------+
- //| |
- //+------------------------------------------------------------------+
- void OnTick()
- {
- }
- //+------------------------------------------------------------------+
- //| |
- //+------------------------------------------------------------------+
- void OnChartEvent(const int id,
- const long &lparam,
- const double &dparam,
- const string &sparam)
- {
- if(id==CHARTEVENT_OBJECT_CLICK)
- {
- if(sparam=="closeall")
- {
- closeall();
- }
- if(sparam=="delgua")
- {
- delgua();
- }
- if(sparam=="dlpb")
- {
- dlpb();
- }
- if(sparam=="tpm")
- {
- string tp=ObjectGetString(0,"tp",OBJPROP_TEXT);
- //Alert ("输入框的文字为:"+tp);
- modifytp(StringToDouble(tp));
- }
- if(sparam=="slm")
- {
- string tp=ObjectGetString(0,"tp",OBJPROP_TEXT);
- //Alert ("输入框的文字为:"+tp);
- modifysl(StringToDouble(tp));
- }
- }
- }
- //+------------------------------------------------------------------+
- //| |
- //+------------------------------------------------------------------+
- void modifytp(double tp)
- {
- int t=OrdersTotal();
- for(int i=t-1; i>=0; i--)
- {
- if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
- {
- if(OrderSymbol()==Symbol())
- {
- double p=MarketInfo(OrderSymbol(),MODE_POINT);
- if(OrderType()<=1 && OrderSymbol()==Symbol())
- {
- OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),tp,0,clrRed);
- }
- }
- }
- }
- }
- //+------------------------------------------------------------------+
- //| |
- //+------------------------------------------------------------------+
- void modifysl(double tp)
- {
- int t=OrdersTotal();
- for(int i=t-1; i>=0; i--)
- {
- if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
- {
- if(OrderSymbol()==Symbol())
- {
- double p=MarketInfo(OrderSymbol(),MODE_POINT);
- if(OrderType()<=1 && OrderSymbol()==Symbol())
- {
- OrderModify(OrderTicket(),OrderOpenPrice(),tp,OrderTakeProfit(),0,clrRed);
- }
- }
- }
- }
- }
- void dlpb()
- {
- int t=OrdersTotal();
- for(int i=t-1; i>=0; i--)
- {
- if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
- {
- if(OrderSymbol()==Symbol())
- {
- double p=MarketInfo(OrderSymbol(),MODE_POINT);
- if(OrderType()<=1 && OrderSymbol()==Symbol())
- {
- OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,clrRed);
- }
- }
- }
- }
- }
- //+------------------------------------------------------------------+
- //| |
- //+------------------------------------------------------------------+
- void anniu(string name,color yanse,int x,int y,string text,int changdu=0)
- {
- ObjectCreate(0,name,OBJ_BUTTON,0,0,0);
- ObjectSetInteger(0,name,OBJPROP_COLOR,yanse);
- ObjectSetInteger(0,name,OBJPROP_BGCOLOR,clrDarkGreen);
- ObjectSetInteger(0,name,OBJPROP_XDISTANCE,x);
- ObjectSetInteger(0,name,OBJPROP_YDISTANCE,y);
- if(changdu==0)
- {
- int as=StringLen(text);
- ObjectSetInteger(0,name,OBJPROP_XSIZE,as*20);
- }
- else
- {
- ObjectSetInteger(0,name,OBJPROP_XSIZE,changdu);
- }
- ObjectSetInteger(0,name,OBJPROP_YSIZE,30);
- ObjectSetString(0,name,OBJPROP_FONT,"Arial");
- ObjectSetString(0,name,OBJPROP_TEXT,text);
- ObjectSetInteger(0,name,OBJPROP_FONTSIZE,12);
- ObjectSetInteger(0,name,OBJPROP_BORDER_COLOR,clrOrange);
- ObjectSetInteger(0,name,OBJPROP_CORNER,1);
- }
- //+------------------------------------------------------------------+
- //| |
- //+------------------------------------------------------------------+
- void shurukuang(string name, color yanse, int x, int y)
- {
- ObjectCreate(0,name,OBJ_EDIT,0,0,0) ;
- ObjectSetInteger(0, name, OBJPROP_XDISTANCE,x) ;
- ObjectSetInteger(0, name, OBJPROP_YDISTANCE,y) ;
- //--- set object size
- ObjectSetInteger(0, name, OBJPROP_XSIZE, 80) ;
- ObjectSetInteger(0, name, OBJPROP_YSIZE,30) ;
- ObjectSetInteger(0, name, OBJPROP_FONTSIZE,14) ;
- //--- set the type of text alignmerk in the object
- ObjectSetInteger(0, name, OBJPROP_ALIGN, ALIGN_LEFT) ;
- //--- enable (true) or cancle (false) read-only mode
- ObjectSetInteger(0, name, OBJPROP_READONLY, false) ;
- //--- set the chart's corner, relative to which object coo
- ObjectSetInteger(0, name, OBJPROP_CORNER,1) ;
- //--- set text color
- ObjectSetInteger(0, name, OBJPROP_COLOR, clrBlack) ;
- //--- set border color
- ObjectSetInteger(0,name,OBJPROP_BORDER_COLOR,clrOrange);
- ObjectSetInteger(0,name,OBJPROP_BGCOLOR,clrDarkGray);
- //--- display in the foreground (false) or background ()
- ObjectSetInteger(0,name,OBJPROP_BACK,false);
- ObjectSetString(0,name,OBJPROP_TEXT,"");
- }
- //+------------------------------------------------------------------+
- //| |
- //+------------------------------------------------------------------+
- void biaoqian(string name, string neirong,int x,int y,int daxiao,color yanse)
- {
- if(ObjectFind(name)<0)
- {
- ObjectCreate(name, OBJ_LABEL,0,0,0);
- ObjectSetText(name, neirong, daxiao, "宋体", yanse);
- ObjectSet(name, OBJPROP_XDISTANCE,x);
- ObjectSet(name, OBJPROP_YDISTANCE,y);
- ObjectSet(name, OBJPROP_CORNER,1);
- }
- else
- {
- ObjectSetText(name,neirong,daxiao,"宋体", yanse);
- WindowRedraw();
- }
- }
- //+------------------------------------------------------------------+
- //| |
- //+------------------------------------------------------------------+
- void closeall()
- {
- int cnt, total;
- total=OrdersTotal();
- for(cnt=total-1; cnt>=0; cnt--)
- {
- OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
- if(OrderType()==OP_SELL && OrderSymbol()==Symbol())
- {
- OrderClose(OrderTicket(),OrderLots(),Ask,3,CLR_NONE);
- }
- if(OrderType()==OP_BUY && OrderSymbol()==Symbol())
- {
- OrderClose(OrderTicket(),OrderLots(),Bid,3,CLR_NONE);
- }
- }
- }
- //+------------------------------------------------------------------+
- //| |
- //+------------------------------------------------------------------+
- void closeallduo()
- {
- int cnt, total;
- total=OrdersTotal();
- for(cnt=total-1; cnt>=0; cnt--)
- {
- OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
- if(OrderType()==OP_BUY && OrderSymbol()==Symbol())
- {
- OrderClose(OrderTicket(),OrderLots(),Bid,3,CLR_NONE);
- }
- }
- }
- //+------------------------------------------------------------------+
- //| |
- //+------------------------------------------------------------------+
- void closeallkong()
- {
- int cnt, total;
- total=OrdersTotal();
- for(cnt=total-1; cnt>=0; cnt--)
- {
- OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
- if(OrderType()==OP_SELL && OrderSymbol()==Symbol())
- {
- OrderClose(OrderTicket(),OrderLots(),Ask,3,CLR_NONE);
- }
- }
- }
- //+------------------------------------------------------------------+
- //| |
- //+------------------------------------------------------------------+
- void delgua()
- {
- int t=OrdersTotal();
- for(int i=t-1; i>=0; i--)
- {
- if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
- {
- if(OrderType()>1 && OrderSymbol()==Symbol())
- {
- OrderDelete(OrderTicket());
- }
- }
- }
- }
- //+------------------------------------------------------------------+
复制代码
|
|