bool exit_for=false;int max_1=0;int max_2=0;for(int k=0; k<Bars; k++){if(iRSI(Symbol(),0, rsi_period,PRICE_CLOSE, k)<iRSI(Symbol(),0, rsi_period,PRICE_CLOSE, k+1)&&iRSI(Symbol(),0, rsi_period,PRICE_CLOSE, k+1)>iRSI(Symbol(),0, rsi_period,PRICE_CLOSE, k+2)){//Если это первый максимум:if( max_1==0)
max_1= k+1;//Записываем номер бара экстремумаelse//Если первый найден, записываем второй{
max_2= k+1;
exit_for=true;}}//Выход из цикла, когда найдены оба максимумаif( exit_for==true) k=Bars+1;}
私の追加の質問の答えをご存知ですか?
下の条件は問題ないのですが、更新機能は使っていないので、わかりません。
P.S. 私も初心者です。
が、if()演算子の1行に複数の(&&)を通して条件を列挙するこの順序が受け入れられるかどうか、ご存知の方はいらっしゃいますか?
ただし、言語によって操作の優先順位が異なるので、些細なことを考えないように、もっと括弧をつけるといいですね。
インジケータのx個の最近接値の中から高値を探し、比較するのです。
RSIの過去2回の極大値を検索する機能はどのようなものですか?
どなたかコードを教えてください。
...(RefreshRates()によるリフレッシュは必要なのか?)...
RefreshRatesの目的は何ですか?ポイントは、新しいティックが来た後、組み込み変数(Ask、Bidなど)が読み込まれ、start()関数に渡されることです。起動に時間がかかると、新しいティックが来ることがありますが、変数は更新されません。それは、RefreshRatesを呼び出すときです。
起動に時間がかかるときは?通常、取引操作の進行中、つまりネットワーク上のやり取りがあり、その操作に対するサーバーの許可が必要であり、応答が期待される場合です。そのため、通常は1ティックに複数の注文がオープン/クローズされる場合にRefreshRatesを使用します。操作の合間に使用します。
RSIの過去2回の高値の検索機能はどのようなものでしょうか?
どなたかコードを教えてください。
不思議なことに、この作業は簡単ではありません。技術的には、そのような点をさかのぼって探さなければならない。
y(x-1)<y(x) かつ y(x)>y(x+1) です。
しかし、これでは局所的な極値を見つけることになり、ちょっとしたことですが、満足のいく結果にはならないでしょう。
不思議なことに、この仕事は簡単ではありません。技術的には、そのような点をさかのぼって探さなければならない。
y(x-1)<y(x) かつ y(x)>y(x+1) です。
しかし、それでは局所的な極値を見つけてしまい、ちょっとずれた結果になってしまいます。
1番目の最大値と2番目の最大値はどのように区別されるのでしょうか。
というのは、この条件は、第一極大と第二極大、第三極大の両方に当てはまるからです...。
同じように考えているのですが、第1最大と第2最大をどう区別するのか、という考えもあって混乱しています。
というのは、この条件では、第1極大と第2極大、第3極大の両方が当てはまるからです......。
ZigZagについて検索して読んでみることをお勧めします(文献はたくさんあります)。ロシュフのジグザグ-「ジグザグR」をお勧めします。
ジグザグについて検索して読むことをお勧めできます(文献はたくさんあります)。ロシュフのジグザグ-「ジグザグR」をお勧めします。
>>ありがとうございます。
見てみたけど...(((((( ;゚Д゚))))))))) 何もうまくいかなかった...。配列が埋まってから、shifft関数が具体的に何をするのか不明です。
ありがとう、見てみるよ。
見てみると......(((((((( ;゚Д゚))))))) 何も分からない......。配列が満たされた後、shifft関数が何をするのか正確には不明です。
そこがミソで、問題はかなり複雑なのですが、このジグザグがエラーなく機能するのです。RSIに使用することができます。
RSIの過去2回の高値の検索機能はどのようなものでしょうか?
どなたかコードで見せていただけませんか?
こんな感じです。