Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 255

 
lottamer:


obrigado, não posso checar.... primeiro o conselheiro teve uma falha (não respondeu às desculpas no código). decidiu reiniciar o mt4 - o terminal abriu limpo como uma lágrima de criança.... sem contas, sem gráficos, sem EAs....

isto deve ser um sinal - ISSO É SUFICIENTE POR HOJE. :)))

obrigado por sua paciência.... :)

Vagando, em três pinheiros.

Aqui está a função de I. Kim, resolva-a

//+------------------------------------------------------------------+
//| Дивергенции 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 ,aqui está um conversor BASIC no centro, você pode traduzi-lo no local.

Você pode abri-lo no bloco de notas e salvá-lo no ANSI. É outra questão, se você precisar codificá-la previamente de forma programática.
 
lottamer:
Eu acrescento ESTE.... e imprime novamente 5__13. Não deveria já haver valores indicadores?
   double max=MACDBuffer[ArrayMaximum(MACDBuffer)];
   double min=MACDBuffer[ArrayMinimum(MACDBuffer)];
 
Integer:

Você pode abri-lo no bloco de notas e salvá-lo no ANSI. É uma questão diferente se você precisar codificá-la previamente de forma programática.

Esta é a questão da pré-codificação do software.
 
gyfto:
mzk_3om6u ,aqui está um conversor BASIC no centro, você pode traduzi-lo no local.

Eh, se eu fosse um garoto habilidoso, mas tudo o que sei fazer é funções yank))))
 
mzk_3om6u, pode ser mais simples - lá vbs-script está quase pronto, digite apenas Scripting.FileSystemObject para trabalhar com este txt (read-reconvert-write back, a parte central do código já está lá), execute vbs-script do peru (ou o que quer que você tenha) através do WinExec, sleep(1000), e depois por mql4-code abra o txt já convertido. Aqui está o FSO. Eu o faria, mas eu mesmo estou cronicamente com falta de tempo.
 
mzk_3om6u:

Essa é a questão, programática.

Crie um tópico, senão você vai se cansar de sentar nesta caixa com toda a multidão... Encontrei uma função no php traduzida, a linha "РРєÐśÐśÐ†Ð××ІІІІа"ÐµÐЅÐґÐ°ÑЂЊ - ÐђÐЅÐ°Ð° ÑÑ'ÐЅÐа" é convertida em "CalendárioEconômico- Análise de Mercado". Foi este o caso ou há um erro em minha função?
 
Integer:

Aconômico
Provavelmente há D0 AD, a letra E, mas #&HAD é html &shy; - transferência suave em Win1251, então o primeiro caractere de Win1251 é duplicado e você recebe D0 D0, que em utf-8 não é um único caractere...
 
gyfto:
Há muito provavelmente D0 AD, letra E, mas #&HAD é html &shy; - transferência suave em Win1251, devido a isso o primeiro caractere de Win1251 é duplicado e você recebe D0 D0, que em utf-8 não corresponde a nenhum caractere...


As letras "E" e "e" - convertidas normalmente, pode ser assim com "A". Coloque a função aqui.
 
Integer:

Experimentei as letras "A" e "e" - converte normalmente, deve ter feito isso com "A". Coloque a função aqui.

houve um A, obrigado pela função.