#define MagicNum 10701
extern int fast = 47;//12;
extern int slow = 166;//26;
extern int sign = 11;//9;
extern double TrailingStop = 19;//30;
extern double MATrendPeriod = 8;//26;
extern double MACDOpenLevel = 1;//3;
extern double MACDCloseLevel = 3;//2;
extern double TakeProfit = 550;
extern bool UseMM = false;
extern int PercentMM = 10;
extern double Lots = 0.1;
double GetLots()
{
if (UseMM)
{
double a;
a = NormalizeDouble((PercentMM * AccountFreeMargin() / 100000), 1);
if(a > 49.9) return(49.9);
else if(a < 0.1)
{
Print("Lots < 0.1");
return(0);
}
else return(a);
}
else return(Lots);
}
int CalculateCurrentOrders()
{
int orderT = OrdersTotal(), buys = 0, sells = 0;
for(int i = 0; i < orderT; i++)
{
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES) == false) break;
if(OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNum)
{
if(OrderType() == OP_BUY) buys++;
if(OrderType() == OP_SELL) sells++;
}
}
if(buys > 0) return(buys);
else if(sells > 0) return(-sells);
else return(0);
}
int start()
{
// код доступен только после оплаты
}
if (Symbol() != "EURUSD")
{
Comment("Not a right Symbol: ", Symbol(), " <> EURUSD");
return(0);
}
if (Period() != 240)
{
Comment("Not a right Period!!! It should be H4");
return(0);
}
double MacdCurrent, MacdPrevious, SignalCurrent, SignalPrevious, MaCurrent, MaPrevious;
int cnt, ticket, total;
if(Bars < 100)
{
Print("Bars less than 100");
return(0);
}
if(TakeProfit < 10)
{
Print("TakeProfit less than 10");
return(0);
}
MacdCurrent = iMACD(NULL, 0, fast, slow, sign, PRICE_CLOSE, MODE_MAIN, 0);
MacdPrevious = iMACD(NULL, 0, fast, slow, sign, PRICE_CLOSE, MODE_MAIN, 1);
SignalCurrent = iMACD(NULL, 0, fast, slow, sign, PRICE_CLOSE, MODE_SIGNAL, 0);
SignalPrevious = iMACD(NULL,0,fast, slow, sign, PRICE_CLOSE, MODE_SIGNAL, 1);
MaCurrent = iMA(NULL, 0, MATrendPeriod, 0, MODE_EMA, PRICE_CLOSE, 0);
MaPrevious = iMA(NULL, 0, MATrendPeriod, 0, MODE_EMA, PRICE_CLOSE, 1);
if(CalculateCurrentOrders() == 0)
{
if(AccountFreeMargin() < (1000 * GetLots()))
{
Print("We have no money. Free Margin = ", AccountFreeMargin());
return(0);
}
if(MacdCurrent < 0 && MacdCurrent > SignalCurrent && MacdPrevious < SignalPrevious && MathAbs(MacdCurrent) > (MACDOpenLevel*Point) && MaCurrent > MaPrevious)
{
ticket=OrderSend(Symbol(), OP_BUY, GetLots(), Ask, 3, 0Показано первые 50% кода (символов: 3598)
Введите ваш email и нажмите кнопку, чтобы перейти к оплате.