Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 255

 
lottamer:


спасибо, проверить не смогу....сначала заглючил советник (не реагировал на извенения в коде). решил перезагрузить мт4 - терминал открылся чистым как слеза ребенка.... ни счетов, ни графиков, ни советников....

видимо это знак - НА СЕГОДНЯ ХВАТИТ :)))

спасибо за терпение.... :)

Блуждать, в трех соснах.

Вот функция И.Кима, разбирайтесь

//+------------------------------------------------------------------+
//| Дивергенции MACD основной линии                                  |
//| Параметры:                                                       |
//|   nb - номер бара                                                |
//|   ms - массив сигналов                                           |
//+------------------------------------------------------------------+
void DivergenceMACDMain(int nb, double& ms[]) {
  double mu1, mu2, md1, md2;
  double pu1, pu2, pd1, pd2;
  double tt[];
  int    sh;

  ArrayResize(tt, BarsForCheck);
  // Заполнение массива точек.
        for (sh=0; sh<BarsForCheck; sh++) {
                tt[sh] = iMACD(NULL, 0, FastEMAPeriod, SlowEMAPeriod, MACDSMAPeriod, PRICE_CLOSE, MODE_MAIN, nb+sh);
        }
  // Определение ключевых точек.
        mu1=0; mu2=0; pu1=0; pu2=0;
        for (sh=0; sh<BarsForCheck; sh++) {
                if (tt[sh+1]<tt[sh+2] && tt[sh+2]>tt[sh+3]) {
                        if (mu1!=0 && mu2==0) {
                          mu2 = tt[sh+1];
                          pu2 = High[nb+sh];
                        }
                        if (mu1==0 && tt[1]<tt[2] && tt[2]>tt[3]) {
                          mu1 = tt[sh+1];
                          pu1 = High[nb+sh];
                        }
                }
        }
        md1=0; md2=0; pd1=0; pd2=0;
        for (sh=0; sh<BarsForCheck; sh++) {
                if (tt[sh+1]>tt[sh+2] && tt[sh+2]<tt[sh+3]) {
                        if (md1!=0 && md2==0) {
                          md2 = tt[sh+1];
                          pd2 = Low[nb+sh];
                        }
                        if (md1==0 && tt[1]>tt[2] && tt[2]<tt[3]) {
                        md1 = tt[sh+1];
                          pd1 = Low[nb+sh];
                        }
                }
        }

  // Сигнал на покупку
  if (pd1<pd2 && md1>md2 && md1<0 && md2<0) {
    ms[0] = Low[nb] - ArrowInterval * Point;
    ms[4] += 4;
  }

  // Сигнал на продажу
  if (pu1>pu2 && mu1<mu2 && mu1>0 && mu2>0) {
    ms[1] = High[nb] + ArrowInterval * Point;
    ms[4] += 4;
  }
}
 
gyfto:
mzk_3om6u, вот на хабре конвертер на бэйсике, перевести можно на коленке.

В блокноте можно открыть и сохранить в ANSI. Другое дело, если надо программно прекодировать.
 
lottamer:
добавляю ЭТО.... и снова принтует 5__13. вроде же уже должны быть значения индикатора ??
   double max=MACDBuffer[ArrayMaximum(MACDBuffer)];
   double min=MACDBuffer[ArrayMinimum(MACDBuffer)];
 
Integer:

В блокноте можно открыть и сохранить в ANSI. Другое дело, если надо программно прекодировать.

Вот вопрос как раз в программно.
 
gyfto:
mzk_3om6u, вот на хабре конвертер на бэйсике, перевести можно на коленке.

Эх если бы я был скиловым пацаном, но я только и умею как функции дёргать))))
 
mzk_3om6u, можно и проще - там vbs-скрипт почти готовый, вписать только Scripting.FileSystemObject для работы с этим txt (прочитать-переконвертировать-записать обратно, центральная часть кода там уже есть), запускать vbs-скрипт с индюка (или что там у вас в наличии) через WinExec, sleep(1000), а дальше по mql4-коду открывать уже перекодированный txt. Вот FSO. Я бы занялся, но у меня у самого времени хронически не хватает...
 
mzk_3om6u:

Вот вопрос как раз в программно.

Создайте тему, а то запаришься в этом ящике всей толпой сидеть... Нашел функцию на php перевел, строка "Ркономический календарь - Аналитика рынка" конвертируется в "Акономический календарь - Аналитика рынка". Так и было или у меня в функции ошибка?
 
Integer:

Акономический
Там скорее всего D0 AD, буква Э, но #&HAD это html &shy; - мягкий перенос в Win1251, за счёт этого происходит дупликация первого символа Win1251 и получается D0 D0, которому в utf-8 не соответствует ни один символ...
 
gyfto:
Там скорее всего D0 AD, буква Э, но #&HAD это html &shy; - мягкий перенос в Win1251, за счёт этого происходит дупликация первого символа Win1251 и получается D0 D0, которому в utf-8 не соответствует ни один символ...


Попробовал букву "Э" и "э" - нормально конвертирует, наврено так и было с "А". Сюда положил функцию.
 
Integer:

Попробовал букву "Э" и "э" - нормально конвертирует, наврено так и было с "А". Сюда положил функцию.

там было Э, спасибо за функцию.