//+------------------------------------------------------------------+
//| Inside Candle.mq4 |
//| Copyright © 2012, Aiman |
//| http://www.carigold.com |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2012, Aiman"
#property link "http://www.carigold.com"
#property show_inputs
#include <stdlib.mqh>
#include <WinUser32.mqh>
extern double Lots = 0.1;
extern int TakeProfit = 5;
extern bool StopLoss = true;
int Slippage = 5;
//+------------------------------------------------------------------+
//| script program start function |
//+------------------------------------------------------------------+
int start()
{
//----
int stopLevel = MarketInfo(Symbol(),MODE_STOPLEVEL);
if (Bid>=High[1]-stopLevel*Point || Bid<=Low[1]+stopLevel*Point)
{
MessageBox("Current price is outside the previous candle",
"Price Error",
MB_OK|MB_ICONWARNING);
return (-1);
}
if (TakeProfit<stopLevel)
{
MessageBox("Minimum for take profit is " + DoubleToStr(stopLevel,0),
"TakeProfit error",
MB_OK|MB_ICONWARNING);
return (-1);
}
int ticket,retry;
double sl,tp;
ticket=0;
retry = 0;
while (ticket<1 && retry<10)
{
if (StopLoss) sl=Low[1]; else sl=0;
if (TakeProfit>0) tp=High[1]+TakeProfit*Point; else tp=0;
ticket = OrderSend(Symbol(),OP_BUYSTOP,Lots,High[1],Slippage,sl,tp,"",0,0,Lime);
if (ticket<1) Print ("Order Buy Stop failed with error ", ErrorDescription(GetLastError()));
retry++;
}
ticket=0;
retry = 0;
while (ticket<1 && retry<10)
{
if (StopLoss) sl=High[1]; else sl=0;
if (TakeProfit>0) tp=Low[1]-TakeProfit*Point; else tp=0;
ticket = OrderSend(Symbol(),OP_SELLSTOP,Lots,Low[1],Slippage,sl,tp,"",0,0,Pink);
if (ticket<1) Print ("Order Sell Stop failed with error ", ErrorDescription(GetLastError()));
retry++;
}
//----
return(0);
}
//+------------------------------------------------------------------+