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

 
gyfto:

私の見解では、Close[]はBars-1から0までのループで渡して、この配列をdllで集めて、そこで操作すればいいと思います。まだ試していませんが、これからです。

配列そのものを渡す必要はありません。そのポインタとサイズを渡せば十分です。

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

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

 

みんな、「現在の価格>バーの開始価格 ならアクションを実行する」という簡単な条件を教えてください。バーとの連携はまだしていません。そして、私の脳は4:49に到達することができません

 
oDin48:

もし、現在の価格>オープンバーの価格であれば、アクションを実行する」という簡単な条件を教えてください。バーとの連携はまだしていません。そして、私の脳は4:49に到達することができません



if(Close[0]>Open[0])
    {
  //Ваше действие
    }
 
皆さん、こんにちは!次の式を短くするにはどうしたらよいでしょうか?
 

ごあいさつ

どこで聞くのが良いのか分かりませんが、結局新しいトピックは作らないことにしました。CodeBaseでExpert Advisorを一つ探してみましたが、十分な数があるようですが、私はmqlの専門家ではないので、必要な関数を割り当てることができないことに気づきました。すでに開いている注文(と新しく開いた注文)を追跡し、それらのいずれかが閉じると(まずストップで)、閉じたもののパラメータ(価格、テイク、ストップ)で新しい保留中の注文が 作成される簡単なEAがある場合、あなたは私にアドバイスを与えることができますか?

そしてもう一つ質問です。i-SignalOfTradeというインジケータがあります。モバイル端末では イベントを音で通知することができないため、この指標は非常に有効である。しかし、自分自身で取引する場合には無効化できない特別な機能があります - 保留注文の作成と変更などのイベントを通知することです。つまり、すでに知っているアクションの通知です。保留注文のトリガー、テイク、ストップのトリガーの通知だけ残して、それらを無効化(もしくは他に似たようなインジケーターがあるかもしれません)していただけるとありがたいのですが。

 
i999i:
皆さん、こんにちは! ......次の式を短くするにはどうしたらいいでしょうか?

if((b-a)*(c-a)*(d-a)>0) と書くこともできますが、必ずしも速くなるとは限りません。論理ANDは2進数の掛け算で、同じ式を別の表記にしただけで、違うのは変数の型の大きさだけです。a>bはブール変数で4バイト、b-aは2倍なら差は2倍(8バイト)になり、この掛け算は少なくとも2倍以上の長さになります。

ずん子

配列そのものを渡す必要はありません。そのポインタと大きさを渡せば十分です。


貴重なアドバイスです。

ジフト

a>b はブーリアン変数,4 バイト

説明しよう。括弧内の式は0か1を取るので、if(((a>b)*(a>c)*(a>d)==1)と書き換えることができます(そして、これらはプリコンパイラの定義で偽と真として定義されています)。
 
gyfto:

if((b-a)*(c-a)*(d-a)>0) と書くことができますが、必ずしも速くなるとは限りません。論理ANDは2進数の掛け算で、同じ式を別の表記にしただけで、違うのは変数の型の大きさだけです。a>bはブール変数で4バイト、b-aは2倍なら差は2倍(8バイト)になり、この掛け算は少なくとも2倍以上の長さになります。


貴重なアドバイスです。


ジフト

if((b-a)*(c-a)*(d-a)>0) と書くこともできますが、その方が高速に動作するかどうかはわかりません。論理ANDは2進数の掛け算で、同じ式を別の表記にしただけで、違うのは変数の型の大きさだけです。a>bはブール変数で4バイト、b-aは2倍なら差は2倍(8バイト)になり、この掛け算は少なくとも2倍以上の長さになります。


貴重なアドバイスです。

a,b,cから最小値と最大値を計算する他の方法はありますか?
 
i999i:

ヒントありがとうございます......a,b,cから最小値と最大値を計算する他の方法はありませんか?


MathMax(MathMax(a,b),c) またはその逆 MathMin.MathMax(MathMax(a,b),c)。4つの値がある場合、int max = MathMax(MathMax(x1, x2), MathMax(x3, x4)) となります。値が車一台分の場合は、ArrayMaximum により配列も形成する。
 
gyfto:

MathMax(MathMax(a,b),c) またはその逆 MathMin.MathMax(MathMax(a,b),c)。4つの値がある場合、int max = MathMax(MathMax(x1, x2), MathMax(x3, x4)) となります。ArrayMaximumでも配列を形成する必要がある場合、

ArrayMaximumを 使用する必要があります。何十もの値があります...ArrayMaximumはこれよりも高速です - a>b && a>c && a>d
 
i999i:

アドバイスありがとうございます......a,b,cから最小値と最大値を計算する他の方法はないのでしょうか?


まず、なぜそれが必要なのかを教えてください。その理由を知る必要があります。単なる遊び心や興味本位なのか、それとも何か目的があるのか。