Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1609

 

 День добрый

История не улучшается никак, качество истории 22% по всем символам.

Перепробовал все, может что-то с настройками, но вроде ничего не трогал сильно. Build 2981.

Может брокер мутит?)

отчет

журнал

 
 Если запустить с Metaeditor-a, то качество вообще 9%. Не думал что пойдут на поводу у "кухонь". Достаточно было МТ4 с дырявыми котировками, на которых невозможно было нормально оптимизировать. 
 
Доброго времени суток! Срочно нужен индикатор OSMA с алертом на момент пересечения с нулевой линией, а не по закрытию бара. И чтоб алерт можно было ставить пользовательский. Есть у кого? Поделитесь плиз. Если нет - попрошу написать умельцев🙏
 
Manter84 #:
Вирусов нет, но какая то дичь твориться. И тут задвоение сообщений))

С телефона часто бывает задвоение, давний трабл)

 
int cnt,ticket,total=0;

st = "часы общ. пон. вт. ср. чт. пт. \n";

double cHeight, gHeight, Max;

int sat, sun, mon, thu, wen, ths, fri; //, NN;

int H = TimeHour(TimeCurrent()); // определим текущий час

double NN = H + N*24; // определим смещение

if (NN>Bars) NN=Bars;

for (int t=0; t<24; t++)

{

  int HeightZ = 0; int z=0;

  for (int i=0; i<=NN; i++)

  {

    HeightZ = (High[i]-Low[i])/Point;

    z++;
  }

}

Впишите эту функцию без ошибок в строенный советник по максд пожалуйста. Я не могу отделать от этой ошибки 'undeclared identifier


 
Mihail Matkovskij #:

На сколько я понял, движение у вас вычисляется, как высота бара (MathAbs было не нужно). 

и

здесь вы пытаетесь вычислить количество баров... Но лучше задать его просто положительным числом, для начала.

Среднее движение бара можно вычислить так:

Теперь, можете попробовать вычислить стоп и тейк на основе результата функции.

на примере просто советника покажите пожалуйста.

 
Valeriy Yastremskiy #:

Принт будет на каждом тике печатать и при первой загрузке ОнТик в советнике и ОнКалькулейт в индикаторе. 

Странно что на последующих тиках он не печатает. проверку вставьте, если будут два принта с одинаковой i, то вопрос будет правомерен.)

i разные получились. (i= 1 и i=2).

 
Manter84 #:

i разные получились. (i= 1 и i=2).

Значит в теле ОнКалькулейт печатает 1 раз)

 

Подскажите, как сократить конструкцию?

Смысл в том, что нужно отсечь пары, в которых уже есть символ

int OnInit()
{
  Comment(Search(Symbol())?"Yes":"No");
  return(INIT_SUCCEEDED);
}

//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
bool Search(string _sy)
{
  int OT=OrdersTotal();
  for(int i=0; i<OT; i++) {
    if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) {
        if(StringSubstr(OrderSymbol(),0,3)==StringSubstr(_sy,0,3) ||
           StringSubstr(OrderSymbol(),0,3)==StringSubstr(_sy,3,3) ||
           StringSubstr(OrderSymbol(),3,3)==StringSubstr(_sy,0,3) ||
           StringSubstr(OrderSymbol(),3,3)==StringSubstr(_sy,3,3))
         return(true);
    }
  }
  return(false);
}

Есть позиция по паре USDCHF

===

Есть позиция по EURGBP, сигнал поступил с AUDUSD - как это обнаружить, что нет позиций ни по AUD, ни по USD ?

 
Vitaly Muzichenko #:

Подскажите, как сократить конструкцию?

Смысл в том, что нужно отсечь пары, в которых уже есть символ

Есть позиция по паре USDCHF


StringFind

вроде 2 строки должно получиться, поиск и 0 и 3 позиции. Что бы в середине отсечь случайное совпадение.

ЗЫ

Тупанул, там же 4 условия. их не сократить.

Не равные A  B и не равные C  D

условие А==С или А==D или В==С или B==D

Короче вряд ли кто сможет написать)))

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