Orders Execution
Miscellaneous
0
Views
0
Downloads
0
Favorites
Profitability Reports
GBP/USD
Oct 2024 - Jan 2025
0.00 %
Total Trades
1
Won Trades
0
Lost trades
0
Win Rate
0.00 %
Expected payoff
-791.40
Gross Profit
0.00
Gross Loss
-791.40
Total Net Profit
-791.40
-100%
-50%
0%
50%
100%
Channels_v1
//+----------------------------------------------------------+
//| Copyright 2005, Gordago Software Corp. |
//| http://www.gordago.com/ |
//| version 2.0 |
//+----------------------------------------------------------+
#property copyright "Copyright 2005, Gordago Software Corp."
#property link "http://www.gordago.com"
//----
#define MIN_STOPLOSS_POINT 10
#define MIN_TAKEPROFIT_POINT 10
#define MAGIC 0
//----
extern string sNameExpert="Generate from Gordago";
extern int nAccount =0;
extern double dBuyStopLossPoint=0;
extern double dSellStopLossPoint=0;
extern double dBuyTakeProfitPoint=0;
extern double dSellTakeProfitPoint=0;
extern double dBuyTrailingStopPoint=30;
extern double dSellTrailingStopPoint=30;
extern double dLots=0.10;
extern int nSlippage=1;
extern bool lFlagUseHourTrade=False;
extern int nFromHourTrade=0;
extern int nToHourTrade=23;
extern bool lFlagUseSound=False;
extern string sSoundFileName="alert.wav";
extern color colorOpenBuy=Blue;
extern color colorCloseBuy=Aqua;
extern color colorOpenSell=Red;
extern color colorCloseSell=Aqua;
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void deinit()
{
Comment("");
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int start()
{
if (lFlagUseHourTrade)
{
if (!(Hour()>=nFromHourTrade && Hour()<=nToHourTrade))
{
Comment("Time for trade has not come else!");
return(0);
}
}
if(Bars < 100)
{
Print("bars less than 100");
return(0);
}
if (nAccount > 0 && nAccount!=AccountNumber())
{
Comment("Trade on account :"+AccountNumber()+" FORBIDDEN!");
return(0);
}
if((dBuyStopLossPoint > 0 && dBuyStopLossPoint <
MIN_STOPLOSS_POINT) ||
(dSellStopLossPoint > 0 && dSellStopLossPoint <
MIN_STOPLOSS_POINT))
{
Print("StopLoss less than " + MIN_STOPLOSS_POINT);
return(0);
}
if((dBuyTakeProfitPoint > 0 && dBuyTakeProfitPoint <
MIN_TAKEPROFIT_POINT) ||
(dSellTakeProfitPoint > 0 && dSellTakeProfitPoint <
MIN_TAKEPROFIT_POINT))
{
Print("TakeProfit less than " + MIN_TAKEPROFIT_POINT);
return(0);
}
double diMA0=iMA(NULL,60,2,0,MODE_EMA,PRICE_CLOSE,0);
double diEnvelopes1=iEnvelopes
(NULL,60,220,MODE_EMA,0,PRICE_CLOSE,1,MODE_LOWER,0);
double diMA2=iMA(NULL,60,2,0,MODE_EMA,PRICE_CLOSE,0);
double diEnvelopes3=iEnvelopes
(NULL,60,220,MODE_EMA,0,PRICE_CLOSE,0.7,MODE_LOWER,0);
double diMA4=iMA(NULL,60,2,0,MODE_EMA,PRICE_CLOSE,0);
double diEnvelopes5=iEnvelopes
(NULL,60,220,MODE_EMA,0,PRICE_CLOSE,0.3,MODE_LOWER,0);
double diMA6=iMA(NULL,60,2,0,MODE_EMA,PRICE_CLOSE,0);
double diMA7=iMA(NULL,60,220,0,MODE_EMA,PRICE_CLOSE,0);
double diMA8=iMA(NULL,60,2,0,MODE_EMA,PRICE_CLOSE,0);
double diEnvelopes9=iEnvelopes
(NULL,60,220,MODE_EMA,0,PRICE_CLOSE,0.3,MODE_UPPER,0);
double diMA10=iMA(NULL,60,2,0,MODE_EMA,PRICE_CLOSE,0);
double diEnvelopes11=iEnvelopes
(NULL,60,220,MODE_EMA,0,PRICE_CLOSE,0.7,MODE_UPPER,0);
double diMA12=iMA(NULL,60,2,0,MODE_EMA,PRICE_OPEN,0);
double diEnvelopes13=iEnvelopes
(NULL,60,220,MODE_EMA,0,PRICE_CLOSE,1,MODE_UPPER,0);
double diMA14=iMA(NULL,60,2,0,MODE_EMA,PRICE_OPEN,0);
double diEnvelopes15=iEnvelopes
(NULL,60,220,MODE_EMA,0,PRICE_CLOSE,0.7,MODE_UPPER,0);
double diMA16=iMA(NULL,60,2,0,MODE_EMA,PRICE_OPEN,0);
double diEnvelopes17=iEnvelopes
(NULL,60,220,MODE_EMA,0,PRICE_CLOSE,0.3,MODE_UPPER,0);
double diMA18=iMA(NULL,60,2,0,MODE_EMA,PRICE_OPEN,0);
double diMA19=iMA(NULL,60,220,0,MODE_EMA,PRICE_CLOSE,0);
double diMA20=iMA(NULL,60,2,0,MODE_EMA,PRICE_OPEN,0);
double diEnvelopes21=iEnvelopes
(NULL,60,220,MODE_EMA,0,PRICE_CLOSE,0.3,MODE_LOWER,0);
double diMA22=iMA(NULL,60,2,0,MODE_EMA,PRICE_OPEN,0);
double diEnvelopes23=iEnvelopes
(NULL,60,220,MODE_EMA,0,PRICE_CLOSE,0.7,MODE_LOWER,0);
double diMA24=iMA(NULL,60,2,0,MODE_EMA,PRICE_CLOSE,1);
double diEnvelopes25=iEnvelopes
(NULL,60,220,MODE_EMA,0,PRICE_CLOSE,1,MODE_LOWER,0);
double diMA26=iMA(NULL,60,2,0,MODE_EMA,PRICE_CLOSE,1);
double diEnvelopes27=iEnvelopes
(NULL,60,220,MODE_EMA,0,PRICE_CLOSE,0.7,MODE_LOWER,0);
double diMA28=iMA(NULL,60,2,0,MODE_EMA,PRICE_CLOSE,1);
double diEnvelopes29=iEnvelopes
(NULL,60,220,MODE_EMA,0,PRICE_CLOSE,0.3,MODE_LOWER,0);
double diMA30=iMA(NULL,60,2,0,MODE_EMA,PRICE_CLOSE,1);
double diMA31=iMA(NULL,60,220,0,MODE_EMA,PRICE_CLOSE,0);
double diMA32=iMA(NULL,60,2,0,MODE_EMA,PRICE_CLOSE,1);
double diEnvelopes33=iEnvelopes
(NULL,60,220,MODE_EMA,0,PRICE_CLOSE,0.3,MODE_UPPER,0);
double diMA34=iMA(NULL,60,2,0,MODE_EMA,PRICE_CLOSE,1);
double diEnvelopes35=iEnvelopes
(NULL,60,220,MODE_EMA,0,PRICE_CLOSE,0.7,MODE_UPPER,0);
double diMA36=iMA(NULL,60,2,0,MODE_EMA,PRICE_OPEN,1);
double diEnvelopes37=iEnvelopes
(NULL,60,220,MODE_EMA,0,PRICE_CLOSE,1,MODE_UPPER,0);
double diMA38=iMA(NULL,60,2,0,MODE_EMA,PRICE_OPEN,1);
double diEnvelopes39=iEnvelopes
(NULL,60,220,MODE_EMA,0,PRICE_CLOSE,0.7,MODE_UPPER,0);
double diMA40=iMA(NULL,60,2,0,MODE_EMA,PRICE_OPEN,1);
double diEnvelopes41=iEnvelopes
(NULL,60,220,MODE_EMA,0,PRICE_CLOSE,0.3,MODE_UPPER,0);
double diMA42=iMA(NULL,60,2,0,MODE_EMA,PRICE_OPEN,1);
double diMA43=iMA(NULL,60,220,0,MODE_EMA,PRICE_CLOSE,0);
double diMA44=iMA(NULL,60,2,0,MODE_EMA,PRICE_OPEN,1);
double diEnvelopes45=iEnvelopes
(NULL,60,220,MODE_EMA,0,PRICE_CLOSE,0.3,MODE_LOWER,0);
double diMA46=iMA(NULL,60,2,0,MODE_EMA,PRICE_OPEN,1);
double diEnvelopes47=iEnvelopes
(NULL,60,220,MODE_EMA,0,PRICE_CLOSE,0.7,MODE_LOWER,0);
if(AccountFreeMargin() < (1000*dLots))
{
Print("We have no money. Free Margin = " + AccountFreeMargin
());
return(0);
}
bool lFlagBuyOpen=false, lFlagSellOpen=false, lFlagBuyClose=
false, lFlagSellClose=false;
//----
lFlagBuyOpen=((diMA0>diEnvelopes1 && diMA24<diEnvelopes25) ||
(diMA2>diEnvelopes3 && diMA26<diEnvelopes27) || (diMA4<diEnvelopes5
&& diMA28<diEnvelopes29) || (diMA6>diMA7 && diMA30<diMA31) ||
(diMA8>diEnvelopes9 && diMA32<diEnvelopes33) ||
(diMA10>diEnvelopes11 && diMA34<diEnvelopes35));
lFlagSellOpen=((diMA12<diEnvelopes13 && diMA36>diEnvelopes37)
|| (diMA14<diEnvelopes15 && diMA38>diEnvelopes39) ||
(diMA16<diEnvelopes17 && diMA40>diEnvelopes41) || (diMA18<diMA19 &&
diMA42>diMA43) || (diMA20<diEnvelopes21 && diMA44>diEnvelopes45) ||
(diMA22<diEnvelopes23 && diMA46>diEnvelopes47));
lFlagBuyClose=False;
lFlagSellClose=False;
//----
if (!ExistPositions())
{
if (lFlagBuyOpen)
{
OpenBuy();
return(0);
}
if (lFlagSellOpen)
{
OpenSell();
return(0);
}
}
if (ExistPositions())
{
if(OrderType()==OP_BUY)
{
if (lFlagBuyClose)
{
bool flagCloseBuy=OrderClose(OrderTicket(), OrderLots
(), Bid, nSlippage, colorCloseBuy);
if (flagCloseBuy && lFlagUseSound)
PlaySound(sSoundFileName);
return(0);
}
}
if(OrderType()==OP_SELL)
{
if (lFlagSellClose)
{
bool flagCloseSell=OrderClose(OrderTicket(), OrderLots
(), Ask, nSlippage, colorCloseSell);
if (flagCloseSell && lFlagUseSound)
PlaySound(sSoundFileName);
return(0);
}
}
}
if (dBuyTrailingStopPoint > 0 || dSellTrailingStopPoint > 0)
{
for(int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
bool lMagic=true;
if (MAGIC > 0 && OrderMagicNumber()!=MAGIC)
lMagic=false;
if (OrderSymbol()==Symbol() && lMagic)
{
if (OrderType()==OP_BUY && dBuyTrailingStopPoint > 0)
{
if (Bid-OrderOpenPrice() >
dBuyTrailingStopPoint*Point)
{
if (OrderStopLoss()<Bid-
dBuyTrailingStopPoint*Point)
ModifyStopLoss(Bid-
dBuyTrailingStopPoint*Point);
}
}
if (OrderType()==OP_SELL)
{
if (OrderOpenPrice()-
Ask>dSellTrailingStopPoint*Point)
{
if (OrderStopLoss()
>Ask+dSellTrailingStopPoint*Point || OrderStopLoss()==0)
ModifyStopLoss
(Ask+dSellTrailingStopPoint*Point);
}
}
}
}
}
}
return(0);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
bool ExistPositions()
{
for(int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
bool lMagic=true;
//----
if (MAGIC > 0 && OrderMagicNumber()!=MAGIC)
lMagic=false;
if (OrderSymbol()==Symbol() && lMagic)
{
return(True);
}
}
}
return(false);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void ModifyStopLoss(double ldStopLoss)
{
bool lFlagModify=OrderModify(OrderTicket(), OrderOpenPrice(),
ldStopLoss, OrderTakeProfit(), 0, CLR_NONE);
if (lFlagModify && lFlagUseSound)
PlaySound(sSoundFileName);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void OpenBuy()
{
double dStopLoss=0, dTakeProfit=0;
if (dBuyStopLossPoint > 0)
dStopLoss=Bid-dBuyStopLossPoint*Point;
if (dBuyTakeProfitPoint > 0)
dTakeProfit=Ask + dBuyTakeProfitPoint * Point;
int numorder=OrderSend(Symbol(), OP_BUY, dLots, Ask, nSlippage,
dStopLoss, dTakeProfit, sNameExpert, MAGIC, 0, colorOpenBuy);
//----
if (numorder > -1 && lFlagUseSound)
PlaySound(sSoundFileName);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void OpenSell()
{
double dStopLoss=0, dTakeProfit=0;
//----
if (dSellStopLossPoint > 0)
dStopLoss=Ask+dSellStopLossPoint*Point;
if (dSellTakeProfitPoint > 0)
dTakeProfit=Bid-dSellTakeProfitPoint*Point;
//----
int numorder=OrderSend(Symbol(),OP_SELL, dLots, Bid, nSlippage,
dStopLoss, dTakeProfit, sNameExpert, MAGIC, 0, colorOpenSell);
if (numorder > -1 && lFlagUseSound)
PlaySound(sSoundFileName);
}
//+------------------------------------------------------------------+
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
---