Здравствуй,
Я новичок в кодировании, но я очень быстро учусь последние 2/3 недели. В этот момент у меня есть проблема, которую я не могу решить (я думаю, что это очень глупая легкая проблема :-).
Поставлен код/HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH HHHHHHHHHHHHHHHHH/// ---------------------------------------- -------------------------- /| Управление SL |/ ----------------------------------------------- ------------------- void Slmanagement () {double ema3open, ema5open, ema3, ema15; double curTdiGreen, curTdiRed, prevTdiGreen, prevTdiRed, curTdiBlueUp, curTdiBlueDown, prevTdiBlueUp, prevTdiBlueDown; ema3open = iMA (NULL, 0, 3, 0, MODE_EMA, PRICE_OPEN, 0); ema5open = iMA (NULL, 0, 5, 0, MODE_EMA, PRICE_OPEN, 0); ema3 = iMA (NULL, 0, 3, 0, MODE_EMA, PRICE_CLOSE, 0); ema15 = iMA (NULL, 0, 15, 0, MODE_EMA, PRICE_CLOSE, 0); curTdiBlueUp = iCustom (NULL, 0, TDI Red Green.ex4,10,5,34,2,1,7,0,1,0); prevTdiBlueUp = iCustom (NULL, 0, TDI Red Green.ex4,10,5,34,2,1,7,0,1,1); curTdiBlueDown = iCustom (NULL, 0, TDI Red Green.ex4,10,5,34,2,1,7,0,3,0); prevTdiBlueDown = iCustom (NULL, 0, TDI Red Green.ex4,10,5,34,2,1,7,0,3,1); curTdiGreen = iCustom (NULL, 0, TDI Red Green.ex4,10,5,34,2,1,7,0,4,0); prevTdiGreen = iCustom (NULL, 0, TDI Red Green.ex4,10,5,34,2,1,7,0,4,1); curTdiRed = iCustom (NULL, 0, TDI Red Green.ex4,10,5,34,2,1,7,0,5,0); prevTdiRed = iCustom (NULL, 0, TDI Red Green.ex4,10,5,34,2,1,7,0,5,1); bool closeBuy1 = (! ema3over5 || (ema3open lt; ema5open)); bool closeBuy2 = (! ema3over15 || (ema3 lt; ema15)); bool closeBuy3 = (! tdicrossrg || ((curTdiGreenlt; curTdiRed) (prevTdiGreengt; prevTdiRed))); bool closeBuy4 = (! tdicrossgb || ((curTdiGreenlt; curTdiBlueUp) (prevTdiGreengt; prevTdiBlueUp))); bool closeBuyOrders = (closeBuy1 || closeBuy2 || closeBuy3 || closeBuy4); bool closeSell1 = (! ema3over5 || (ema3open gt; ema5open)); bool closeSell2 = (! ema3over15 || (ema3 gt ema15)); bool closeSell3 = (! tdicrossrg || ((curTdiGreengt; curTdiRed) (prevTdiGreenlt; prevTdiRed))); bool closeSell4 = (! tdicrossgb || ((curTdiGreengt; curTdiBlueUp) (prevTdiGreenlt; prevTdiBlueUp))); bool closeSellOrders = (closeSell1 || closeSell2 || closeSell3 || closeSell4); for (int i = 0; i lt; OrdersTotal (); i ) {bool Os = OrderSelect (i, SELECT_BY_POS, MODE_TRADES); if (OrderSymbol () == Symbol () (MagicNumber == 0 || OrderMagicNumber () == MagicNumber)) {if (OrderType () == OP_BUY closeBuyOrders) {bool Oc = OrderClose (OrderTicket (), OrderLots (), Bid, slippage_close, синий);/закрыть заказ на покупку, если (! OrderClose (OrderTicket (), OrderLots (), Bid, slippage_close, Blue)) Alert (порядок не близок, потому что номер Err, GetLastError ()); else Alert (заказ закрыт успешно); }if (OrderType () == OP_SELL closeSellOrders) {bool Oc = OrderClose (OrderTicket (), OrderLots (), Ask, slippage_close, Red);/закрыть ордер на продажу, если (! OrderClose (OrderTicket (), OrderLots (), Ask, slippage_close, Red)) Alert (порядок не близок, потому что номер Err, GetLastError ()); else Alert (заказ закрыт успешно); }}}}
Выше кода работает просто отлично, когда все bool closeSellOrders = (closeSell1 || closeSell2 || closeSell3 || closeSell4) и bool closeBuyOrders = (closeBuy1 || closeBuy2 || closeBuy3 || closeBuy4 истинны, но когда я установил 1 из 4 закрыть возможности на false, EA больше не работает. Он открывает заказ и закрывает его одновременно.
Что я делаю неправильно? Я думаю, что это не может быть так сложно.
Заранее спасибо,
Smika