#property show_inputs
extern string XXXX = "*** TAKE CARE WITH CORRECT PRICES ****";
extern string XXXXX = "*** SET to 1 to Buy @ Market : 2 to Sell @ Market ***";
extern int mBuyorSell = 1;
extern int miTP1 = 100; // 5 digit broker
extern int miTP2 = 100;
extern int miTP3 = 100;
extern int miTP4 = 100;
extern int miSL1 = 0;
extern int miSL2 = 0;
extern int miSL3 = 0;
extern int miSL4 = 0;
extern int mSlip = 30;
extern int mNoOfOrders = 1;
extern double mLots = 0.01;
double tp,sl;
int start()
{
bool mError;
int i, Error, mOrder;
int mSLLevels[4], mTPLevels[4];
double mSpread = MarketInfo(Symbol(),MODE_SPREAD);
mSLLevels[0] = miSL1; mSLLevels[1] = miSL2; mSLLevels[2] = miSL3; mSLLevels[3] = miSL4;
mTPLevels[0] = miTP1; mTPLevels[1] = miTP2; mTPLevels[2] = miTP3; mTPLevels[3] = miTP4;
for(i=0;i<4;i++)
{
if(mSLLevels[i]>0) mSLLevels[i]=MathMax(mSLLevels[i],MarketInfo(Symbol(),MODE_STOPLEVEL));
if(mTPLevels[i]>0) mTPLevels[i]=MathMax(mTPLevels[i],MarketInfo(Symbol(),MODE_STOPLEVEL));
}
if(mBuyorSell == 1) // BUY Order
{
for(i = 0; i < mNoOfOrders; i++)
{
RefreshRates();
mOrder = OrderSend(Symbol(), OP_BUY, mLots, Ask, mSlip, 0, 0, "4OrderTest", 201106, 0, Blue);
if (mOrder > 1)
{
if (OrderSelect(mOrder, SELECT_BY_TICKET))
{
sl=0;
if(mSLLevels[i]>0) sl=NormalizeDouble(OrderOpenPrice()-mSpread-mSLLevels[i]*Point,Digits);
tp=0;
if(mTPLevels[i]>0) tp=NormalizeDouble(OrderOpenPrice()+mTPLevels[i]*Point,Digits);
OrderModify(OrderTicket(),OrderOpenPrice(), sl, tp, 0, Green );
}
}
}
}
else // SELL Order
{
for(i = 0; i < mNoOfOrders; i++)
{
RefreshRates();
mOrder = OrderSend(Symbol(), OP_SELL, mLots, Bid, mSlip, 0, 0, "4OrderTest", 201106, 0, Red);
if (mOrder > 1)
{
if (OrderSelect(mOrder, SELECT_BY_TICKET))
{
sl=0;
if(mSLLevels[i]>0) sl=NormalizeDouble(OrderOpenPrice()+mSpread+mSLLevels[i]*Point,Digits);
tp=0;
if(mTPLevels[i]>0) tp=NormalizeDouble(OrderOpenPrice()-mTPLevels[i]*Point,Digits);
OrderModify(OrderTicket(),OrderOpenPrice(), sl, tp, 0, Green );
}
}
}
}
if(mError != true)
{
Error = GetLastError();
Print("LastError = ",Error);
}
else Error = 0;
return(0);
}