// expert deinitialization function
//++
int deinit()
{
//
return(0);
}
//++
// expert start function
//++
double perceptron()
{
double w1 = x1 - ;
double w2 = x2 - ;
double w3 = x3 - ;
double w4 = x4 - ;
double a1 = iAC(Symbol(), 0, 0);
double a2 = iAC(Symbol(), 0, 7);
double a3 = iAC(Symbol(), 0, 14);
double a4 = iAC(Symbol(), 0, 21);
return (w1 * a1 + w2 * a2 + w3 * a3 + w4 * a4);
}
//++}
. Ctrl + R.
Settings ( ). Recalculate Optimization. Expert properties.
, . . , .
1, .
, 35%. , . .
OK, . Start. .
Pentium III . .
, Set Input Parameters, .
, , .
. , , , . , ? , ? , , .
. .
. : x1 = , x2 = 25, x3 = , x4 = , sl =
"Use date" , .
. . , , , . , , . , , .
, . . " "?
: , . . . , . , . , , . , , . , , , , " " . .
* . . , ;
* , . , , , . - , "";
* , , , . , , ;
. , .
.
, . "" , . , , . , , , , . . [1]. , , , :
1. , . . , , , . ;
2. " " . , , . , , , . . ? . , , . .
, .
()
NeuroFilter Release
. .
:
1.
2. ;
3. , ;
4. , ;
5. , . 1;
6. ;
7. , . 1;
8. , .
.
?
Perceptron? :
w1 * a1 + w2 * a2 + wn * an > d,
:
wi - i,
ai - i ,
d - , 0.
, , , . , , .
, - . . .
, . , X, Y Z :
A * X + B * Y + C * Z + D = 0
, , :
A * X + B * Y + C * Z + D > 0
, , :
A * X + B * Y + C * Z + D < 0
, . , , .
.
, . , , , X Y. , .
. :
.
, . .
, . , - . , . , . , , , . , , , . AC.
.
MetaTrader4 , .
, , . , :
1. - - takeprofit stoploss;
2. .
, - stoploss . , :
* ;
* .
. . . , .
, :
//++
//
//++
int start()
{
if(Time[0] == prevtime)
return(0);
prevtime = Time[0];
//
if(IsTradeAllowed())
{
spread = MarketInfo(Symbol(), MODE_SPREAD);
}
else
{
prevtime = Time[1];
return(0);
}
int ticket = -1;
// check for opened position
int total = OrdersTotal();
for(int i = total - 1; i >= 0; i--)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
// check for symbol & magic number
if(OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)
{
int prevticket = OrderTicket();
// long position is opened
if(OrderType() == OP_BUY)
{
// check profit
if(Bid > (OrderStopLoss() + (sl * 2 + spread) * Point))
{
if(perceptron() < 0)
{
// reverse
ticket = OrderSend(Symbol(), OP_SELL, lots * 2, Bid, 3,
Ask + sl * Point, 0, "AI", MagicNumber,
0, Red);
Sleep();
if(ticket < 0)
{
prevtime = Time[1];
}
else
{
OrderCloseBy(ticket, prevticket, Blue);
}
}
else
{
// trailing stop
if(!OrderModify(OrderTicket(), OrderOpenPrice(),
Bid - sl * Point, 0, 0, Blue))
{
Sleep();
prevtime = Time[1];
}
}
}
// short position is opened
}
else
{
// check profit
if(Ask < (OrderStopLoss() - (sl * 2 + spread) * Point))
{
if(perceptron() > 0)
{
// reverse
ticket = OrderSend(Symbol(), OP_BUY, lots * 2, Ask, 3,
Bid - sl * Point, 0, "AI", MagicNumber,
0, Blue);
Sleep();
if(ticket < 0)
{
prevtime = Time[1];
}
else
{
OrderCloseBy(ticket, prevticket, Blue);
}
}
else
{
// trailing stop
if(!OrderModify(OrderTicket(), OrderOpenPrice(),
Ask + sl * Point, 0, 0, Blue))
{
Sleep();
prevtime = Time[1];
}
}
}
}
// exit
return(0);
}
}
// check for long or short position possibility
if(perceptron() > 0)
{
//long
ticket = OrderSend(Symbol(), OP_BUY, lots, Ask, 3, Bid - sl * Point, 0,
"AI", MagicNumber, 0, Blue);
if(ticket < 0)
{
Sleep();
prevtime = Time[1];
}
}
else
{
// short
ticket = OrderSend(Symbol(), OP_SELL, lots, Bid, 3, Ask + sl * Point, 0,
"AI", MagicNumber, 0, Red);
if(ticket < 0)
{
Sleep();
prevtime = Time[1];
}
}
// exit
return(0);
}
//++
//
аналитика форекс gbp кaртa мирa форекс вспомогательные индикаторы форекс как платят налоги трейдеры валютного рынка форекс лучшие индикаторы для входа индикаторы измерения температуры щитовые дмитрий котенко форекс клипaрт для форекс имхо на форексе дц форекс брокер отзывы безрисковая комбинация форекс индикаторы рынка ферросплавов