Orders Execution
0
Views
0
Downloads
0
Favorites
InstantExecution
//+------------------------------------------------------------------+
//| InstantExecution.mq4 |
//| Copyright 2015, @traderconfident |
//| https://confident-trader.blogspot.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, @traderconfident"
#property link "https://confident-trader.blogspot.com"
#property version "1.0"
#property strict
//+------------------------------------------------------------------+
//| Expert initialization function
//+------------------------------------------------------------------+
extern string _Orders_ = " --- Set Order ---";
extern double Lots = 0.05;
extern int StopLoss = 0;
extern int TakeProfit = 70;
extern int TrailingStart = 5 ;
extern int TrailingSize = 5 ;
extern int MaxOrderAtOnceTime = 1;
extern int Slippage = 3;
extern int Magic = 90910;
double _sl, _tp, _pip;
int OnInit()
{
_pip = Point;
if(Digits==3 || Digits==5) _pip = 10*Point;
//---
ObjectCreate(0,"CloseButton",OBJ_BUTTON,0,0,0);
ObjectSetInteger(0,"CloseButton",OBJPROP_XDISTANCE,10);
ObjectSetInteger(0,"CloseButton",OBJPROP_YDISTANCE,15);
ObjectSetInteger(0,"CloseButton",OBJPROP_XSIZE,100);
ObjectSetInteger(0,"CloseButton",OBJPROP_YSIZE,25);
ObjectSetString(0,"CloseButton",OBJPROP_TEXT,"Close Orders");
ObjectSetInteger(0,"CloseButton",OBJPROP_COLOR, White);
ObjectSetInteger(0,"CloseButton",OBJPROP_BGCOLOR, Red);
ObjectSetInteger(0,"CloseButton",OBJPROP_BORDER_COLOR,Red);
ObjectSetInteger(0,"CloseButton",OBJPROP_BORDER_TYPE,BORDER_FLAT);
ObjectSetInteger(0,"CloseButton",OBJPROP_HIDDEN,true);
ObjectSetInteger(0,"CloseButton",OBJPROP_STATE,false);
ObjectSetInteger(0,"CloseButton",OBJPROP_FONTSIZE,12);
//Exit
ObjectCreate(0,"Exit",OBJ_BUTTON,0,0,0);
ObjectSetInteger(0,"Exit",OBJPROP_XDISTANCE,120);
ObjectSetInteger(0,"Exit",OBJPROP_YDISTANCE,15);
ObjectSetInteger(0,"Exit",OBJPROP_XSIZE,80);
ObjectSetInteger(0,"Exit",OBJPROP_YSIZE,25);
ObjectSetString(0,"Exit",OBJPROP_TEXT,"Exit");
ObjectSetInteger(0,"Exit",OBJPROP_COLOR, White);
ObjectSetInteger(0,"Exit",OBJPROP_BGCOLOR, Green);
ObjectSetInteger(0,"Exit",OBJPROP_BORDER_COLOR,Green);
ObjectSetInteger(0,"Exit",OBJPROP_BORDER_TYPE,BORDER_FLAT);
ObjectSetInteger(0,"Exit",OBJPROP_HIDDEN,true);
ObjectSetInteger(0,"Exit",OBJPROP_STATE,false);
ObjectSetInteger(0,"Exit",OBJPROP_FONTSIZE,12);
//Buy
ObjectCreate(0,"Buy",OBJ_BUTTON,0,0,0);
ObjectSetInteger(0,"Buy",OBJPROP_XDISTANCE,210);
ObjectSetInteger(0,"Buy",OBJPROP_YDISTANCE,15);
ObjectSetInteger(0,"Buy",OBJPROP_XSIZE,50);
ObjectSetInteger(0,"Buy",OBJPROP_YSIZE,25);
ObjectSetString(0,"Buy",OBJPROP_TEXT,"Buy");
ObjectSetInteger(0,"Buy",OBJPROP_COLOR, White);
ObjectSetInteger(0,"Buy",OBJPROP_BGCOLOR, Blue);
ObjectSetInteger(0,"Buy",OBJPROP_BORDER_COLOR,Blue);
ObjectSetInteger(0,"Buy",OBJPROP_BORDER_TYPE,BORDER_FLAT);
ObjectSetInteger(0,"Buy",OBJPROP_HIDDEN,true);
ObjectSetInteger(0,"Buy",OBJPROP_STATE,false);
ObjectSetInteger(0,"Buy",OBJPROP_FONTSIZE,12);
//Sell
ObjectCreate(0,"Sell",OBJ_BUTTON,0,0,0);
ObjectSetInteger(0,"Sell",OBJPROP_XDISTANCE,270);
ObjectSetInteger(0,"Sell",OBJPROP_YDISTANCE,15);
ObjectSetInteger(0,"Sell",OBJPROP_XSIZE,50);
ObjectSetInteger(0,"Sell",OBJPROP_YSIZE,25);
ObjectSetString(0,"Sell",OBJPROP_TEXT,"Sell");
ObjectSetInteger(0,"Sell",OBJPROP_COLOR, White);
ObjectSetInteger(0,"Sell",OBJPROP_BGCOLOR, Gray);
ObjectSetInteger(0,"Sell",OBJPROP_BORDER_COLOR,Gray);
ObjectSetInteger(0,"Sell",OBJPROP_BORDER_TYPE,BORDER_FLAT);
ObjectSetInteger(0,"Sell",OBJPROP_HIDDEN,true);
ObjectSetInteger(0,"Sell",OBJPROP_STATE,false);
ObjectSetInteger(0,"Sell",OBJPROP_FONTSIZE,12);
//Closed at Profit
ObjectCreate(0,"CloseAtProfit",OBJ_BUTTON,0,0,0);
ObjectSetInteger(0,"CloseAtProfit",OBJPROP_XDISTANCE,330);
ObjectSetInteger(0,"CloseAtProfit",OBJPROP_YDISTANCE,15);
ObjectSetInteger(0,"CloseAtProfit",OBJPROP_XSIZE,100);
ObjectSetInteger(0,"CloseAtProfit",OBJPROP_YSIZE,25);
ObjectSetString(0,"CloseAtProfit",OBJPROP_TEXT,"Close Profit");
ObjectSetInteger(0,"CloseAtProfit",OBJPROP_COLOR, White);
ObjectSetInteger(0,"CloseAtProfit",OBJPROP_BGCOLOR, Green);
ObjectSetInteger(0,"CloseAtProfit",OBJPROP_BORDER_COLOR,Green);
ObjectSetInteger(0,"CloseAtProfit",OBJPROP_BORDER_TYPE,BORDER_FLAT);
ObjectSetInteger(0,"CloseAtProfit",OBJPROP_HIDDEN,true);
ObjectSetInteger(0,"CloseAtProfit",OBJPROP_STATE,false);
ObjectSetInteger(0,"CloseAtProfit",OBJPROP_FONTSIZE,12);
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
//void OnTick(){}
//+------------------------------------------------------------------+
int start(){
Trailing();
return(0);
}
//| ChartEvent function |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
const long &lparam,
const double &dparam,
const string &sparam)
{
int _ticket = 0;
if(sparam=="CloseButton") // Close button has been pressed
{
int total = OrdersTotal();
int i = 0;
for (i = total ; i >=0 ; i--)
{
if(OrderSelect(i,SELECT_BY_POS) && OrderSymbol()==Symbol())
{
//OrderSelect(i,SELECT_BY_POS);
if(OrderSymbol()==Symbol() && (OrderType()==OP_BUY || OrderType()==OP_SELL)){
_ticket = OrderClose(OrderTicket(),OrderLots(),MarketInfo(Symbol(),MODE_ASK),5);
_ticket = OrderClose(OrderTicket(),OrderLots(),MarketInfo(Symbol(),MODE_BID),5);
}
}
}
if(_ticket>0){
ObjectSetInteger(0,"CloseButton",OBJPROP_STATE,false);
ObjectsDeleteAll();
ExpertRemove();
}
}
if (sparam=="Exit"){
ObjectSetInteger(0,"Exit",OBJPROP_STATE,false);
ObjectsDeleteAll();
ExpertRemove();
}
if (sparam=="Buy"){
ObjectSetInteger(0,"Buy",OBJPROP_STATE,false);
_ticket = Order("BUY");
}
if (sparam=="Sell"){
ObjectSetInteger(0,"Sell",OBJPROP_STATE,false);
_ticket = Order("SELL");
}
if (sparam=="CloseAtProfit"){
ObjectSetInteger(0,"CloseAtProfit",OBJPROP_STATE,false);
CloseAtProfit();
}
}
//+------------------------------------------------------------------+
void Trailing(){
int ticket=0;
for(int cnt=0;cnt<OrdersTotal();cnt++) {
ticket = OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if( OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
{
if(OrderType()==OP_BUY)
{
if((TakeProfit>0 && Bid-OrderOpenPrice()>=TakeProfit*_pip) || (StopLoss>0 && OrderOpenPrice()-Ask>StopLoss*_pip))
{
ticket = OrderClose(OrderTicket(),OrderLots(),Bid,0,Violet);
}
//Trail
if(TrailingStart>0){
if(Bid-OrderOpenPrice()>TrailingStart*_pip){
if(OrderStopLoss()<Bid -(TrailingSize+1)*_pip){
ticket = OrderModify(OrderTicket(),OrderOpenPrice(),Bid-TrailingSize*_pip,OrderTakeProfit(),0,Violet);
}
}
}
}
if(OrderType()==OP_SELL)
{
if((TakeProfit>0 && OrderOpenPrice()-Ask>=TakeProfit*_pip) || (StopLoss>0 && Bid-OrderOpenPrice()>StopLoss*_pip))
{
ticket = OrderClose(OrderTicket(),OrderLots(),Ask,0,Violet);
}
//Trail
if(TrailingStart>0){
if(OrderOpenPrice()-Ask>TrailingStart*_pip){
if(OrderStopLoss()>Ask+(TrailingSize+1)*_pip || OrderStopLoss()==0){
ticket = OrderModify(OrderTicket(),OrderOpenPrice(),Ask+TrailingSize*_pip,OrderTakeProfit(),0,Violet);
}
}
}
}
}
}
}
void CloseAtProfit(){
int ticket=0;
RefreshRates();
for(int cnt=0;cnt<OrdersTotal();cnt++) {
ticket = OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderSymbol()==Symbol() && OrderType()==OP_BUY && Bid>OrderOpenPrice()) {
ticket = OrderClose(OrderTicket(),OrderLots(),Bid,0,Violet);
}
if(OrderSymbol()==Symbol() && OrderType()==OP_SELL && OrderOpenPrice()>Ask) {
ticket = OrderClose(OrderTicket(),OrderLots(),Ask,0,Violet);
}
}
}
int Order(string _Order) {
int i, ticket = 0;
_sl = 0.0;
_tp = 0.0;
if(_Order=="BUY"){
for (i=0; i<MaxOrderAtOnceTime; i++) {
ticket = OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,_sl,_tp,"",Magic,0,Blue);
}
}else {
for (i=0; i<MaxOrderAtOnceTime; i++) {
ticket = OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,_sl,_tp,"",Magic,0,Red);
}
}
return(ticket);
}
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
---