MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 903 1...896897898899900901902903904905906907908909910...1953 新しいコメント Alexandr Sokolov 2019.06.30 11:48 #9021 Alexandr Sokolov: MQL5で実行されないコードがインジケーターにあるのですが ポイントは、price == STO_LOWHIGHの 場合はすべて正しく動作しますが、price == STO_CLOSECLOSEの場合はスタティック変数にのみ 代入される点です。 ...ループ回避 が、これと全く同じ関数がMQL4で正しく動作します。 Alexey Viktorov 2019.06.30 12:13 #9022 Alexandr Sokolov: が、MQL4では同じ関数が正しく動作します。 次に、どのような配列High[] Close[]を指定する必要があります。 mql4のものであればmql5では使用できませんし、カスタムであれば...。何も提案できない。 Alexey Viktorov 2019.06.30 12:18 #9023 Alexandr Sokolov:Low/HighとClose/CloseでK期間内の通常のmaxHighとminLowストキャスティクスを取得したい 初期化時のLow/Highはうまくいきますが、Close/Closeはうまくいきません。 CopyBuffer()で得た 配列からfmax()やfmin()を求める方が簡単です。 Alexandr Sokolov 2019.06.30 12:20 #9024 Alexey Viktorov: 次に、High[] Close[]という配列が何であるかを明確にする必要があります。 mql4のものであればmql5では使用できませんし、カスタムであれば...。思い込みはダメですね。 以下は、MQL5におけるこれらのバッファの内容です。 int count = rates_total - prev_calculated, copied = 0; if(count < (int)kperiod + (int)dperiod + (int)slowing) {count = (int)kperiod + (int)dperiod + (int)slowing;}; if(mode == m1 && price == STO_LOWHIGH) {copied = CopyOpen(_Symbol,PERIOD_CURRENT,0,count,Open); if(copied != count) return(0);}; if(price == STO_LOWHIGH) {copied = CopyHigh(_Symbol,PERIOD_CURRENT,0,count,High); if(copied != count) return(0);}; if(price == STO_LOWHIGH) {copied = CopyLow(_Symbol,PERIOD_CURRENT,0,count,Low); if(copied != count) return(0);}; copied = CopyClose(_Symbol,PERIOD_CURRENT,0,count,Close); if(copied != count) return(0); Alexandr Sokolov 2019.06.30 12:22 #9025 Alexey Viktorov: CopyBuffer()で得た配列からfmax()やfmin()を求める方が簡単です。 バッファ全体ではなく、ある期間内の値が必要です K その他、減速時間を考慮してデータをコピーする必要があることを考慮した上で、どのように実装すればよいでしょうか。 Alexey Viktorov 2019.06.30 14:45 #9026 Alexandr Sokolov:バッファ全体の値ではなく、期間K内の値が必要です その他、減速期間を考慮してデータをコピーする必要があるのですが、どのように実装すればよいのでしょうか? 昨日も同じことをしましたが、ハイアレイとローアレイだけでした。 for(i = limit; i < rates_total; i++) { UpperBuf[i] = high[ArrayMaximum(high, i-period, period)]; LowerBuf[i] = low[ArrayMinimum(low, i-period, period)]; MidBuf[i] = (UpperBuf[i]+LowerBuf[i])/2; } 時系列フリップなし。では、mql5で規定されているように? 左側のバーがゼロ。 また、インジケーターのバッファーを丸ごとコピーするのではなく、指定したバーから指定した量だけコピーすることが可能です。そして、間違えてfmax()とfmin()を推奨してしまったのです。ArrayMaximum()のことです。 Taras Slobodyanik 2019.06.30 16:15 #9027 Alexandr Sokolov: Low/HighとClose/CloseでK期間内の通常のmaxHighとminLowのストキャスティクスを取得したい。 初期化中のLow/Highは正常に動作するが、Close/Closeは正常に動作しない 時系列に対する標準的な関数がある Maximum=iHigh(_Symbol,_Period,iHighest(_Symbol,_Period,MODE_HIGH,num,startbar)); Minimum=iLow(_Symbol,_Period,iLowest(_Symbol,_Period,MODE_LOW,num,startbar)); Alexey Viktorov 2019.06.30 16:31 #9028 Taras Slobodyanik: 時系列のための標準関数があります。 良いアドバイスを得るために、最初から読み始めることをお勧めします。最初の質問があったところから、その後の議論まで。 Taras Slobodyanik 2019.06.30 16:38 #9029 Alexey Viktorov: 良いアドバイスのために、最初から読み始めることをお勧めします。最初の質問があったところから、その後の議論まで。 最初から、この人は時系列で最小・最大値を探しているようだ。 なくても大丈夫です。 void KValues(int i) { if (price == STO_LOWHIGH) { vhigh=iHigh(_Symbol,_Period,iHighest(_Symbol,_Period,MODE_HIGH,kperiod,i)); vlow=iLow(_Symbol,_Period,iLowest(_Symbol,_Period,MODE_LOW,kperiod,i)); } else { vhigh=iClose(_Symbol,_Period,iHighest(_Symbol,_Period,MODE_CLOSE,kperiod,i)); vlow=iClose(_Symbol,_Period,iLowest(_Symbol,_Period,MODE_CLOSE,kperiod,i)); } }(確認しなかった)。 Alexey Viktorov 2019.06.30 16:52 #9030 Taras Slobodyanik: 最初から見ていたようだ - 男は最小/最大を求めて時系列を調べている。 なくてもいいんじゃない?(確認しなかった)。 ストキャスティックな値を求めている。 とはいえ...何が必要なのか、もう自分でも混乱しています。ストキャスティックコンディションのように見えるが、バーをコピーしている...。 1...896897898899900901902903904905906907908909910...1953 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
MQL5で実行されないコードがインジケーターにあるのですが
ポイントは、price == STO_LOWHIGHの 場合はすべて正しく動作しますが、price == STO_CLOSECLOSEの場合はスタティック変数にのみ 代入される点です。
...ループ回避
が、これと全く同じ関数がMQL4で正しく動作します。
が、MQL4では同じ関数が正しく動作します。
次に、どのような配列High[] Close[]を指定する必要があります。
mql4のものであればmql5では使用できませんし、カスタムであれば...。何も提案できない。
Low/HighとClose/CloseでK期間内の通常のmaxHighとminLowストキャスティクスを取得したい
初期化時のLow/Highはうまくいきますが、Close/Closeはうまくいきません。
CopyBuffer()で得た 配列からfmax()やfmin()を求める方が簡単です。
次に、High[] Close[]という配列が何であるかを明確にする必要があります。
mql4のものであればmql5では使用できませんし、カスタムであれば...。思い込みはダメですね。
以下は、MQL5におけるこれらのバッファの内容です。
CopyBuffer()で得た配列からfmax()やfmin()を求める方が簡単です。
バッファ全体ではなく、ある期間内の値が必要です K
その他、減速時間を考慮してデータをコピーする必要があることを考慮した上で、どのように実装すればよいでしょうか。
バッファ全体の値ではなく、期間K内の値が必要です
その他、減速期間を考慮してデータをコピーする必要があるのですが、どのように実装すればよいのでしょうか?
昨日も同じことをしましたが、ハイアレイとローアレイだけでした。
時系列フリップなし。では、mql5で規定されているように? 左側のバーがゼロ。
また、インジケーターのバッファーを丸ごとコピーするのではなく、指定したバーから指定した量だけコピーすることが可能です。そして、間違えてfmax()とfmin()を推奨してしまったのです。ArrayMaximum()のことです。
Low/HighとClose/CloseでK期間内の通常のmaxHighとminLowのストキャスティクスを取得したい。
初期化中のLow/Highは正常に動作するが、Close/Closeは正常に動作しない
時系列に対する標準的な関数がある
時系列のための標準関数があります。
良いアドバイスを得るために、最初から読み始めることをお勧めします。最初の質問があったところから、その後の議論まで。
良いアドバイスのために、最初から読み始めることをお勧めします。最初の質問があったところから、その後の議論まで。
最初から、この人は時系列で最小・最大値を探しているようだ。
(確認しなかった)。なくても大丈夫です。
最初から見ていたようだ - 男は最小/最大を求めて時系列を調べている。
(確認しなかった)。なくてもいいんじゃない?
ストキャスティックな値を求めている。
とはいえ...何が必要なのか、もう自分でも混乱しています。ストキャスティックコンディションのように見えるが、バーをコピーしている...。