#property copyright "Copyright @ 2012, File45" #property indicator_chart_window //thanks: mladen-super moderator FOREX-TSD www.forex-tsd.com who's edits on a previous project provided a template for further endevours. //http://www.forex-tsd.com/expert-advisors-metatrader-4/20171-please-fix-indicator-ea-34.html#post425056 // SL+TP-OE PIP CALC INDI - v2 // USERS CAN PERMANENTLY CHANGE THE DEFAULT SETTINGS BY MODIFYING THE BELOW CODE - EXAMPLES PROVIDED. // * * * * * REMEBER TO COMPILE AND CHECK FOR ERRORS AFTER EVERY MODIFICATION * * * * * extern string PIPS_or_FRACTIONAL_PIPS = "fractional pips = points / 3 & 5 digit pricing"; extern bool Fractional_Pips = true; // modification examples: = false; extern string HIDE_OPTIONS; extern bool Hide_Order_Type_Text = false; // modification examples: = true; extern bool Hide_OrderTicket = false; extern bool Hide_SL_TP_Price = false; extern bool Hide_Pip_Text = false; extern bool Hide_SL = false; extern bool Hide_TP = false; extern bool Hide_Limit_and_Stop_Orders = false; extern bool Hide_OE_Price = false; extern bool Hide_OE = false; extern string COSMETICS; extern string L_neg_100___to___R_pos_20; // = "- - neg left / pos right + +"; extern int Shift_Text_Left_or_Right = 14; // Modification examples: = 10; ; extern color SL_Color = Magenta; // modification examples: = DarkOrange; extern color TP_Color = LimeGreen; extern bool Use_OE_Color = false; extern color OE_Color = Gold; extern int SL_TP_Font_Size = 10; extern int OE_Font_Size = 8; extern string FontName = "Arial"; // modification examples: = "Verdana"; // * * * * * DO NOT MODIFY BEYOND THIS POINT UNLESS YOU KNOW WHAT YOU ARE DOING * * * * * // CHANGE_ORDER_TEXT; // Set_at_Max_8_Characters; // BUY_ORDERS; string Buy_TP = "Buy-TP"; // Modification examples: = "B-TP"; "BUY"; string Buy_SL = "Buy-SL"; string Buy_Limit_TP = "BL-TP"; // Modification examples: = "BuyLimit"; = "B-Limit"; string Buy_Limit_SL = "BL-SL"; string Buy_Stop_TP = "BS-TP"; string Buy_Stop_SL = "BS-SL"; // SELL_ORDERS; string Sell_SL = "Sell-SL"; string Sell_TP = "Sell-TP"; string Sell_Limit_SL = "SL-SL"; string Sell_Limit_TP = "SL-TP"; string Sell_Stop_SL = "SS-SL"; string Sell_Stop_TP = "SS-TP"; // ORDER EXECUTION string Buy_Limit_OE = "BL-OE"; string Buy_Stop_OE = "BS-OE"; string Sell_Limit_OE = "SL-OE"; string Sell_Stop_OE = "SS-OE"; string Increase_Max_Characters; int xx = 8; // change this number regulate maximum order text input // * * * * NEWBIES SHOULD DEFINETLY NOT BE EDITING BEYOND THIS * * * * -------------------------------------- color theColor; string gapx1 = " "; // 30 spaces as test string gapx2 = " "; // 2 spaces string starx1 = " * "; string starx2 = " * "; string starx3 = " * "; int Move_Text_L_or_R = 0; string hashx= "#"; double pmod; int p2p; int dig; int Xpips; string Npips; string Fpips; static string text; static string Buyx_SLx_Distance="Buyx+SLx_Distance"; static string BLimitx_SLx_Distance="BLimitx+SLx_Distance"; static string BStopx_SLx_Distance="BStopx+SLx_Distance"; static string Sellx_SLx_Distance="Sellx+SLx_Distance"; static string SLimitx_SLx_Distance="SLimitx+SLx_Distance"; static string SStopx_SLx_Distance="SStopx+SLx_Distance"; static string Buyx_TPx_Distance="Buyx+TPx_Distance"; static string BLimitx_TPx_Distance="BLimitx+TPx_Distance"; static string BStopx_TPx_Distance="BStopx+TPx_Distance"; static string Sellx_TPx_Distance="Sellx+TPx_Distance"; static string SLimitx_TPx_Distance="SLimitx+TPx_Distance"; static string SStopx_TPx_Distance="SStopx+TPx_Distance"; static string BLimitx_OE_Dist="BLimitx_OE_Dist"; static string BStopx_OE_Dist="BStopx_OE_Dist"; static string SLimitx_OE_Dist="SLimitx_OE_Dist"; static string SStopx_OE_Dist="SStopx_OE_Dist"; //--------------------------------------------------------------------- int init(){ // Hide Order Text if(Hide_Order_Type_Text==true){ Buy_TP=""; Buy_SL=""; Buy_Limit_TP = ""; Buy_Limit_SL = ""; Buy_Stop_TP = ""; Buy_Stop_SL = ""; Sell_SL = ""; Sell_TP = ""; Sell_Limit_SL = ""; Sell_Limit_TP = ""; Sell_Stop_SL = ""; Sell_Stop_TP = ""; Buy_Limit_OE = ""; Buy_Stop_OE = ""; Sell_Limit_OE = ""; Sell_Stop_OE = "";} // Hide Pip Text if(Hide_Pip_Text==true){ Npips=""; Fpips="";} else{ Npips=" pps"; Fpips=" f-pps";} // Pip logic if(Fractional_Pips==true){ pmod=Point; p2p=1; dig=0; } else{ pmod=Point*10; p2p=10; dig=1; } if(Digits==0){ pmod=Point; p2p=1; dig=0; Xpips=1; } // Pip Choice if (Fractional_Pips==true) if(Xpips==1){ Npips=Npips;} else{ Npips=Fpips;} // if(Hide_OrderTicket==true) hashx=""; // if(Hide_OrderTicket==true||Hide_SL_TP_Price==true) starx1=""; // if(Hide_OrderTicket==true&&Hide_SL_TP_Price==true) starx2=""; // if(Hide_Limit_and_Stop_Orders==true&&Hide_OE==false) Alert("When Limit and Stop Orders are hidden, OEs are hidden."); PlaySound("Alert.wav"); if (Hide_OE_Price==true||Hide_OrderTicket==true) starx3=""; return(0); } //--------------------------------------------------------------------- int deinit(){ DeleteLabels( Buyx_SLx_Distance, BLimitx_SLx_Distance, BStopx_SLx_Distance, Sellx_SLx_Distance, SLimitx_SLx_Distance, SStopx_SLx_Distance, Buyx_TPx_Distance, BLimitx_TPx_Distance, BStopx_TPx_Distance, Sellx_TPx_Distance, SLimitx_TPx_Distance, SStopx_TPx_Distance, BLimitx_OE_Dist, BStopx_OE_Dist, SLimitx_OE_Dist, SStopx_OE_Dist); return(0); } //--------------------------------------------------------------------- int start() { DeleteLabels( Buyx_SLx_Distance, BLimitx_SLx_Distance, BStopx_SLx_Distance, Sellx_SLx_Distance, SLimitx_SLx_Distance, SStopx_SLx_Distance, Buyx_TPx_Distance, BLimitx_TPx_Distance, BStopx_TPx_Distance, Sellx_TPx_Distance, SLimitx_TPx_Distance, SStopx_TPx_Distance, BLimitx_OE_Dist, BStopx_OE_Dist, SLimitx_OE_Dist, SStopx_OE_Dist); int orders= OrdersTotal(); if( orders==0 ) return(0); for (int n=0; n=0; a-- ) { string Buyx_SLx=ObjectName(a); if (StringFind(Buyx_SLx,Buyx_SLx_Distance,0) > -1 ) ObjectDelete(Buyx_SLx); string BLimitx_SLx=ObjectName(a); if (StringFind(BLimitx_SLx,BLimitx_SLx_Distance,0) > -1 ) ObjectDelete(BLimitx_SLx); string BStopx_SLx=ObjectName(a); if (StringFind(BStopx_SLx,BStopx_SLx_Distance,0) > -1 ) ObjectDelete(BStopx_SLx); string Sellx_SLx=ObjectName(a); if (StringFind(Sellx_SLx,Sellx_SLx_Distance,0) > -1 ) ObjectDelete(Sellx_SLx); string SLimitx_SLx=ObjectName(a); if (StringFind(SLimitx_SLx,SLimitx_SLx_Distance,0) > -1 ) ObjectDelete(SLimitx_SLx); string SStopx_SLx=ObjectName(a); if (StringFind(SStopx_SLx,SStopx_SLx_Distance,0) > -1 ) ObjectDelete(SStopx_SLx); string Buyx_TPx=ObjectName(a); if (StringFind(Buyx_TPx,Buyx_TPx_Distance,0) > -1 ) ObjectDelete(Buyx_TPx); string BLimitx_TPx=ObjectName(a); if (StringFind(BLimitx_TPx,BLimitx_TPx_Distance,0) > -1 ) ObjectDelete(BLimitx_TPx); string BStopx_TPx=ObjectName(a); if (StringFind(BStopx_TPx,BStopx_TPx_Distance,0) > -1 ) ObjectDelete(BStopx_TPx); string Sellx_TPx=ObjectName(a); if (StringFind(Sellx_TPx,Sellx_TPx_Distance,0) > -1 ) ObjectDelete(Sellx_TPx); string SLimitx_TPx=ObjectName(a); if (StringFind(SLimitx_TPx,SLimitx_TPx_Distance,0) > -1 ) ObjectDelete(SLimitx_TPx); string SStopx_TPx=ObjectName(a); if (StringFind(SStopx_TPx,SStopx_TPx_Distance,0) > -1 ) ObjectDelete(SStopx_TPx); string BLimitx_OE=ObjectName(a); if (StringFind(BLimitx_OE,BLimitx_OE_Dist,0) > -1 ) ObjectDelete(BLimitx_OE); string BStopx_OE=ObjectName(a); if (StringFind(BStopx_OE,BStopx_OE_Dist,0) > -1 ) ObjectDelete(BStopx_OE); string SLimitx_OE=ObjectName(a); if (StringFind(SLimitx_OE,SLimitx_OE_Dist,0) > -1 ) ObjectDelete(SLimitx_OE); string SStopx_OE=ObjectName(a); if (StringFind(SStopx_OE,SStopx_OE_Dist,0) > -1 ) ObjectDelete(SStopx_OE); } }