どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 255

 
lottamer:


ありがとうございます、確認できません...まずアドバイザーが不具合を起こしました(コード内の謝罪に反応しませんでした)。mt4を再起動することにしました-ターミナルは子供の涙のようにきれいに開きました...。口座なし、チャートなし、EAなし...。

これはきっと 今日はこの辺で。 :)))

お待たせしました:)

彷徨い、三本松で。

ここにI.Kimの機能があります、整理してください。

//+------------------------------------------------------------------+
//| Дивергенции 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 さん、ここに ハブのBASICコンバータがありますから、その場で翻訳してください。

メモ帳で開き、ANSIで保存することができます。プログラム的にプリコーディングする必要があるかは別問題です。
 
lottamer:
THISを追加します...。と表示され、また5__13と表示されます。 すでにインジケータ値があるはずでは?
   double max=MACDBuffer[ArrayMaximum(MACDBuffer)];
   double min=MACDBuffer[ArrayMinimum(MACDBuffer)];
 
Integer:

メモ帳で開き、ANSIで保存することができます。プログラム的にプリコーディングが必要な場合は別問題です。

これがソフトウェアプリコーディングの問題である。
 
gyfto:
mzk_3om6u さん、ここに ハブのBASICコンバータがありますから、その場で翻訳してください。

えー、私が腕のいい子供ならともかく、ヤンチャな機能しか知らないので))))
 
mzk_3om6u さん、もっと簡単です。vbsスクリプトがほぼ出来上がっているので、このtxtを扱うためにScripting.FileSystemObjectだけを入力し(読み込み-変換-書き戻し、コードの中心部分はすでにあります)、WinExecを通してターキー(あるいは何でもいいです)からvbsスクリプトを 実行、 sleep(1000) 、そしてmql4コードで変換済みtxtを開いてみてください。ここで FSOです。やりたいけど、私自身慢性的に時間がない...。
 
mzk_3om6u:

それが、プログラム的に問題なのです。

トピックを作成してください。そうしないと、この箱の中で大勢の人と一緒に座っているのに飽きてしまいますから...。phpで翻訳された関数を見つけたのですが、「РєÐśÐ†Ð×ІІІа"ÐÐЅÐ - ÑЅÐ°」という行は「経済 カレンダー - 市場分析」に変換されています。このようなケースだったのか、それとも私の関数に誤りがあるのか。
 
Integer:

経済的
Eの文字であるD0 ADがあると思いますが、#&HADはWin1251ではhtml &shy; - soft transferなので、Win1251の1文字目が重複してD0 D0となり、utf-8では1文字にならないのですが・・・。
 
gyfto:
D0 AD、Eという文字が一番ありそうですが、#&HADはhtml &shy; - Win1251のソフト転送、このためWin1251の最初の文字が重複してD0 D0となり、utf-8ではどの文字にも対応していない...となります。


E "と "e "を試したところ、正常に変換されたので、もしかしたら "A "の時もこんな感じだったのかもしれません。ここに 機能を入れる。
 
Integer:

A "と "e "を試したところ、正常に変換されたので、"A "でそうなったのでしょう。ここに 機能を入れる。

Aがあったんですね、機能ありがとうございます。