Author: Copyright � 2006, Expert Advisors
Price Data Components
Series array that contains open time of each bar
Orders Execution
Checks for the total of open ordersIt Closes Orders by itself It can change open orders parameters, due to possible stepping strategyIt automatically opens orders when conditions are reached
Indicators Used
MACD Histogram
0 Views
0 Downloads
0 Favorites
Euro Fx2
/*-----------------------------+
|			       |
| Shared by www.Aptrafx.com    |
|			       |
+------------------------------*/

//+------------------------------------------------------------------+
//|                                                     Euro Fx2.mq4 |
//|                      Copyright © 2006, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+

#property copyright "Copyright © 2006, Expert Advisors"
#property link "http://forex-soft.netfirms.com"

extern int MaxTrades = 4;
extern int Pips = 5;
extern double TakeProfit = 40;
extern double TrailingStop = 20;
double var_100 = 0;
int var_108 = 10;
int var_112 = 1;
int var_116 = 3;
int var_120 = 0;
double var_124 = 10;
double var_132 = 10;
double var_140 = 10;
double var_148 = 9.715;
int var_156 = 2005;
int var_160 = 1;
int var_164 = 2050;
int var_168 = 12;
int var_172 = 22;
int var_176 = 30;
int var_180 = 0;
int var_184 = 12;
int var_188 = 0;
int var_192 = 0;
int cnt = 0;
int slippage = 5;
double stoploss = 0;
double takeprofit = 0;
double bprice = 0;
double sprice = 0;
double var_236 = 0;
double lots = 0;
int var_252 = 0;
int var_256 = 0;
bool var_260 = true;
double var_264 = 0;
int var_272 = 0;
double var_276 = 0;
int var_284 = 0;
int var_288 = 0;
double var_292 = 0;
double var_300 = 0;
double var_308 = 0;
double var_316 = 0;
string var_324 = "";
string var_332 = "";
double Lots;

//+------------------------------------------------------------------+

double Lots()
{
Lots = NormalizeDouble(AccountFreeMargin() / 5 / 10000,1);
if (Lots < 0.1) Lots = 0.1;
if (Lots > 100.0) Lots = 100;
return(Lots);
}

//+------------------------------------------------------------------+

int init()
{
if (IsTesting())
{
ObjectCreate("text_object",OBJ_LABEL,0,0,0);
ObjectSet("text_object",OBJPROP_XDISTANCE,4);
ObjectSet("text_object",OBJPROP_YDISTANCE,15);
//ObjectSetText("text_object","(c) ExpertAdvisors, http://forex-soft.netfirms.com",8,"Verdana",Gold);
}
else
{
//Alert("Demo-version runs under Strategy Tester,\nnot on account - ON HISTORY ONLY !\n\nSee full version at http://forex-soft.netfirms.com");
}
return(0);
}

//+------------------------------------------------------------------+

int deinit()
{
return(0);
}

//+------------------------------------------------------------------+

int start()
{
if (IsTesting())
{
if (var_188 == 1)
{
if (var_180 != 0)
var_236 = MathCeil(AccountBalance() * var_184 / 10000);
else
var_236 = Lots();
}
else
{
if (var_180 != 0)
var_236 = MathCeil(AccountBalance() * var_184 / 10000) / 10;
else
var_236 = Lots();
}
if (var_236 > 100.0) var_236 = 100;
var_192 = 0;
for (cnt = 0; cnt < OrdersTotal(); cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if ((OrderSymbol() == Symbol())) var_192++;
}
if (var_192 < 1)
{
if (TimeYear(CurTime()) < var_156) return(0);
if (TimeMonth(CurTime()) < var_160) return(0);
if (TimeYear(CurTime()) > var_164) return(0);
if (TimeMonth(CurTime()) > var_168) return(0);
}
if ((Symbol() == "EURUSD")) var_316 = var_124;
if ((Symbol() == "GBPUSD")) var_316 = var_132;
if ((Symbol() == "USDJPY")) var_316 = var_148;
if ((Symbol() == "USDCHF")) var_316 = var_140;
if (var_316 == 0.0) var_316 = 5;
if (var_272 > var_192)
{
for (cnt = OrdersTotal(); cnt >= 0; cnt--)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
var_252 = OrderType();
if ((OrderSymbol() == Symbol()))
{
if (var_252 == 0) OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),slippage,Blue);
if (var_252 == 1) OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),slippage,Red);
return(0);
}
}
}
var_272 = var_192;
if (var_192 >= MaxTrades) var_260 = false; else var_260 = true;
if (var_264 == 0.0)
{
for (cnt = 0; cnt < OrdersTotal(); cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
var_252 = OrderType();
if ((OrderSymbol() == Symbol()))
{
var_264 = OrderOpenPrice();
if (var_252 == 0) var_256 = 2;
if (var_252 == 1) var_256 = 1;
}
}
}
if (var_192 < 1)
{
var_256 = 3;
if (iMACD(NULL,0,14,26,9,PRICE_CLOSE,MODE_MAIN,0) > iMACD(NULL,0,14,26,9,PRICE_CLOSE,MODE_MAIN,1)) var_256 = 2;
if (iMACD(NULL,0,14,26,9,PRICE_CLOSE,MODE_MAIN,0) < iMACD(NULL,0,14,26,9,PRICE_CLOSE,MODE_MAIN,1)) var_256 = 1;
if (var_120 == 1)
{
if (var_256 == 1)
{
var_256 = 2;
}
else
{
if (var_256 == 2)
{
var_256 = 1;
}
}
}
}
for (cnt = OrdersTotal(); cnt >= 0; cnt--)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if ((OrderSymbol() == Symbol()))
{
if (OrderType() == OP_SELL)
{
if (TrailingStop > 0.0)
{
if (OrderOpenPrice() - Ask >= (TrailingStop + Pips) * Point)
{
if (OrderStopLoss() > Ask + Point * TrailingStop)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask + Point * TrailingStop,OrderClosePrice() - TakeProfit * Point - TrailingStop * Point,800,Purple);
return(0);
}
}
}
}
if (OrderType() == OP_BUY)
{
if (TrailingStop > 0.0)
{
if (Bid - OrderOpenPrice() >= (TrailingStop + Pips) * Point)
{
if (OrderStopLoss() < Bid - Point * TrailingStop)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid - Point * TrailingStop,OrderClosePrice() + TakeProfit * Point + TrailingStop * Point,800,Yellow);
return(0);
}
}
}
}
}
}
var_276 = 0;
var_284 = 0;
var_288 = 0;
var_292 = 0;
var_300 = 0;
for (cnt = 0; cnt < OrdersTotal(); cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if ((OrderSymbol() == Symbol()))
{
var_284 = OrderTicket();
if (OrderType() == OP_BUY) var_288 = 0;
if (OrderType() == OP_SELL) var_288 = 1;
var_292 = OrderClosePrice();
var_300 = OrderLots();
if (var_288 == 0)
{
if (OrderClosePrice() < OrderOpenPrice()) var_276 = var_276 - (OrderOpenPrice() - OrderClosePrice()) * OrderLots() / Point;
if (OrderClosePrice() > OrderOpenPrice()) var_276 = var_276 + (OrderClosePrice() - OrderOpenPrice()) * OrderLots() / Point;
}
if (var_288 == 1)
{
if (OrderClosePrice() > OrderOpenPrice()) var_276 = var_276 - (OrderClosePrice() - OrderOpenPrice()) * OrderLots() / Point;
if (OrderClosePrice() < OrderOpenPrice()) var_276 = var_276 + (OrderOpenPrice() - OrderClosePrice()) * OrderLots() / Point;
}
}
}
var_276 = var_276 * var_316;
var_332 = "Profit: $" + DoubleToStr(var_276,2) + " +/-";
if ((var_192 >= MaxTrades - var_116) && (var_112 == 1))
{
if (var_276 >= var_108)
{
OrderClose(var_284,var_300,var_292,slippage,Yellow );
var_260 = false;
return(0);
}
}
if (!IsTesting())
{
if (var_256 == 3)
var_324 = "No conditions to open trades";
else
var_324 = " ";
}
if ((var_256 == 1) && var_260)
{
if ((Bid - var_264 >= Pips * Point) || (var_192 < 1))
{
sprice = Bid;
var_264 = 0;
if (TakeProfit == 0.0) takeprofit = 0; else takeprofit = sprice - TakeProfit * Point;
if (var_100 == 0.0) stoploss = 0; else stoploss = sprice + var_100 * Point;
if (var_192 != 0)
{
lots = var_236;
cnt = 1;
while (cnt <= var_192)
{
if (MaxTrades > 12)
lots = NormalizeDouble(lots * 1.5,1);
else
lots = NormalizeDouble((lots + lots),1);
cnt++;
}
}
else
{
lots = var_236;
}
if (lots > 100.0) lots = 100;
OrderSend(Symbol(),OP_SELL,lots,sprice,slippage,stoploss,takeprofit,0,0,0,Red);
return(0);
}
}
if ((var_256 == 2) && var_260)
{
if ((var_264 - Ask >= Pips * Point) || (var_192 < 1))
{
bprice = Ask;
var_264 = 0;
if (TakeProfit == 0.0) takeprofit = 0; else takeprofit = bprice + TakeProfit * Point;
if (var_100 == 0.0) stoploss = 0; else stoploss = bprice - var_100 * Point;
if (var_192 != 0)
{
lots = var_236;
cnt = 1;
while (cnt <= var_192)
{
if (MaxTrades > 12)
lots = NormalizeDouble(lots * 1.5,1);
else
lots = NormalizeDouble((lots + lots),1);
cnt++;
}
}
else
{
lots = var_236;
}
if (lots > 100.0) lots = 100;
OrderSend(Symbol(),OP_BUY,lots,bprice,slippage,stoploss,takeprofit,0,0,0,Blue);
return(0);
}
}
}
return(0);
}




Comments

Markdown supported. Formatting help

Markdown Formatting Guide

Element Markdown Syntax
Heading # H1
## H2
### H3
Bold **bold text**
Italic *italicized text*
Link [title](https://www.example.com)
Image ![alt text](image.jpg)
Code `code`
Code Block ```
code block
```
Quote > blockquote
Unordered List - Item 1
- Item 2
Ordered List 1. First item
2. Second item
Horizontal Rule ---