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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
RVSm
35
RVSm  

Имеется личный советник, который работает по 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.   }
Aleksandr Yakovlev
3340
Aleksandr Yakovlev  
RVSm:

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



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

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

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

RVSm
35
RVSm  
Alekseu Fedotov:

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

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

12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий