//+------------------------------------------------------------------+ //| PS_calculator.mq3 | //| Copyright © 2007, itLogics itlogics@itlogics.eu | //+------------------------------------------------------------------+ #property copyright "Copyright © 2007, itLogics" #property link "http://www.powertradingfx.com" #property indicator_separate_window extern double percent_risk = 2; extern int stoploss_1 = 10; extern int stoploss_2 = 20; extern int stoploss_3 = 30; extern int stoploss_4 = 40; extern color description_color = Black; extern bool show_spread = true; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { return(0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int spread=MarketInfo(Symbol(),MODE_SPREAD); double equity=AccountEquity( ); double risk; double lotsize1; double lotsize2; double lotsize3; double lotsize4; double tickvalue=MarketInfo(Symbol(),MODE_TICKVALUE); double pipvalue1; double pipvalue2; double pipvalue3; double pipvalue4; double risk1; double risk2; double risk3; double risk4; risk=percent_risk/100; lotsize1=NormalizeDouble(equity*risk/stoploss_1/tickvalue,2); lotsize2=NormalizeDouble(equity*risk/stoploss_2/tickvalue,2); lotsize3=NormalizeDouble(equity*risk/stoploss_3/tickvalue,2); lotsize4=NormalizeDouble(equity*risk/stoploss_4/tickvalue,2); pipvalue1=(lotsize1*tickvalue); pipvalue2=(lotsize2*tickvalue); pipvalue3=(lotsize3*tickvalue); pipvalue4=(lotsize4*tickvalue); risk1=pipvalue1*stoploss_1/equity*100; risk2=pipvalue2*stoploss_2/equity*100; risk3=pipvalue3*stoploss_3/equity*100; risk4=pipvalue4*stoploss_4/equity*100; ObjectCreate("SLdesc", OBJ_LABEL, WindowFind("PS_Calculator"), 0, 0); ObjectSetText("SLdesc","Stop Loss",10, "Arial Bold", description_color); ObjectSet("SLdesc", OBJPROP_CORNER, 0); ObjectSet("SLdesc", OBJPROP_XDISTANCE, 200); ObjectSet("SLdesc", OBJPROP_YDISTANCE, 2); ObjectCreate("LSdesc", OBJ_LABEL, WindowFind("PS_Calculator"), 0, 0); ObjectSetText("LSdesc","Lot Size",10, "Arial Bold", description_color); ObjectSet("LSdesc", OBJPROP_CORNER, 0); ObjectSet("LSdesc", OBJPROP_XDISTANCE, 290); ObjectSet("LSdesc", OBJPROP_YDISTANCE, 2); ObjectCreate("PVdesc", OBJ_LABEL, WindowFind("PS_Calculator"), 0, 0); ObjectSetText("PVdesc","Pip Value",10, "Arial Bold", description_color); ObjectSet("PVdesc", OBJPROP_CORNER, 0); ObjectSet("PVdesc", OBJPROP_XDISTANCE, 370); ObjectSet("PVdesc", OBJPROP_YDISTANCE, 2); ObjectCreate("RRdesc", OBJ_LABEL, WindowFind("PS_Calculator"), 0, 0); ObjectSetText("RRdesc","Real Risk",10, "Arial Bold", description_color); ObjectSet("RRdesc", OBJPROP_CORNER, 0); ObjectSet("RRdesc", OBJPROP_XDISTANCE, 455); ObjectSet("RRdesc", OBJPROP_YDISTANCE, 2); ObjectCreate("stoploss_1", OBJ_LABEL, WindowFind("PS_Calculator"), 0, 0); ObjectSetText("stoploss_1"," "+stoploss_1,10, "Arial Bold", Red); ObjectSet("stoploss_1", OBJPROP_CORNER, 0); ObjectSet("stoploss_1", OBJPROP_XDISTANCE, 218); ObjectSet("stoploss_1", OBJPROP_YDISTANCE, 15); ObjectCreate("stoploss_2", OBJ_LABEL, WindowFind("PS_Calculator"), 0, 0); ObjectSetText("stoploss_2"," "+stoploss_2,10, "Arial Bold", Red); ObjectSet("stoploss_2", OBJPROP_CORNER, 0); ObjectSet("stoploss_2", OBJPROP_XDISTANCE, 218); ObjectSet("stoploss_2", OBJPROP_YDISTANCE, 28); ObjectCreate("stoploss_3", OBJ_LABEL, WindowFind("PS_Calculator"), 0, 0); ObjectSetText("stoploss_3"," "+stoploss_3,10, "Arial Bold", Red); ObjectSet("stoploss_3", OBJPROP_CORNER, 0); ObjectSet("stoploss_3", OBJPROP_XDISTANCE, 218); ObjectSet("stoploss_3", OBJPROP_YDISTANCE, 41); ObjectCreate("stoploss_4", OBJ_LABEL, WindowFind("PS_Calculator"), 0, 0); ObjectSetText("stoploss_4"," "+stoploss_4,10, "Arial Bold", Red); ObjectSet("stoploss_4", OBJPROP_CORNER, 0); ObjectSet("stoploss_4", OBJPROP_XDISTANCE, 218); ObjectSet("stoploss_4", OBJPROP_YDISTANCE, 54); ObjectCreate("lotsize1", OBJ_LABEL, WindowFind("PS_Calculator"), 0, 0); ObjectSetText("lotsize1"," "+DoubleToStr(lotsize1,2),10, "Arial Bold", Blue); ObjectSet("lotsize1", OBJPROP_CORNER, 0); ObjectSet("lotsize1", OBJPROP_XDISTANCE, 295); ObjectSet("lotsize1", OBJPROP_YDISTANCE, 15); ObjectCreate("lotsize2", OBJ_LABEL, WindowFind("PS_Calculator"), 0, 0); ObjectSetText("lotsize2"," "+DoubleToStr(lotsize2,2),10, "Arial Bold", Blue); ObjectSet("lotsize2", OBJPROP_CORNER, 0); ObjectSet("lotsize2", OBJPROP_XDISTANCE, 295); ObjectSet("lotsize2", OBJPROP_YDISTANCE, 28); ObjectCreate("lotsize3", OBJ_LABEL, WindowFind("PS_Calculator"), 0, 0); ObjectSetText("lotsize3"," "+DoubleToStr(lotsize3,2),10, "Arial Bold", Blue); ObjectSet("lotsize3", OBJPROP_CORNER, 0); ObjectSet("lotsize3", OBJPROP_XDISTANCE, 295); ObjectSet("lotsize3", OBJPROP_YDISTANCE, 41); ObjectCreate("lotsize4", OBJ_LABEL, WindowFind("PS_Calculator"), 0, 0); ObjectSetText("lotsize4"," "+DoubleToStr(lotsize4,2),10, "Arial Bold", Blue); ObjectSet("lotsize4", OBJPROP_CORNER, 0); ObjectSet("lotsize4", OBJPROP_XDISTANCE, 295); ObjectSet("lotsize4", OBJPROP_YDISTANCE, 54); ObjectCreate("pipvalue1", OBJ_LABEL, WindowFind("PS_Calculator"), 0, 0); ObjectSetText("pipvalue1"," "+DoubleToStr(pipvalue1,2),10, "Arial Bold", Blue); ObjectSet("pipvalue1", OBJPROP_CORNER, 0); ObjectSet("pipvalue1", OBJPROP_XDISTANCE, 380); ObjectSet("pipvalue1", OBJPROP_YDISTANCE, 15); ObjectCreate("pipvalue2", OBJ_LABEL, WindowFind("PS_Calculator"), 0, 0); ObjectSetText("pipvalue2"," "+DoubleToStr(pipvalue2,2),10, "Arial Bold", Blue); ObjectSet("pipvalue2", OBJPROP_CORNER, 0); ObjectSet("pipvalue2", OBJPROP_XDISTANCE, 380); ObjectSet("pipvalue2", OBJPROP_YDISTANCE, 28); ObjectCreate("pipvalue3", OBJ_LABEL, WindowFind("PS_Calculator"), 0, 0); ObjectSetText("pipvalue3"," "+DoubleToStr(pipvalue3,2),10, "Arial Bold", Blue); ObjectSet("pipvalue3", OBJPROP_CORNER, 0); ObjectSet("pipvalue3", OBJPROP_XDISTANCE, 380); ObjectSet("pipvalue3", OBJPROP_YDISTANCE, 41); ObjectCreate("pipvalue4", OBJ_LABEL, WindowFind("PS_Calculator"), 0, 0); ObjectSetText("pipvalue4"," "+DoubleToStr(pipvalue4,2),10, "Arial Bold", Blue); ObjectSet("pipvalue4", OBJPROP_CORNER, 0); ObjectSet("pipvalue4", OBJPROP_XDISTANCE, 380); ObjectSet("pipvalue4", OBJPROP_YDISTANCE, 54); ObjectCreate("risk1", OBJ_LABEL, WindowFind("PS_Calculator"), 0, 0); ObjectSetText("risk1"," "+DoubleToStr(risk1,2),10, "Arial Bold", Blue); ObjectSet("risk1", OBJPROP_CORNER, 0); ObjectSet("risk1", OBJPROP_XDISTANCE, 465); ObjectSet("risk1", OBJPROP_YDISTANCE, 15); ObjectCreate("risk2", OBJ_LABEL, WindowFind("PS_Calculator"), 0, 0); ObjectSetText("risk2"," "+DoubleToStr(risk2,2),10, "Arial Bold", Blue); ObjectSet("risk2", OBJPROP_CORNER, 0); ObjectSet("risk2", OBJPROP_XDISTANCE, 465); ObjectSet("risk2", OBJPROP_YDISTANCE, 28); ObjectCreate("risk3", OBJ_LABEL, WindowFind("PS_Calculator"), 0, 0); ObjectSetText("risk3"," "+DoubleToStr(risk3,2),10, "Arial Bold", Blue); ObjectSet("risk3", OBJPROP_CORNER, 0); ObjectSet("risk3", OBJPROP_XDISTANCE, 465); ObjectSet("risk3", OBJPROP_YDISTANCE, 41); ObjectCreate("risk4", OBJ_LABEL, WindowFind("PS_Calculator"), 0, 0); ObjectSetText("risk4"," "+DoubleToStr(risk4,2),10, "Arial Bold", Blue); ObjectSet("risk4", OBJPROP_CORNER, 0); ObjectSet("risk4", OBJPROP_XDISTANCE, 465); ObjectSet("risk4", OBJPROP_YDISTANCE, 54); ObjectCreate("symbol", OBJ_LABEL, WindowFind("PS_Calculator"), 0, 0); ObjectSetText("symbol",Symbol(),15, "Arial Bold", description_color); ObjectSet("symbol", OBJPROP_CORNER, 0); ObjectSet("symbol", OBJPROP_XDISTANCE, 20); ObjectSet("symbol", OBJPROP_YDISTANCE, 14); if (show_spread) { ObjectCreate("spreaddesc", OBJ_LABEL, WindowFind("PS_Calculator"), 0, 0); ObjectSetText("spreaddesc","Spread:",10, "Arial Bold", description_color); ObjectSet("spreaddesc", OBJPROP_CORNER, 0); ObjectSet("spreaddesc", OBJPROP_XDISTANCE, 60); ObjectSet("spreaddesc", OBJPROP_YDISTANCE, 40); ObjectCreate("spread", OBJ_LABEL, WindowFind("PS_Calculator"), 0, 0); ObjectSetText("spread"," "+spread,30, "Arial Bold", Green); ObjectSet("spread", OBJPROP_CORNER, 0); ObjectSet("spread", OBJPROP_XDISTANCE, 100); ObjectSet("spread", OBJPROP_YDISTANCE, 22); } //---- return(0); } //+------------------------------------------------------------------+
Sample
Analysis
Market Information Used:
Indicator Curves created:
Indicators Used:
Custom Indicators Used:
Order Management characteristics:
Other Features: