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

 
79014393347az:
こんにちは!RSIアラート、プッシュ 通知に書き込む方法を教えてください 自分でやってみましたが、うまくいかず、エラーが出ました。
何をしたのか、どんなエラーが出たのか知りたい。
コード
 

PlaySound()が trueを返した場合、オーディオを再生しない理由は何でしょうか?


v1 = (Up[i] != EMPTY_VALUE ? Up[i] : Down[i]);
v2 = (Down[i+1] != EMPTY_VALUE ? Down[i+1] : Up[i+1]);
         
if((v2 >= level || v2 <= level * (-1)) && a2 < Time[i])
  {
   a2 = Time[i];
   if(arrows == e1 && v2 >= level) {ArrowCreate(false,Time[i+1],High[i+1]);} else if(arrows == e1) {ArrowCreate(true,Time[i+1],Low[i+1]);};
   if(prev_calculated != 0)
     {
      if(sounds == e1 && v2 >= level) {al = PlaySound("SELL NOW"); Alert(al);} else if(sounds == e1) {al = PlaySound("BUY NOW"); Alert(al);};
      if(alerts == e1 && v2 >= level) {Alert(_Symbol+TF(Period())+" SELL NOW");} else if(alerts == e1) {Alert(_Symbol+TF(Period())+" BUY NOW");};
      if(push == e1 && v2 >= level) {SendNotification(_Symbol+TF(Period())+" SELL NOW");} else if(push == e1) {SendNotification(_Symbol+TF(Period())+" BUY NOW");};
     };
  };
 
Alexandr Sokolov:

PlaySound()が trueを返した場合、オーディオが再生されない理由は何でしょうか?


  1. オーディオファイルの名前は正しいですか?
  2. PlaySound()の後、すぐにAlert()がありますが、どちらの関数も音声を再生します。Alert()の削除
 
Artyom Trishkin:
  1. サウンドファイルの名前は正しいですか?
  2. PlaySound()の後、すぐにAlert()がありますが、どちらも音を再生する関数です。Alert()の削除

名前に間違いはありません。その理由は、アラートであることが判明した。ありがとうございました。その理由が何なのかがわかってから、数日が経ちました。

 
コンパイラのプログラム設定で、ユーザー関数の色をデフォルトの黒から別の色に変更することは可能でしょうか。ユーザー関数を強調表示させるということです。
 
コンパイラにデフォルトで付属しているArrayMaximum()関数は どのように動作するのでしょうか?この関数は配列の最大値を求めますが、配列にカオス的な順序で値が書かれている場合、最大値や最小値を求めるには、まずこれらの値をソートして、ソートされた配列のリストの最後か最初にある最大値を選択すればよいと思うのですが、この関数は、カオス的に書かれている場合はどのように最大値を求めるのですか。
 
Seric29:
コンパイラにデフォルトで組み込まれているArrayMaximum()関数は どのように動作するのでしょうか?この関数は配列の中の最大値を求めますが、配列にカオス的な順序で値が書かれている場合、最大値や最小値を求めるには、まずこれらの値をソートして、初めてソートした配列のリストの最後か最初にある最大値を選択する必要があると思うのですが、この関数はカオス的に書かれている場合はどうやって最大値を見つけるのでしょうか。

仕分けする必要はありません。ArrayMaximum()関数は、ソートされていない配列の中から最大値を 求め、その値のインデックスを 返す。

 
Alexey Viktorov:

仕分けする必要はありません。ArrayMaximum()関数は、ソートされていない配列から最大値を 見つけ、その値のインデックスを 返します

しかし、それでも1つまたは別の値と比較するために、何らかの連鎖で並べる必要があります。5つの値があり、それらが無秩序な順序で書かれている場合、最大 または最小を見つけるには、それらをすべて比較するしかありません。いずれにしても、値を保存するバッファが必要です。

 
Seric29:

しかし、ある値と別の値を比較するためには、やはり連鎖的に並べる必要があります。5つの値があり、それらが混沌とした順序で書かれている場合、最大 または最小を見つけるには、それらをすべて比較するしかありません。いずれにしても、値を保存するバッファが必要です。

なぜ、内部で仕組みを解明しようとするのか?まあ、自分で関数を書くなら、ソートして一番外側のインデックスの値を取る方が便利でしょうけど。しかし、内蔵機能より速く動作することはほとんどないでしょう。さらに、内蔵の機能により、指定したインデックスの範囲内で値を検索することができます。そのため、単純なソートではうまくいきません。そこで、配列の一部を中間配列にコピーして、もうソートしてそこから必要な値を取り出すことになるのですが、配列コピーはあまり「安上がり」な機能ではありません。

 
こんにちは。ヒントをお願いします。その条件のコードはどうなるのでしょう。口座残高が 増減した場合、関数を実行する