记得有一个指标开仓后会在开仓价格处自动画线一直到平仓处 是个直线 忘记是哪个交易商自带的 MT4有这个指标吗
止赢止损本身不就有一条虚线吗
Hongjun Li:
止赢止损本身不就有一条虚线吗
不是那个 我说的这个是开平仓的自动连线 具体忘记了是开仓就有线还是平仓以后有线 这个比软件带的开仓线要直观 开仓线只能看价格 我说的这个开平仓线是3点1000开仓 5点1005平仓 这样的连线 这个看入场出场选的好不好很直观
附加的文件:
USDCHFM15.png
33 kb
//+------------------------------------------------------------------+ //| 指标-交易历史图形化.mq4 | //| shufan | //| qq:958698976 | //+------------------------------------------------------------------+ #property copyright "shufan" #property link "" //指标在主图显示 #property indicator_chart_window #property indicator_buffers 3 int init() { return(0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //取消指标后,删除图表的对象 ObjectsDeleteAll(0); return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { //定义统计变量 int BuyOrders=0,SellOrders=0,ProfitOrders=0;//买入、卖出订单、盈利订单计数变量 double TotalTrades=0;//交易总手数 double TotalProfit=0,TotalLoss=0;//盈利总数、亏损总数变量 SetLable("时间栏","动态报价时间:"+TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS)+" 星期"+IntegerToString(DayOfWeek()),4,35,9,"Verdana"); //统计历史订单 int HistoryOrderTotal=OrdersHistoryTotal();//获得历史订单总数 for (int i=0;i<HistoryOrderTotal;i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false)Print("order select error ",GetLastError());//选择订单 int OpenBar=iBarShift(Symbol(),0,OrderOpenTime());//获取开仓价柱数 int CloseBar=iBarShift(Symbol(),0,OrderCloseTime());//获取平仓价柱数 if (OrderType()==0) //买入订单统计 { BuyOrders++;//买入订单数累计 //计算盈亏总数 if (OrderProfit()>0) { TotalProfit=TotalProfit+OrderProfit();//总盈利累计 ProfitOrders=ProfitOrders+1;//盈利订单数累计 } if (OrderProfit()<0) TotalLoss=TotalLoss+OrderProfit();//总亏损累计 } if (OrderType()==1) //卖出订单统计 { SellOrders++;//卖出订单累计 //计算盈亏总数 if (OrderProfit()>0) { TotalProfit=TotalProfit+OrderProfit();//总盈利累计 ProfitOrders=ProfitOrders+1;//盈利订单数累计 } if (OrderProfit()<0) TotalLoss=TotalLoss+OrderProfit();//总亏损累计 } TotalTrades=TotalTrades+OrderLots();//交易总手数 } for (i=1;i<=HistoryOrderTotal;i++) { if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) continue;//选择订单 if (OrderSymbol()!=Symbol()) continue; if (OrderType()==0) DrawMark(0); else DrawMark(1);//画买单箭头 DrawMark(2);//画平仓符号 SetObj(OrderTicket(),OrderType(),OrderOpenTime(),OrderOpenPrice(),OrderCloseTime(),OrderClosePrice()); } //画持仓订单,动态显示开仓价与当前价的连线 int NowOrderTotal=OrdersTotal()-1;//获得持仓订单总数 for (int j=0;j<=NowOrderTotal;j++) { if(OrderSelect(j,SELECT_BY_POS,MODE_TRADES)==false) continue;//选择订单 //删除旧连线对象 string NowObjectName="订单号:"+DoubleToStr(OrderTicket(),0); ObjectDelete(NowObjectName); int NowOpenBar=iBarShift(Symbol(),0,OrderOpenTime());//获取开仓价柱数 int NowCloseBar=iBarShift(Symbol(),0,OrderCloseTime());//获取平仓价柱数 if(OrderSymbol()==Symbol()) { if (OrderType()==0) DrawMark(0);//画买单箭头 if (OrderType()==1) DrawMark(1);//画卖单箭头 SetObj(OrderTicket(),OrderType(),OrderOpenTime(),OrderOpenPrice(),Time[0],Close[0]);// 画 连线 } } //显示统计信息 SetLable("交易单统计","历史交易单总计:"+IntegerToString(HistoryOrderTotal) +" (买入订单:"+IntegerToString(BuyOrders) +" 卖出订单:"+IntegerToString(SellOrders)+")" ,4,50,9,"Verdana"); SetLable(" 胜 率 ", " 盈 利 订 单 百 分比:"+DoubleToStr((ProfitOrders*0.01)/(HistoryOrderTotal*0.01)*100,2)+"%" ,4,65,9,"Verdana"); SetLable("盈亏统计", "净盈利:"+DoubleToStr(TotalProfit+TotalLoss,2) +" (总获利:"+DoubleToStr(TotalProfit,2) +" 总亏损:"+DoubleToStr(TotalLoss,2)+")" ,4,80,9,"Verdana"); SetLable("账户余额", "账户余额:"+DoubleToStr(AccountBalance(),2) +" 账户净值:"+DoubleToStr(AccountEquity(),2) ,4,95,9,"Verdana"); SetLable("下单量", "总下单量(手):"+DoubleToStr(TotalTrades,2),4,110,9,"Verdana"); return(0); } /* 函数:在屏幕上显示标签 参数说明:LableName:标签名称;LableDoc:文本内容;LableX:标签 X 位置;LableY:标 签 Y 位置;DocSize:文本字号;DocStyle:文本字体;DocColor:文本颜色 */ void SetLable(string LableName,string LableDoc,int LableX,int LableY,int DocSize,string DocStyle,color DocColor=White) { ObjectCreate(LableName, OBJ_LABEL, 0, 0, 0); ObjectSetText(LableName,LableDoc,DocSize,DocStyle,DocColor); ObjectSet(LableName, OBJPROP_XDISTANCE, LableX); ObjectSet(LableName, OBJPROP_YDISTANCE, LableY); } void SetObj(int myOrderTicket,int myOrderType,datetime myOpenTime,double myOpenPrice,datetime myCloseTime,double myClosePrice) { string myObjectName="订单号:"+DoubleToStr(myOrderTicket,0); ObjectCreate(myObjectName,OBJ_TREND,0,myOpenTime,myOpenPrice,myCloseTime,myClosePrice);//画趋势线,确定两点坐标 if (myOrderType==0) ObjectSet(myObjectName,OBJPROP_COLOR,Blue); if (myOrderType==1) ObjectSet(myObjectName,OBJPROP_COLOR,Red); ObjectSet(myObjectName,OBJPROP_STYLE,STYLE_DOT); ObjectSet(myObjectName,OBJPROP_WIDTH, 1); ObjectSet(myObjectName,OBJPROP_BACK,false); ObjectSet(myObjectName,OBJPROP_RAY,false); } void DrawMark(int type) { string ArrowMyTicket="Arrow:"+DoubleToStr(OrderTicket(),0); if (type==0) ArrowMyTicket="Arrow:"+DoubleToStr(OrderTicket(),0) + "buy"; if (type==1) ArrowMyTicket="Arrow:"+DoubleToStr(OrderTicket(),0) + "sell"; if (type==2) ArrowMyTicket="Arrow:"+DoubleToStr(OrderTicket(),0) + "close"; //建立箭头模型 int ArrowValue=0;color ArrowColor=0; if (type==0) {ArrowValue=1;ArrowColor=Blue;ObjectCreate(ArrowMyTicket,OBJ_ARROW,0,OrderOpenTime(),OrderOpenPrice());} if (type==1) {ArrowValue=1;ArrowColor=Red;ObjectCreate(ArrowMyTicket,OBJ_ARROW,0,OrderOpenTime(),OrderOpenPrice());} if (type==2) {ArrowValue=3;ArrowColor=Goldenrod;ObjectCreate(ArrowMyTicket,OBJ_ARROW,0,OrderCloseTime(),OrderClosePrice());} ObjectSet(ArrowMyTicket,OBJPROP_ARROWCODE,ArrowValue);//设置箭头 ObjectSet(ArrowMyTicket,OBJPROP_COLOR,ArrowColor);//设置箭头颜色 }
Yazhou Liu:
就是这个意思 谢谢大哥! 这个指标MT4没有自带的吗?
minimao2019:
就是这个意思 谢谢大哥! 这个指标MT4没有自带的吗?
就是这个意思 谢谢大哥! 这个指标MT4没有自带的吗?
EA测试的时候会有历史交易的标识,平台没有这个指标