// iHigh и iLow дают макс и мин цены указанного бара. Если PERIOD_D1, то целых суток если 1 то вчерашних последних завершенных сутокAlert("Максимум вчерашнего дня = ", iHigh(_Symbol, PERIOD_D1, 1));
Alert("Минимум вчерашнего дня = ", iLow(_Symbol, PERIOD_D1, 1));
MAクロスはバーとバーの間で発生する - わかりやすい例を捕らえよう
交差点の左右のバーのMAが、交差点での価格と異なっている。質問者は、隣のバーの値ではなく、正確な交差点の値が欲しいのだと理解しています。この正確な値は、直線補間で求めることができる。結局のところ、バー間のMAは直線セグメントで構成されているのだ。または、隣接するバー上の各MAの座標を取る。2本の直線を解析的に構成し、その交点を計算する。2つの相似な三角形を考えて計算することが可能です。なぜ、それが必要なのかという疑問が湧いてきます。そのコストは、結果の価値に見合っているか?結局、MAパラメータを最小に変更すれば、交点は移動するのです。ほとんどの場合、コースプロジェクトの責任者から要求されます
計算の間違いが見つからない。
前日の高値と 安値を求めたいのですが、なぜか安値は前日になっています
CopyHigh とCopyLow を期間PERIOD_D1 と対応するバーまたは時刻で使用するのがよいでしょう。
どの時間枠のバーも、対応する下位時間枠のバーの間隔を一般化した情報を含んでいます:最大、最小、開始と 終了時間、下位バーの出来高の合計に相当する出来高です。より正確には、この情報は、対応する配列
そうしたいのですが、昨日の他の値を検索する必要があったり、関数を再度書き直すのが面倒なので、さらなるアルゴリズムでデータを計算できないかもしれません。
私のコードのどこに間違いがあるのか、理解できません。バーの数を 表示しようとすると、すべて一緒に収まりますが、最大または最小を取得しようとすると、本来表示されるはずのものが表示されません。
そうしたいのですが、昨日の他の値を探さなければならないかもしれないし、また関数を書き換えるのが面倒なので、計算できないかもしれません。
私のコードのどこに間違いがあるのか、理解できません。 画面にバーの 数を表示すると、すべてが収束しますが、最大または最小を取得しようとすると、本来表示されるはずのものが表示されません。
あまりにごちゃごちゃしすぎて、意味がわからなくなってしまった。片っ端から変換の山...。
そして、すべてはその日の最大値と最小値を見つけるため?
では、何がうまくいっていないのでしょうか?
その日の最高値を調べる必要がありますか?お願いします。
昨日の最大値を調べる必要がありますか?簡単です。
一昨日の安値を知りたい?問題ありません。
まあ、簡単な方法として、純粋な4重関数を使うという手もある。
しかし、私はお勧めしません - 新しい言語構造を使用して、あなたはいつか4倍がサポートされていないことに自分自身とあなたのコードを準備し、自己規律とすべてのこと;)。
整理するのさえ難しいほど、ごちゃごちゃにしてしまったんですね。あるものから別のものへの変換が山ほど...。
すべては、その日の高値と安値を見つけるために?
では、何がうまくいっていないのでしょうか?
その日の最高値を調べる必要がありますか?お願いします。
昨日の最大値を調べる必要がありますか?簡単です。
一昨日の安値を知りたい?問題ありません。
まあ、簡単な方法として、純粋な4重関数を使うという手もある。
しかし、私は勧めません。新しい言語構造を使うと、いつか四元数がサポートされなくなることを自分自身と自分のコードに覚悟させることになりますし、自己鍛錬やその他もろもろが必要です ;)。
自分でもミスを発見しました(不注意でパラメータiHighest, iLowestを読み間違えていました)。
そのため、昨日とは別の計算が必要になるため、適していません。
自分でもエラーを発見しました(不注意でiHighest,iLowestのパラメータを読み間違えていました)。
昨日とは別の計算が必要になるため、適切ではありません。
if(Red )OrderSend( ... Buy ... ) ; if( Blue ) OrderSend( ... Sell ... ) ... ...;
ただ、その逆で、上で売り、下で買う...。
OnInit関数(initを求める古いもの)は、インジケータの開始時(タイムフレームの変更、再コンパイル、...)に実行されます。使用されるすべての変数には値が割り当てられている必要があります。OnInit 関数 内に SetIndexDrawBegin(0,i-1) 行が存在する。i 変数に値を代 入するか、定数を使用する必要がある。
if(Red ) OrderSend( ... Buy ... ) ; if( Blue ) OrderSend( ... Sell ... ) ... ... ...。
ただ、その逆で、上で売り、下で買う...。
OnInit関数(initを求める古いもの)は、インジケータの開始時(タイムフレームの変更、再コンパイル、...)に実行されます。使用されるすべての変数には値が割り当てられている必要があります。OnInit関数では、SetIndexDrawBegin(0,i-1)の行があります。変数iには値を代入 するか、定数を使用しなければなりません。
正直なところ、私は何も理解していません。Mql4プログラミングの初心者なのですが、もしよろしければ、コードを手伝っていただけませんか?
コードは通常、フリーランスに役立ちます。
ここで - アルゴリズムのいずれか、またはあなたの間違いを修正する。でも、あなたのためにもう一度書き直すわけではありません。