Price Data Components
Orders Execution
Miscellaneous
0
Views
0
Downloads
0
Favorites
OCO_EA
//+----------------------------------------------------------------+
//|OCO_EA.mq4 |
//|Copyright 2011, Trade Pro Co. |
//|http://www.fxpingpong.com |
//| |
//|OCO Order on MetaTrader4 Platform |
//|One pip Limit Order |
//|One Pip Stop Order |
//| |
//|++++++++++++++++++++++ Global Variables ++++++++++++++++++++++++|
//| OCO_BUY_LIMIT : Buy Limit Price |
//| OCO_BUY_STOP : Buy Stop Price |
//| OCO_SELL_LIMIT : Sell Limit Price |
//| OCO_SELL_STOP : Sell Stop Price |
//| OCO_confirmation : After input Buy Limit Price, |
//| Buy Stop Price, Sell Limit Price |
//| or Sell Stop Price |
//| Input OCO_confirmation = "1" |
//| OCO_lots : Lots |
//| OCO_oCO : if OCO_oCO = "1", One Canel Others |
//| OCO_sL_Pips : Stop Loss Pips |
//| OCO_tP_Pips : Take Profit Pips |
//+----------------------------------------------------------------+
#property copyright "Copyright 2011, Trade Pro Company"
#property link "http://www.fxpingpong.com"
//+-----------------------------------------------------------------------+
//| Return the local time, \n, Bid Ask High Low |
//+-----------------------------------------------------------------------+
string dtbahl()
{
string dt = "Local Time : "+ TimeToStr(LocalTime(),TIME_DATE|TIME_SECONDS)+
" "+((Time[0]-Time[1])/60)+" mins Chart"+" tradeprocom@hotmail.com"+"\n"+
"Bid :"+DoubleToStr(Bid,Digits)+" Ask :"+DoubleToStr(Ask,Digits) +
" High :"+DoubleToStr(High[0],Digits)+" Low :"+DoubleToStr(Low[0],Digits);
return (dt) ;
}
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
bool GlobalVar_init()
{
bool InitGlobalVar = false;
if(!GlobalVariableCheck("OCO_lots"))
{
GlobalVariableSet("OCO_lots",0.1);
InitGlobalVar = (InitGlobalVar || true);
}
if(!GlobalVariableCheck("OCO_tP_Pips"))
{
GlobalVariableSet("OCO_tP_Pips",300);
InitGlobalVar = (InitGlobalVar || true);
}
if(!GlobalVariableCheck("OCO_sL_Pips"))
{
GlobalVariableSet("OCO_sL_Pips",300);
InitGlobalVar = (InitGlobalVar || true);
}
//if(!GlobalVariableCheck("OCO_pips_Price"))
//{
//GlobalVariableSet("OCO_pips_Price",0);
//InitGlobalVar = (InitGlobalVar || true);
//}
if(!GlobalVariableCheck("OCO_oCO"))
{
GlobalVariableSet("OCO_oCO",1);
InitGlobalVar = (InitGlobalVar || true);
}
if(!GlobalVariableCheck("OCO_BUY_LIMIT"))
{
GlobalVariableSet("OCO_BUY_LIMIT",0);
InitGlobalVar = (InitGlobalVar || true);
}
if(!GlobalVariableCheck("OCO_SELL_LIMIT"))
{
GlobalVariableSet("OCO_SELL_LIMIT",0);
InitGlobalVar = (InitGlobalVar || true);
}
if(!GlobalVariableCheck("OCO_BUY_STOP"))
{
GlobalVariableSet("OCO_BUY_STOP",0);
InitGlobalVar = (InitGlobalVar || true);
}
if(!GlobalVariableCheck("OCO_SELL_STOP"))
{
GlobalVariableSet("OCO_SELL_STOP",0);
InitGlobalVar = (InitGlobalVar || true);
}
if(!GlobalVariableCheck("OCO_confirmation"))
{
GlobalVariableSet("OCO_confirmation",0);
InitGlobalVar = (InitGlobalVar || true);
}
return(InitGlobalVar);
} // End of bool GlobalVar_init()
int init()
{
//----
GlobalVar_init() ;
reset_variable();
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
void reset_variable()
{
GlobalVariableSet("OCO_BUY_LIMIT",0);
GlobalVariableSet("OCO_SELL_LIMIT",0);
GlobalVariableSet("OCO_BUY_STOP",0);
GlobalVariableSet("OCO_SELL_STOP",0);
GlobalVariableSet("OCO_confirmation",0);
}
int ticket = 0;
double takeprofit = 0;
double stoploss = 0;
int start()
{
if (GlobalVariableGet("OCO_confirmation") == 1)
{
string DisplayTime = dtbahl();
if (GlobalVariableGet("OCO_BUY_STOP") > 0)
DisplayTime = DisplayTime+"\n"+"BUY STOP AT "+DoubleToStr(GlobalVariableGet("OCO_BUY_STOP"),Digits);
if (GlobalVariableGet("OCO_BUY_LIMIT") > 0)
DisplayTime = DisplayTime+"\n"+"BUY LIMIT AT "+DoubleToStr(GlobalVariableGet("OCO_BUY_LIMIT"),Digits);
if (GlobalVariableGet("OCO_SELL_LIMIT") > 0)
DisplayTime = DisplayTime+"\n"+"SELL LIMIT AT "+DoubleToStr(GlobalVariableGet("OCO_SELL_LIMIT"),Digits);
if (GlobalVariableGet("OCO_SELL_STOP") > 0)
DisplayTime = DisplayTime+"\n"+"SELL STOP AT "+DoubleToStr(GlobalVariableGet("OCO_SELL_STOP"),Digits);
Comment(DisplayTime) ;
// Check GlobalVariableGet
if (GlobalVariableGet("OCO_BUY_LIMIT") > 0 && Ask <= GlobalVariableGet("OCO_BUY_LIMIT"))
{
ticket=OrderSend(Symbol(),OP_BUY,GlobalVariableGet("OCO_lots"),Ask,0,0,0,"OCO_LIMIT_BUY",255,0,CLR_NONE);
if (ticket>1 && OrderSelect(ticket, SELECT_BY_TICKET)==true)
{
OrderModify(ticket,OrderOpenPrice(),OrderOpenPrice()-GlobalVariableGet("OCO_sL_Pips")*Point,OrderOpenPrice()+GlobalVariableGet("OCO_tP_Pips")*Point,0,CLR_NONE);
PlaySound("ok.wav");
GlobalVariableSet("OCO_BUY_LIMIT",0);
if (GlobalVariableGet("OCO_oCO") == 1) reset_variable();
}
}
if (GlobalVariableGet("OCO_SELL_LIMIT") > 0 && Bid >= GlobalVariableGet("OCO_SELL_LIMIT"))
{
ticket=OrderSend(Symbol(),OP_SELL,GlobalVariableGet("OCO_lots"),Bid,0,0,0,"OCO_LIMIT_SELL",255,0,CLR_NONE);
if (ticket>1 && OrderSelect(ticket, SELECT_BY_TICKET)==true)
{
OrderModify(ticket,OrderOpenPrice(),OrderOpenPrice()+GlobalVariableGet("OCO_sL_Pips")*Point,(OrderOpenPrice()-GlobalVariableGet("OCO_tP_Pips")*Point),0,CLR_NONE);
PlaySound("ok.wav");
GlobalVariableSet("OCO_SELL_LIMIT",0);
if (GlobalVariableGet("OCO_oCO") == 1) reset_variable();
}
}
if (GlobalVariableGet("OCO_BUY_STOP") > 0 && Ask >= GlobalVariableGet("OCO_BUY_STOP"))
{
ticket=OrderSend(Symbol(),OP_BUY,GlobalVariableGet("OCO_lots"),Ask,0,0,0,"OCO_BUY_STOP",255,0,CLR_NONE);
if (ticket>1 && OrderSelect(ticket, SELECT_BY_TICKET)==true)
{
OrderModify(ticket,OrderOpenPrice(),OrderOpenPrice()-GlobalVariableGet("OCO_sL_Pips")*Point,OrderOpenPrice()+GlobalVariableGet("OCO_tP_Pips")*Point,0,CLR_NONE);
PlaySound("ok.wav");
GlobalVariableSet("OCO_BUY_STOP",0);
if (GlobalVariableGet("OCO_oCO") == 1) reset_variable();
}
}
if (GlobalVariableGet("OCO_SELL_STOP") > 0 && Bid <= GlobalVariableGet("OCO_SELL_STOP"))
{
ticket=OrderSend(Symbol(),OP_SELL,GlobalVariableGet("OCO_lots"),Bid,0,0,0,"OCO_STOP_SELL",255,0,CLR_NONE);
if (ticket>1 && OrderSelect(ticket, SELECT_BY_TICKET)==true)
{
OrderModify(ticket,OrderOpenPrice(),OrderOpenPrice()+GlobalVariableGet("OCO__sL_Pips")*Point,OrderOpenPrice()-GlobalVariableGet("OCO_tP_Pips")*Point,0,CLR_NONE);
PlaySound("ok.wav");
GlobalVariableSet("OCO_SELL_STOP",0);
if (GlobalVariableGet("OCO_oCO") == 1) reset_variable();
}
}
if (GlobalVariableGet("OCO_BUY_STOP") == 0 && GlobalVariableGet("OCO_BUY_LIMIT") == 0 &&
GlobalVariableGet("OCO_SELL_LIMIT") == 0 && GlobalVariableGet("OCO_SELL_LIMIT") ==0 )
GlobalVariableSet("OCO_confirmation",0);
} // End Of if (GlobalVariableGet("OCO_Confirmation") == 1)
//----
return(0);
}
//+------------------------------------------------------------------+
Comments
Markdown Formatting Guide
# H1
## H2
### H3
**bold text**
*italicized text*
[title](https://www.example.com)

`code`
```
code block
```
> blockquote
- Item 1
- Item 2
1. First item
2. Second item
---