@broketrader
thank you for trying
thank you for trying
MT4 - Terminal window in separate window? 44 replies
script to maximise/minimise chart window 3 replies
Indi that plots the data-window in the main chart-window? 0 replies
Need MT4 Script hiding every indicators on chart window 4 replies
Stoch window above price window/ separate price indicator? 2 replies
//+------------------------------------------------------------------+ //| _eSisTest.mq4 | //| Copyright © 2012, MetaQuotes Software Corp. | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright © 2012, MetaQuotes Software Corp." #property link "http://www.metaquotes.net" #import "EasyOrder.dll" int EasyOrder(int hwnd); //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int start() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int EasyOrder(int hwnd); int start() { string obj; int i; int hwnd = WindowHandle(Symbol(),0); if(hwnd==0) { return(0); } int ret = EasyOrder(hwnd); if(ret<0) { Alert("Dll function failed!"); return(0); } if(ret==1) { ModifyOrder(); } else { for(i=ObjectsTotal()-1; i>=0; i--) { obj = ObjectName(i); if(StringFind(obj,"EASYORDER",0)>=0) ObjectDelete(obj); } } InitLines(); return (0); } //+------------------------------------------------------------------+ void InitLines() { int i, pos, ticket; bool bdelete; string obj; for(i=ObjectsTotal()-1; i>=0; i--) { obj = ObjectName(i); if(StringFind(obj,"EASYORDER_MOD")>=0) { bdelete = True; pos = StringFind(obj,"#",1); if(pos<0) continue; ticket = StrToDouble(StringSubstr(obj,pos+1,StringLen(obj)-pos-1)); if(OrderSelect(ticket,SELECT_BY_TICKET)) { if(OrderCloseTime()==0) bdelete = false; } if(bdelete) ObjectDelete(obj); } } double sl, tp; for(i=0; i<OrdersTotal(); i++) { OrderSelect(i,SELECT_BY_POS); if(OrderSymbol()==Symbol()) { ticket = OrderTicket(); obj = "EASYORDER_MOD_SL_#"+ticket; sl = OrderStopLoss(); tp = OrderTakeProfit(); if(sl==0) sl = OrderOpenPrice(); if(tp==0) tp = OrderOpenPrice(); if(ObjectFind(obj)>=0) ObjectMove(obj,0,Time[0],sl); else DrawLine("SL",ticket,sl); obj = "EASYORDER_MOD_TP_#"+ticket; if(ObjectFind(obj)>=0) ObjectMove(obj,0,Time[0],tp); else DrawLine("TP",ticket,tp); if(OrderType()>OP_SELL) { obj = "EASYORDER_MOD_PRICE_#"+ticket; if(ObjectFind(obj)>=0) ObjectMove(obj,0,Time[0],OrderOpenPrice()); else DrawLine("PRICE",ticket,OrderOpenPrice()); } } } } void ModifyOrder() { string obj; int i, ticket; double sl, price, tp; double osl, otp; for(i=0; i<OrdersTotal(); i++) { OrderSelect(i,SELECT_BY_POS); if(OrderSymbol()==Symbol()) { ticket = OrderTicket(); sl = 0; price = 0; tp = 0; obj = "EASYORDER_MOD_SL_#"+ticket; osl = OrderStopLoss(); if(osl==0) osl = OrderOpenPrice(); otp = OrderStopLoss(); if(otp==0) otp = OrderOpenPrice(); if(ObjectFind(obj)>=0) { if(MathAbs(ObjectGet(obj,OBJPROP_PRICE1)-osl)>Point) sl = ObjectGet(obj,OBJPROP_PRICE1); } obj = "EASYORDER_MOD_TP_#"+ticket; if(ObjectFind(obj)>=0) { if(MathAbs(ObjectGet(obj,OBJPROP_PRICE1)-otp)>Point) tp = ObjectGet(obj,OBJPROP_PRICE1); } if(OrderType()>OP_SELL) { obj = "EASYORDER_MOD_PRICE_#"+ticket; if(ObjectFind(obj)>=0) { if(MathAbs(ObjectGet(obj,OBJPROP_PRICE1)-OrderOpenPrice())>Point) price = ObjectGet(obj,OBJPROP_PRICE1); } } if(sl+tp+price>0) { if(sl==0) sl = OrderStopLoss(); if(tp==0) tp = OrderTakeProfit(); if(price==0) price = OrderOpenPrice(); OrderModify(ticket,price,sl,tp,0,CLR_NONE); } } } } void DrawLine(string type, int ticket, double level) { string obj = "EASYORDER_MOD_"+type+"_#"+ticket; color clr = Red; if(type=="PRICE") clr = LimeGreen; //else if(type=="TP") clr = Blue; ObjectCreate(obj,OBJ_HLINE,0,Time[0],level,0,0); ObjectSet(obj,OBJPROP_COLOR,clr); ObjectSet(obj,OBJPROP_STYLE,STYLE_DASHDOT); }