Orders Execution
0
Views
0
Downloads
0
Favorites
ea_pipfinite_trend_laser
//+------------------------------------------------------------------+
//| EA_PipFinite_Trend_Laser.mq4 |
//| Copyright © Master Forex - 2016 |
//| https://www.mql5.com/en/users/Master_Forex/portfolio |
//+------------------------------------------------------------------+
#property copyright "Copyright © Master Forex - 2016"
#property link "https://www.mql5.com/en/users/Master_Forex/portfolio"
#property version "1.00"
#property strict
#include <stderror.mqh>
#include <stdlib.mqh>
input string InpEAComment = "Trend Laser";// EA Comment
input double InpLot = 0.01; // Lot Size
input double InpTakeProfit = 300; // Take Profit (in points)
input double InpStopLoss = 300; // Stop Loss (in points)
input bool InpExitOpposite = 1; // Exit by Opposite Signal
input int InpMagicNumber = 0; // Magic Number
input string InpIndicatorSettings = "--------------------< PipFinite Trend Laser >--------------------";//Indicator PipFinite Trend Laser ............................................................................................................
input int InpPeriods = 3; // Trend Laser Period
//HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH//
double lots=0,SL=0,TP=0,ClosingArray[100];
int Pip=1,lotdigit=0;
bool Buy=0,Sell=0;
//HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH//
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
void OnInit()
{
return;
}
//HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH//
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
return;
}
//HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH//
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
Lots();Entry();Exit(); return;
}
//HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH//
//+------------------------------------------------------------------+
//| Calculate Trade Volume(Lot) |
//+------------------------------------------------------------------+
void Lots()
{
lots=InpLot;
if(lots<MarketInfo(Symbol(),MODE_MINLOT)) lots=MarketInfo(Symbol(),MODE_MINLOT);
if(lots>MarketInfo(Symbol(),MODE_MAXLOT)) lots=MarketInfo(Symbol(),MODE_MAXLOT);
}
//OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO//
//+------------------------------------------------------------------+
//| Get Signals |
//+------------------------------------------------------------------+
double TL(int buff)
{
return(iCustom(_Symbol,0,"Market\\PipFinite Trend Laser","",InpPeriods,1000,"",0,0,0,15,8,1,1,"",2,1,"",0,0,0,0,"alert.wav",buff,1));
}
//HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH//
//+------------------------------------------------------------------+
//| Trade Entry Function |
//+------------------------------------------------------------------+
void Entry()
{
bool ban=0;int err;
//+------------------------------------------------------------------+
for(int i=OrdersTotal()-1; i>=0; i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if(OrderSymbol()==Symbol() && OrderMagicNumber()==InpMagicNumber)
{
if(OrderOpenTime()>=iTime(NULL,0,0)) ban=true;
}
}
}
//+------------------------------------------------------------------+
//===== Check Free Margin =====\\
if(AccountFreeMarginCheck(Symbol(),OP_BUY,lots)<=0.0 ||
AccountFreeMarginCheck(Symbol(),OP_SELL,lots)<=0.0 ||
GetLastError()==ERR_NOT_ENOUGH_MONEY)
{
Print("NOT ENOUGH MONEY TO TRADE OPEN");return;
}
//+------------------------------------------------------------------+
if(1>Orders(-1) && ban==false)
{
if(TL(14)!=0)
{
if(InpStopLoss==0){ SL=0;}else{ SL=Bid-InpStopLoss *_Point;}
if(InpTakeProfit==0){ TP=0;}else{ TP=Ask+InpTakeProfit *_Point;}
int Ticket=OrderSend(Symbol(),OP_BUY,lots,Ask,1,SL,TP,InpEAComment,InpMagicNumber,0,clrGreen);
err=GetLastError();if(err!=ERR_NO_ERROR){ Print("Error on Order open = ",ErrorDescription(err));}
}
if(TL(15)!=0)
{
if(InpStopLoss==0){ SL=0;}else{ SL=Ask+InpStopLoss *_Point;}
if(InpTakeProfit==0){ TP=0;}else{ TP=Bid-InpTakeProfit *_Point;}
int Tickets=OrderSend(Symbol(),OP_SELL,lots,Bid,1,SL,TP,InpEAComment,InpMagicNumber,0,clrRed);
err=GetLastError();if(err!=ERR_NO_ERROR){ Print("Error on Order open = ",ErrorDescription(err));}
}
}
}
//HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH//
//+------------------------------------------------------------------+
//| Trade Exit Function |
//+------------------------------------------------------------------+
void Exit()
{
int err;
for(int i=0; i<OrdersTotal(); i++)
{
bool OrSel=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol() && OrderMagicNumber()==InpMagicNumber)
{
if(OrderType()==OP_BUY)
{
if(InpExitOpposite && TL(15)!=0)
bool close=OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),0,clrBlue);err=GetLastError();
if(err!=ERR_NO_ERROR){ Print("Error on Order closing = ",ErrorDescription(err));}
}
if(OrderType()==OP_SELL)
{
if(InpExitOpposite && TL(14)!=0)
bool close=OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),0,clrRed);err=GetLastError();
if(err!=ERR_NO_ERROR){ Print("Error on Order closing = ",ErrorDescription(err));}
}
}
}
}
//HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH//
//+------------------------------------------------------------------+
//| Get total orders count |
//+------------------------------------------------------------------+
int Orders(int type)
{
int count=0;
//-1= All,0=Buy,1=Sell,2=BuyLimit,3=SellLimit,4=BuyStop,5=SellStop;
for(int x=OrdersTotal()-1;x>=0;x--)
{
if(OrderSelect(x,SELECT_BY_POS,MODE_TRADES))
{
if(OrderSymbol()==Symbol() && OrderMagicNumber()==InpMagicNumber)
{
if(type<0){ count++;}
if(OrderType()==type && type>=0){ count++;}
}
}
}
return(count);
}
//HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH//
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
---