Orders Execution
Indicators Used
0
Views
0
Downloads
0
Favorites
FractalTakeOut_v1
//+--------------------------------------------------------------------------+
//| FractalTakeOut_v1.mq4 |
//| Copyright © Mar/30/2007, C.O.P.Y.C.A.T. |
//| http://finance.groups.yahoo.com/group/MetaTrader_Experts_and_Indicators/ |
//+--------------------------------------------------------------------------+
//Built for Peter Henry , as described in the thread titled "Simple Fractal trading system" @ http://finance.groups.yahoo.com/group/MetaTrader_Experts_and_Indicators/
#property copyright "Copyright © Mar/30/2007, C.O.P.Y.C.A.T."
#property link "http://finance.groups.yahoo.com/group/MetaTrader_Experts_and_Indicators/"
extern double StopLoss$ = 10.00; // == $0.00 , Not Pips
extern int MagicNumber = 1913;
double HighPrice = 0;
bool HighBreaker = false;
double LowPrice = 0;
bool LowBreaker = false;
int i;
int ticket = 0;
double BuyTradeTime=0;
double SellTradeTime=0;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
if (!IsDemo())return(0);
double Ma3High = iMA(Symbol(),0,3,0,MODE_SMA,PRICE_HIGH,0);
double Ma3Low = iMA(Symbol(),0,3,0,MODE_SMA,PRICE_LOW ,0);
double LastVisableHighFractal = 0, LastVisableLowFractal = 0;
for (int b=Bars-10;b>=0;b--)
{
if (iFractals(Symbol(),0,MODE_UPPER, b) > 0) LastVisableHighFractal = iFractals(Symbol(),0,MODE_UPPER, b);
if (iFractals(Symbol(),0,MODE_LOWER, b) > 0) LastVisableLowFractal = iFractals(Symbol(),0,MODE_LOWER, b);
}
ticket = 0;
BuyTradeTime=0;
SellTradeTime=0;
for (i = 0; i < OrdersHistoryTotal() ; i++)
{
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
if ( OrderSymbol() == Symbol() && OrderType() == OP_BUY && OrderMagicNumber() == MagicNumber )
{
BuyTradeTime = OrderOpenTime();
}
if ( OrderSymbol() == Symbol() && OrderType() == OP_SELL && OrderMagicNumber() == MagicNumber )
{
SellTradeTime = OrderOpenTime();
}
}
for (i = 0; i < OrdersTotal() ; i++)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if ( OrderSymbol() == Symbol() && OrderType() == OP_BUY && OrderMagicNumber() == MagicNumber )
{
if(OrderOpenTime()>= BuyTradeTime) { BuyTradeTime = OrderOpenTime(); } else { BuyTradeTime = BuyTradeTime; }
if(Close[0]>=Ma3High || OrderProfit()<=(-StopLoss$))
{
OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),0,White);
}
}
if ( OrderSymbol() == Symbol() && OrderType() == OP_SELL && OrderMagicNumber() == MagicNumber )
{
if(OrderOpenTime()>= SellTradeTime) { SellTradeTime = OrderOpenTime(); } else { SellTradeTime = SellTradeTime; }
if(Close[0]<=Ma3Low || OrderProfit()<=(-StopLoss$))
{
OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),0,White);
}
}
}
if (HighBreaker && HighPrice < LastVisableHighFractal) { HighBreaker = false; }
if (!HighBreaker && High[0] > LastVisableHighFractal) { HighPrice = LastVisableHighFractal; HighBreaker = true; LowBreaker = false; }
if (LowBreaker && LowPrice > LastVisableLowFractal) { LowBreaker = false; }
if (!LowBreaker && Low[0] < LastVisableLowFractal) { LowPrice = LastVisableLowFractal; HighBreaker = false; LowBreaker = true; }
if (HighPrice == 0) HighBreaker = false;
if (LowPrice == 0) LowBreaker = false;
if (HighBreaker && Close[0] < Ma3Low && BuyTradeTime < Time[0])
{
ticket = OrderSend(Symbol(),OP_BUY,0.10,Ask,0,0,0,"FractalTakeOut_v1"+MagicNumber,MagicNumber,0,Aqua);
BuyTradeTime = TimeCurrent();
if(ticket < 1)
{
Print("OrderSend failed with error #",GetLastError());
BuyTradeTime = 0;
}
}
if (LowBreaker && Close[0] > Ma3High && SellTradeTime < Time[0])
{
ticket = OrderSend(Symbol(),OP_SELL,0.10,Bid,0,0,0,"FractalTakeOut_v1"+MagicNumber,MagicNumber,0,DeepPink);
SellTradeTime = TimeCurrent();
if(ticket < 1)
{
Print("OrderSend failed with error #",GetLastError());
SellTradeTime = 0;
}
}
Comment("\n"," Last Visable High Fractal Price : ",LastVisableHighFractal,
"\n"," Last High TakeOut Price : ",HighPrice,
"\n"," Buy Mode : ",HighBreaker,
"\n",
"\n"," Last Visable Low Fractal Price : ",LastVisableLowFractal,
"\n"," Last Low TakeOut Price : ",LowPrice,
"\n"," Sell Mode : ",LowBreaker);
//----
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
---