Опорные точки Pivot без использования объектов строятся по всей доступной истории. Пять вариантов расчета. Три варианта построения: дневной, недельный, месячный. Для дневных уровней есть возможность смещения по GMT.
Статья о традиционных и не совсем традиционных алгоритмах усреднения, упакованных в максимально простые и достаточно однотипные классы. Они задумывались для универсального использования в практических разработках индикаторов. Надеюсь, что предложенные классы в определенных ситуациях могут оказаться достаточно актуальной альтернативой громоздким, в некотором смысле, вызовам пользовательских и технических индикаторов.
C появлением новой версии языка MQL, не только изменился подход к работе с индикаторами, но и появились новые способы создания индикаторов. Кроме того, появилась дополнительная гибкость при работе с индикаторными буферами - теперь вы можете самостоятельно указать нужное направление индексации и получать ровно столько значений индикатора, сколько вам требуется. В этой статье рассмотрены базовые методы вызова индикаторов и получения данных из индикаторных буферов.
Статья о традиционных и не совсем традиционных алгоритмах усреднения, упакованных в максимально простые и достаточно однотипные классы. Они задумывались для универсального использования в практических разработках индикаторов. Надеюсь, что предложенные классы в определенных ситуациях могут оказаться достаточно актуальной альтернативой громоздким, в некотором смысле, вызовам пользовательских и технических индикаторов.
私はMCL4からMCL5への単純な価格構造の転送のアルゴリズムを書いている、MCL5のストキャスティックMASDとRSIにコピーするMCL4コードの例では、MCL4データへのアクセスの基本的なメソッドがあります。
もうすぐ、必要なものが揃う。
今、私はiMaOnArRAu関数と格闘しています。mt5はユーザー配列から移動平均の 最も簡単な方法を 得るためにそれを提供しないので。
あらゆる技術的なツールのライブラリーを拡張する予定です。
私ってバカだなぁ...。書き方がわからない...。
こんなコードがあります。
i番目からj番目までのバーのうち、Lowが最も低いバーのインデックスを取得したいのです。
ArrayMinimum関数を 使おうとしているのですが。
int k=ArrayMinimum(rates.low,i,j-i+1); - 誤り
int k=ArrayMinimum(rates[].low,i,j-i+1); - 誤り
正しい方法とは?
私ってバカだなぁ...。書き方がわからない...。
こんなコードがあります。
i番目からj番目までのバーのうち、Lowが最も低いバーのインデックスを取得したいのです。
ArrayMinimum関数を使おうとしているのですが。
int k=ArrayMinimum(rates.low,i,j-i+1); - 誤り
int k=ArrayMinimum(rates[].low,i,j-i+1); - 誤り
正しい方法とは?
直接アクセスの関数を使用して、MqlRatesは、 "構造体 "の配列であり、あなたは、配列Lowが必要です、ここでは、同様に高いための例である。
コードの例を見てみましょう。これは、https://www.mql5.com/ru/code/102。
ダイレクトアクセス関数を使用して、MqlRatesは、 "構造体 "の配列であり、あなたがLowの配列が必要です、ここでは、すぐにとHighのための例である。
それは理解できる。私の場合、今、書きました。
アレイの束はいらない。資源を倹約しているわけでもなく、あまりいいものでもない...。
ArrayMinimumについて 正確に理解したかったのですが、この関数を構造体の配列で使用することは可能でしょうか...。
それは理解できる。私の場合、ただ書いただけです。
アレイの束はいらない...。省資源ではないし、あまりいいとは言えないが...。
ArrayMinimumを扱いたかっただけなのですが、この関数を構造体の配列で使用することは可能でしょうか...。
構造体の配列に大量の情報を格納する方が、倍数の配列より経済的だとお考えなら、私はただ手を挙げているだけです。
それともint、long、dateを格納する方がメモリ的に経済的なのでしょうか)
とか、ゴミの山から必要なものを拾い集める方が経済的だとか、あははは.
構造体の配列に大量の情報を格納する方が、倍数の配列より経済的だと思うなら、私はあきらめるしかないでしょう
それとも、int型、low型、date型を保存する方がメモリ的に経済的なのでしょうか?)
とか、ゴミの山から必要なものを拾い集める方が経済的だとか、あははは.
普段、何かを質問する前に、いろいろな資料を調べて答えを探します。
しかし、1週間ほど検索した今、答えがないことに気づき、まだ誰も出会っていないようです。そこで、私はパズルを提案します。
初期データです。
1) Levels and Arrows iS7N_SacuL_v3.mq5 のようなシンプルなインジケータを持っています(添付)。
2) このインジケータ aS7N_TIC.mq5 からデータを受信しようとする Expert Advisor(添付)。
だから!
5つのインジケーターバッファの うち、正しくデータが返されるのは2つだけです。
詳しい解説は後ほど!!!
よくよく調べてみると、3インジケーターバッファも4インジケーターバッファも、必ずしも正しいデータが得られるとは限らないことがわかりました(どれが正しくてどれが正しくないかは分かりませんが)。
チャートを見てください。左側のデータウィンドウには、チャート上のインジケータの値、その下にはExpert Advisorで取得した値が表示されています。ほとんどの価値観は同じですが、より...
この点については、チャートとテスターで異なるヒストリカルデータを使用することを提案させていただきました。
いかがでしょうか?
いよいよ本題!1,2,5のインジケーターバッファのデータを通常の方法で取得することはできません。
問題は、これらの配列のデータを計算する際に、前に計算したバーのデータが考慮されることである。
もちろん、インジケータを呼び出す 際に、prev_calculatedの 値に関係なく、今後N本の バーを強制的に再計算させることができます。
prev_calculatedの 値が0 でない状態で、インジケータ値の呼び出しと計算が行われているのでしょう
ほとんどの指標では、リソースを節約できるため、これは正しいのですが、与えられた例ではうまくいかないでしょう。
どうすればいいのか?あなたの感想は?
また、すべての計算をExpert Advisorに移行することも可能ですこのオプションは機能しますが、同じではありません...。ズボンを頭からかぶらないようにしたいです。
をExpert Advisorで使用します。
の値が取得されると、ローソク足が閉じるまで1ティックごとにその値のインジケーターバッファの 値が変更されます。