Нужна помощь! Открывает много ордеров советник.

 

Имеется личный советник, который работает по 6 индикаторам. Скорее всего в строках 24 и 29 нужно что-то исправить, но я не знаю что. Он открывает много ордеров, видимо на каждом тике срабатывает одно из условий и открывает сделку. Как можно исправить? Заранее спасибо!



  1.   if ((MACDgg > 0 || MACDgs > 0) && ((MACDgg > MACDgg1 && MACDgg1 > MACDgg2) || (MACDgg > MACDgg1 && MACDgg1 > MACDgs2) || (MACDgg > MACDgs1 && MACDgs1 > MACDgs2) || (MACDgs > MACDgs1 && MACDgs1 > MACDgs2) || (MACDgs > MACDgg1 && MACDgg1 > MACDgs2) || (MACDgs > MACDgs1 && MACDgs1 > MACDgg2) || (MACDgs > MACDgg1 && MACDgg1 > MACDgg2)) && MACDo > MACDo1 && MACDo1 > MACDo2) MACDb = true;
  2.   if (MFI1 > MFI2 && MFI2 > MFI3) MFIb = true;
  3.   if (Стохастик > Стохастик1 && Стохастик1 > Стохастик2) Stochb = true;
  4.   if (EMA1 > EMA2 && EMA2 > EMA3) EMAb = true;
  5.   if (Bid > Параболик) PSARb = true;
  6.   for (int g = 0; g <= 5; g++)
  7.   {
  8.    SSRC1 = iCustom(NULL, 0, "SSRC_MTF", 2, g);
  9.    if (SSRC1 < 0) SSRCb = true;
  10.   }
  11.   
  12.   
  13.   if ((MACDgr < 0 || MACDgs < 0) && ((MACDgr > MACDgr1 && MACDgr1 > MACDgr2) || (MACDgr > MACDgr1 && MACDgr1 > MACDgs2) || (MACDgr > MACDgs1 && MACDgs1 > MACDgr2) || (MACDgs > MACDgr1 && MACDgr1 > MACDgr2) || (MACDgr > MACDgs1 && MACDgs1 > MACDgs2) || (MACDgs > MACDgr1 && MACDgr1 > MACDgr2) || (MACDgs > MACDgr1 && MACDgr1 > MACDgs2) || (MACDgs > MACDgs1 && MACDgs1 > MACDgs2)) && MACDo < MACDo1 && MACDo1 < MACDo2) MACDs = true;  
  14.   if (MFI1 < MFI2 && MFI2 < MFI3) MFIs = true;
  15.   if (Стохастик < Стохастик1 && Стохастик1 < Стохастик2) Stochs = true;
  16.   if (EMA1 < EMA2 && EMA2 < EMA3) EMAs = true;
  17.   if (Ask < Параболик) PSARs = true;
  18.   for (int h = 0; h <= 5; h++)
  19.   {
  20.    SSRC2 = iCustom(NULL, 0, "SSRC_MTF", 1, h);
  21.    if (SSRC2 > 0 && SSRC2 < 1) SSRCs = true;
  22.   }
  23.   if ((MACDb && MFIb && Stochb) || (MACDb && Stochb && EMAb) || (MACDb && EMAb && PSARb) || (MACDb && PSARb && SSRCb) || (MACDb && MFIb && EMAb) || (MACDb && MFIb && PSARb) || (MACDb && MFIb && SSRCb) || (MACDb && Stochb && PSARb) || (MACDb && Stochb && SSRCb) || (MACDb && EMAb && SSRCb) || (MFIb && Stochb && EMAb) || (MFIb && EMAb && PSARb) || (MFIb && PSARb && SSRCb) || (MFIb && Stochb && PSARb) || (MFIb && Stochb && SSRCb) || (MFIb && EMAb && SSRCb) || (Stochb && EMAb && PSARb) || (Stochb && PSARb && SSRCb) || (EMAb && PSARb && SSRCb) || (Stochb && EMAb && SSRCb))
  24. //  if (MACDb && MFIb && Stochb && EMAb && PSARb && SSRCb)
  25.   {
  26.    MarketSend(OP_BUY, Лот, d_buystop, d_buytake, МагическийНомер);      
  27.   }
  28.   if ((MACDs && MFIs && Stochs) || (MACDs && Stochs && EMAs) || (MACDs && EMAs && PSARs) || (MACDs && PSARs && SSRCs) || (MACDs && MFIs && EMAs) || (MACDs && MFIs && PSARs) || (MACDs && MFIs && SSRCs) || (MACDs && Stochs && PSARs) || (MACDs && Stochs && SSRCs) || (MACDs && EMAs && SSRCs) || (MFIs && Stochs && EMAs) || (MFIs && EMAs && PSARs) || (MFIs && PSARs && SSRCs) || (MFIs && Stochs && PSARs) || (MFIs && Stochs && SSRCs) || (MFIs && EMAs && SSRCs) || (Stochs && EMAs && PSARs) || (Stochs && PSARs && SSRCs) || (EMAs && PSARs && SSRCs) || (Stochs && EMAs && SSRCs))  
  29. //  if (MACDs && MFIs && Stochs && EMAs && PSARs && SSRCs)
  30.   {
  31.    MarketSend(OP_SELL, Лот, d_sellstop, d_selltake, МагическийНомер);
  32.   }
 
RVSm:

Имеется личный советник, который работает по 6 индикаторам. Скорее всего в строках 24 и 29 нужно что-то исправить, но я не знаю что. Он открывает много ордеров, видимо на каждом тике срабатывает одно из условий и открывает сделку. Как можно исправить? Заранее спасибо!



Удали советник и торгуй руками.)))

 
нужно в условии логический оператор добавить типа  OrdersTotal()<=0
 
Это не исправить. Мало данных для анализа кода.
 
нужно в условии логический оператор добавить типа  OrdersTotal()<=0
 
DMITRIY KONOGOROV:
нужно в условии логический оператор добавить типа  OrdersTotal()<=0
Мне нужно, чтобы он не ставил слишком много ордеров подряд.
 
Vitalii Ananev:
Это не исправить. Мало данных для анализа кода.
Какие данные вам ещё нужны? Вроде всё ясно...
 
Делайте проверку на открытые ордера, что тут не понятно.
 
Evgeniy Chumakov:
Делайте проверку на открытые ордера, что тут не понятно.
Прошу прощения, не могли бы вы подсказать? Как? :З
 
RVSm:
Прошу прощения, не могли бы вы подсказать? Как? :З

Послушайте Александра Яковлева.

 
Alekseu Fedotov:

Послушайте Александра Яковлева.

На всю нашу торговлю руками можно сделать советник, только разная степень сложности и всё)

Причина обращения: