[ARCHIVE] フォーラムを散らかさないように、どんなルーキーでも質問してください。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 3. - ページ 183

 

こんにちは。

2つのマッシュの間の距離をポイントで計算することが可能かどうか教えてください。

私のバリエーションは以下の通りですが、本来の目的通りにはいきません。

よろしくお願いします。

  int g;
  double maHX_fast=iMA(NULL,fast_maHX_timeframe,fast_maHX_period,0,fast_maHX_method,fast_maHX_price,0);
  double maHX_slow=iMA(NULL,slow_maHX_timeframe,slow_maHX_period,0,slow_maHX_method,slow_maHX_price,0);
  g = maHX_slow - maHX_fast;
  Alert (g);
 
nemo811:

私のバリエーションは以下の通りですが、本来の目的通りにはいきません。

間違いを発見。以下は動作確認済みバージョンです。

  double g;
  double maHX_fast=iMA(NULL,fast_maHX_timeframe,fast_maHX_period,0,fast_maHX_method,fast_maHX_price,0);
  double maHX_slow=iMA(NULL,slow_maHX_timeframe,slow_maHX_period,0,slow_maHX_method,slow_maHX_price,0);
  g = (maHX_slow - maHX_fast)/Point;
  Alert (g);
 

午後...

同じ通貨ペアの注文の終値の 値を、あるターミナルから別のターミナルに移すには?

 
TANKER:

こんにちは...。

同じ通貨ペアの注文の終値の値を、あるターミナルから別のターミナルに移すには?


そのような質問をされるのであれば、自分ではできないと思います。
 

みなさん、こんばんは。

配列について次のような疑問が湧いてくる。

例えば、ある変動についてn本のバーを分析し、それを選択して配列に入れ、これを扱う必要があるとします...。

以下は、いくつかのコードです。コメントですべて説明できると思います。

ロジックは以下の通りです。

1.必要なバー数を設定しました。

2.ループで全体を通す。

指定された条件(close_1>close_2&close_2<close_3)が満たされているかどうかを調べる。

4.条件を満たした場合、終値close_1とclose_2の差diffを計算する。

そして、質問自体も。

1.diffの値を正しく配列にして書き込む方法を教えてください(もちろん、配列の次元は取得する値の数によって決まります)。

2.配列の要素数を計算し表示する ?

3.例えば3、6、7個の要素を選び、その和を計算する ?

4.そして最後に、例えば、個々の要素ではなく、配列全体を直接出力するPrint/Alertに ?

#property copyright "Copyright © 2011, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
  {
   //определяем переменные
   int i, bars;
   double close_1, close_2, close_3;//цена закрытия
   double diff;//вычисление разности close_1 и close_2
   double Mas[];//массив куда надо заносить данные
   
   
   //устанавливаем значения переменных
   bars=60;//количество баров для анализа
   
   for(i=1;i<=bars;i++)
   {
      close_1=iClose(NULL,PERIOD_M1,i);
      close_2=iClose(NULL,PERIOD_M1,i+1);
      close_3=iClose(NULL,PERIOD_M1,i+2);
      
      //условие для отбора в массив
      if(close_1>close_2&&close_2<close_3)//если выполняется это условие, тогда
      {
         diff=close_1-close_2; //считаем разность и записываем это дело в массив 
         
         /*
         Собственно вопросы:
         1. Как правильно сформировать массив и записать туда полученные значения diff ???
         2. Посчитать и вывести количество элементов в массиве ???
         3. Выбрать например 3, 6, 7 элемент и посчитать их сумму ???
         4. И последнее, непосредственно вывести например в Print/Alert весь полученный массив, а не только отдельно взятый элемент ???
         */
         
         //Это просто вывод, чтобы удостовериться что наше условие работает, можно потереть... 
         Alert("i ",i," diff: ",DoubleToStr(diff,5));
         
      }
   }


   return(0);
  }
//+------------------------------------------------------------------+
そして、どのような状態で処理するのか、わかりやすくするために写真を掲載します。: ))

皆さん、よろしくお願いします。

 
NickXXX:

みなさん、こんばんは。

配列について、次のような疑問が出てきました。

例えば、ある振動についてn本のバーを分析し、それを選択して配列に格納し、これを用いて作業を行いたいとします...

インジケータという言葉の後に笑う。

インジケータを作成するのは簡単で、すでに8つのバッファ配列を持っており、そこにすべてのロジックを配置し、iCustomを通して必要な要素をアドレス指定します。

print/alertでは配列全体がやや読みにくいですが、列挙とループ内での長い文字列の作成により、十分可能です。

3.例えば3、6、7個の要素を選び、その和を計算する ?

冗談抜きでドキュメントを読むか、どちらかです。

double Summa=Mas[3]+Mas[6]+Mas[7];

推薦図書https://book.mql4.com/ru/variables/arrays

https://docs.mql4.com/ru/array

 
splxgf:

インジケータという言葉の後に笑う。

インジケータを作成する方が簡単で、すでに8つのバッファアレイを持ち、すべてのロジックをそこに転送し、iCustomを介して必要な要素のアドレスを指定します。

print/alertでは配列全体がちょっと読めませんが、列挙してループ内で長い文字列を作れば、十分可能です。

こんな風にいじくりまわさないか、ドキュメントを読むか、どちらかです。

double Summa=Mas[3]+Mas[6]+Mas[7];

推薦図書https://book.mql4.com/ru/variables/arrays

https://docs.mql4.com/ru/array

はい、サマソニについては聞かなくていいです)。そして、ここでは指標は関係ないのです。むしろ、配列を正しく理解するための例です。

推奨記事はすでに見ていますが、この質問の処理には役に立ちませんでした。

だから、私の質問はまだ続くのですが...。この例では、どのように配列を構築するのですか?わかりやすいようにコードを教えていただけるとありがたいです。その方が話がわかりやすいからです。

 

スモーク・インディケーターに比べ、すべての計算がバーにリンクされ、バーの番号は0から始まり、新しいバーごとに配列がシフトされます。インジケータを使うことで、配列を扱うロジックをシステムに移し、さらに視覚的な機能を追加し、EAから簡単に使用することができます。

インジケータを作らないと、配列の 計算要素とチャート上のバーをリンクさせることが非常に困難です。

 
splxgf:

スモーク・インディケーターに比べ、すべての計算がバーにリンクされ、バーの番号は0から始まり、新しいバーごとに配列がシフトされます。インジケータを使用することで、配列を扱うロジックをシステムに移し、さらに視覚的な機能を追加し、EAから簡単に使用することができるようになります。

インジケータを作成してください。そうしないと、配列の計算要素をチャート上のバーにバインドすることが非常に困難になります。

なるほど、インジケータですべてを読み込んでExpert Advisorに値を送るのがいいんですね。

しかし、ここでの問題は少し違っていて、配列にデータを入れることができず、ゼロが表示されるのです。それを理解したい。

もう一度、この例で説明します。私が持っているバーへのバインディングは、ただ順次iに行き、正しい条件close_1>close_2&close_2<close_3(ほんの例 です)を働かせます。

そして今、最も興味深いのは、diff=close_1-close_2 を計算していることです。 このdiffの値を配列に格納するには?

追加の変数int nを作って、if条件で1ずつ(n++)増やしていけば、条件が何回働いたかだけを取得して、この数値を次元とすることができると思います。

それにしても、差分値を配列に入れるって、どうなんでしょう?

 
NickXXX:

なるほど、インジケータですべて読み込んでExpert Advisorに値を送るのがいいんですね。

しかし、質問は少し違っていて、私は配列にデータを満たすことができず、私にはゼロが出力されるのです。それを理解したい。

もう一度、この例で説明します。私が持っているバーへのバインディングは、ただ順次iに行き、正しい条件close_1>close_2&close_2<close_3(ほんの例 です)を働かせます。

そして今、最も興味深いのは、diff=close_1-close_2 を計算していることです。 このdiffの値を配列に格納するには?

追加の変数int nを作って、if条件で1ずつ(n++)増やしていけば、条件が何回働いたかだけを取得して、この数値を次元とすることができると思います。

それにしても、差分値を配列に入れるにはどうしたらいいのでしょうか?

今、私はキャパオーバーかもしれませんが、この例で私がスクリプトを使っていることに困惑しているようですね。インジケーターについて書かれているのは、そういう意味だったのですか?もしそうなら、私はすべての動的な計算をインジケータ またはExpert Advisorで直接行う。一度起動して見てから、コードを修正したところです)))

前の質問もそのままです。配列の主語は解決していない)。