MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 1612

 
Alexey Viktorov #:

2回目の挑戦でバカにされるどうやら時間が夕方になってしまったようだ。

うまくいかなかったのですが、楽器を通貨に分割する方法がわかりません。

また、中間の等質性の確率は、すぐにはわかりませんが、2位から3位までの楽器内の通貨名の等質性を全探索したほうがよいでしょう。または、1位と最終位を切り捨て、残りの4桁で検索する)

 
Valeriy Yastremskiy #:

A B C D は正しいが、楽器を通貨に分ける方法がわからない。

そして、中線の等価性の確率ですが、私は一見してわかりませんでしたが、2位から3位までの楽器の通貨名の等価性を全数検索したほうがよいでしょう。または、1位と最終位をカットして、残りの4文字で検索してください)。

いや、4条件だけ2回目でバカにされたんですよ。結局のところ、タスクのためには、目的のアイテムがどの位置にあるかは重要ではなく、0番目か3番目か、主なものが見つかるかどうかである。その結果、基準通貨と第2通貨の2つの条件が存在することになります。

 
Alexey Viktorov #:

いや、4条件だけ2回目でダブったんですよ。結局のところ、このタスクでは、検索項目がどの位置にあるか、0番目か3番目かは重要ではなく、見つかったかどうかが重要なのである。その結果、基準通貨と第2通貨の2つの条件が存在することになります。

そこで、楽器の2番か3番のポジションから真ん中の等倍を除外しました。除外されていなければ、正しい、2つの条件。

 
Valeriy Yastremskiy #:

まあ、それによって、楽器の2番か3番のポジションから、真ん中の等倍を除いていたんですけどね。除外しなければ、正解は2条件。

中点等倍」の意味がまだよくわからない。

EURUSDのシグナル

EURJPYの注文-EURを検索して見つけると、射出が真になる。2番目の条件は確認する必要がありません。

GBPJPY - EURを探し、それを見つけることはありません。USDを探し、それを見つけることはありません、スローはfalseです。合計2つの条件

 
Alexey Viktorov #:

ミドルイコール」が何なのか、いまだに理解できていない。

EURUSDのシグナル

EURJPYで注文 - EURを検索し、見つける、射出真。2番目の条件は確認する必要がありません。

GBPJPY - EURを探し、それを見つけることはありません。USDを探し、それを見つけることはありません、スローはfalseです。合計2つの条件

EURJPYはURJPと同値

BPJPのうちGBPJPY

そうですね、レアケースです。しかし、楽器の数が多いことから判断して、それは可能です。

 
Valeriy Yastremskiy #:

URJPのうち EURJPYの平等

BPJPのうちGBPJPY

そうですね、レアケースです。しかし、楽器の数が多いことから判断して、可能性はあります。

いや、むしろ波長を合わせたい。なぜか理解しがたいのですが......。

 

構造体ではコンストラクタはどのように動作するのですか?

struct as{
  int a,
      b,
      c;
    void as(){
    b=0;c=0;
    a=b+c;
    }  
 };
as sir;
 

こんにちは!頭を悩ませています。

難しくない人は、コメントで助けてください。


1.変数「bb」とそれに対応する演算子 if (bb == 0) bb = i; の目的は何でしょうか?


2. if ((Time[i]>=BeginDateCalc && Time[i]<=EndDateCalc && NumberOfBars<=0))

|| (NumberOfBars>0 && NumberOfBars>=i))である。

NumberOfBarsが<= 0になるのはなぜか、何のためか?


3. s += (高値 [i] - 低値 [i]) /ポイント

Pointによる分割は何のために行うのですか?


4.for (i = Bars; i > 0; i--)のループの条件によって、カウントは「最も古い」バーから「最も若い」バーへと進んでいく。

変数b++はインクリメントされるが、デクリメントされないのはなぜか?

//+----------------------------------------------------------------------------+
//|                                                          AverageRange.mq4  |
//|                                                    Ким Игорь В. aka KimIV  |
//|                                                       http://www.kimiv.ru  |
//|                                                                            |
//|  14.09.2005  Скрипт для расчёта:                                           |
//|              средней волатильности инструмента High-Low                    |
//|              Возможность использования заданного количества баров          |
//+----------------------------------------------------------------------------+
#property copyright "Ким Игорь В. aka KimIV"
#property link      "http://www.kimiv.ru"
#property  show_inputs

extern datetime BeginDateCalc = D'2013.01.01';
extern datetime EndDateCalc   = D'2013.12.31';
extern int      NumberOfBars  = 100;         


//+----------------------------------------------------------------------------+
//|  script program start function                                             |
//+----------------------------------------------------------------------------+
void start() {
   int    i;           //счётчик
   int    b  = 0;      //использовано баров
   int    bb = 0;      //?????????????????????
   int    s =  0;      //сумма всех значений High - Low
   string st = "";     //строка вывода на экран    

  for (i = Bars; i > 0; i--) {
    
    if ((Time [i] >= BeginDateCalc && Time [i] <= EndDateCalc && NumberOfBars <= 0)
    || (NumberOfBars > 0 && NumberOfBars >= i)) {
      
      if (bb == 0) bb = i;
      s += (High [i] - Low [i]) / Point;
      
      b++;
    }
  }

  st =      "Начало: " + TimeToStr (Time [bb], TIME_DATE | TIME_MINUTES) + "\n";        // "/n" - это перенос строки
  st = st + "Конец: " + TimeToStr (Time [bb - b + 1], TIME_DATE | TIME_MINUTES) + "\n";
  st = st + "Использовано баров: " + b + "\n";
  st = st + "Средняя волатильность: " + s / b + " п.\n";
  
  Comment (st);
}
//+----------------------------------------------------------------------------+
 

bb には、最初にトリガーされた条件のバーインデックスが含まれます。このインデックスを元に計算開始時刻を算出する。

NumberOfBars - この変数はユーザーによって設定され、こいつは信頼性が低く、マイナスの値を設定する可能性があります。おそらく、NumberOfBarsが非ポジであれば、開始日と終了日の間で計算し、ポジティブであれば、この変数で設定したローソク足の本数で計算するというロジックだと思います。

Pointは分数部の 値をポイントに変換するため、(1.01051-1.01000)/Point=51に分割しています。

ゼロ以降の変数bbは、スクリプトの全動作中、一度だけ変更される。

 
Aleksei Stepanenko #:

bb には、最初にトリガーされた条件のバーインデックスが含まれます。このインデックスを元に計算開始時刻を算出する。

NumberOfBars - この変数はユーザーによって設定され、こいつは信頼性が低く、マイナスの値を設定する可能性があります。おそらく、NumberOfBarsが非ポジティブの場合、開始日と終了日の間で計算を行うというロジックだと思います。

ただし、端数部分の 値をポイントに移すためにポイントを分割している 0.00051/Point=51

ゼロ以降の変数bbは、スクリプトの全動作中一度だけ変更される。

正直なところ、キムさんのロジックがよくわからないのですが、なぜ、バータイムが指定したものを超えるという条件と、計算されたバーの数がマイナス値でORでバーの数より大きいという条件なのでしょうか Barz)))また、同時にカスタムパラメータを修正するだけです)

しかも、ユーザーがしくじったというアラートも表示されない)