MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 242 1...235236237238239240241242243244245246247248249...1953 新しいコメント Artyom Trishkin 2017.06.29 23:27 #2411 Youri Lazurenko:一見、簡単そうに見える問題が解けない。チャートのどこかにMAが交差していた。横断歩道を渡った先でバーを見つける。そのバーから現在のバーまでの本数は どのように計算するのですか? その特定のバーの番号。ダメ? Youri Lazurenko 2017.06.30 07:14 #2412 Youri Lazurenko:一見、簡単そうに見える問題が解けない。チャートのどこかにMAが交差していた。横断歩道を渡った先でバーを見つける。このバーから現在のバーまでの本数を 計算するにはどうすればよいですか?されるようです(少なくとも画面上のコメントは正しい)。バーの数」のおかげで、解決策が見つかったような気がします。iTime関数を使って、必要なバーのdatetimeを決定しています。スケッチはこのような感じです。void OnTick(){int nBarsUp, nBarsDn;datetime date_dn = iTime(NULL, 0, IntersectionDN())。datetime date_up = iTime(NULL, 0, IntersectionUp());datetime date_1 = iTime(NULL, 0, 1);nBarsUp = Bars(Symbol(), 0, date_up, date_1)とする。nBarsDn = Bars(Symbol(), 0, date_dn, date_1);Comment("長い棒の本数:" + nBarsUp + "\n" + "短い棒の本数:" + nBarsUp + "\n")"短いバーの数:" + nBarsDn);}//+------------------------------------------------------------------+int IntersectionDN(){for(int i = 0; i < 36; i++){if(iMA(Symbol(), 0, 5, 0, MODE_EMA, PRICE_CLOSE, i) > iMA(Symbol(), 0, 21, 0, MODE_EMA, PRICE_CLOSE, i))&& iMA(Symbol(), 0, 5, 0, MODE_EMA, PRICE_CLOSE, i-1) < iMA(Symbol(), 0, 21, 0, MODE_EMA, PRICE_CLOSE, i-1))return(i-1)です。}return(-1)です。}int IntersectionUp(){for(int i = 0; i < 36; i++){if(iMA(Symbol()、0、5、0、MODE_EMA、PRICE_CLOSE、i) < iMA(Symbol()、0、21、0、MODE_EMA、PRICE_CLOSE、i)&& iMA(Symbol(), 0, 5, 0, MODE_EMA, PRICE_CLOSE, i-1) > iMA(Symbol(), 0, 21, 0, MODE_EMA, PRICE_CLOSE, i-1))return(i-1)です。}return(-1)です。} Any questions from newcomers signals from other currency How to build a Artyom Trishkin 2017.06.30 07:22 #2413 Youri Lazurenko: うまくいったようだ(少なくとも画面のコメントは正しい)。バーの数」のおかげで、解決策が見つかったような気がします。iTime関数を使って、目的のバーのdatetimeを決定しました。スケッチはこのような感じです。void OnTick() { int nBarsUp, nBarsDn; datetime date_dn = iTime(NULL, 0, IntersectionDN()); datetime date_up = iTime(NULL, 0, IntersectionUp()); datetime date_1 = iTime(NULL, 0, 1); nBarsUp = Bars(Symbol(), 0, date_up, date_1); nBarsDn = Bars(Symbol(), 0, date_dn, date_1); Comment("Количество длинных баров: " + nBarsUp + "\n"+ "Количество коротких баров: " + nBarsDn); } //+------------------------------------------------------------------+ int IntersectionDN() { for(int i = 0; i < 36; i++) { if(iMA(Symbol(), 0, 5, 0, MODE_EMA, PRICE_CLOSE, i) > iMA(Symbol(), 0, 21, 0, MODE_EMA, PRICE_CLOSE, i) && iMA(Symbol(), 0, 5, 0, MODE_EMA, PRICE_CLOSE, i-1) < iMA(Symbol(), 0, 21, 0, MODE_EMA, PRICE_CLOSE, i-1)) return(i-1); } return(-1); } int IntersectionUp() { for(int i = 0; i < 36; i++) { if(iMA(Symbol(), 0, 5, 0, MODE_EMA, PRICE_CLOSE, i) < iMA(Symbol(), 0, 21, 0, MODE_EMA, PRICE_CLOSE, i) && iMA(Symbol(), 0, 5, 0, MODE_EMA, PRICE_CLOSE, i-1) > iMA(Symbol(), 0, 21, 0, MODE_EMA, PRICE_CLOSE, i-1)) return(i-1); } return(-1); }ループの中でクロスオーバーを探しているのですね。そして、歴史に深く刻まれたゼロバーから。つまり、関数IntersectionXX()は棒グラフの番号を返すということですね。これは何のため?int nBarsUp, nBarsDn; datetime date_dn = iTime(NULL, 0, IntersectionDN()); datetime date_up = iTime(NULL, 0, IntersectionUp()); datetime date_1 = iTime(NULL, 0, 1); nBarsUp = Bars(Symbol(), 0, date_up, date_1); nBarsDn = Bars(Symbol(), 0, date_dn, date_1); Youri Lazurenko 2017.06.30 09:12 #2414 Artyom Trishkin:ループの中でクロスオーバーを探しているのですね。そして、バーゼロからストーリーの底辺まで。そこで、IntersectionXX()は小節番号を返します。これは何のため?バー・ナンバーは、そうですね。しかし、私はバーの数を 知る必要があります - 履歴の深いこのバーからゼロバーまで。要するに、MAからのバーの傾きの角度が必要なんです。しかし、私の考えでは計算できないので(縦線に価格、横線にバーがある程度離れて配置されている-両者は相容れない値である)。昔々、フォーラムで、価格差をバーの本数で割った係数を導入してはどうかという意見がありました。その考え方は合理的だと思います。実践したいのですが、私自身はダミーなので、自分で何かを見つけて試行錯誤しています。 P.S. MQL4でコードを挿入する方法(あなたのような、私のようなものではない)? 削除済み 2017.06.30 09:37 #2415 この問題の対処法をご存知の方はいらっしゃいますか?TF交換後、パネルがゆがむ Artyom Trishkin 2017.06.30 09:48 #2416 Youri Lazurenko: バーの数、ですね。しかし、私はバーの数を 知る必要があります - この物語の後ろのいくつかのバーから第0のバーまで。要するに、MAから見たバーの角度が知りたいのです。しかし、計算できないので、(縦線に価格、横線にバーがある程度離れて配置され、相容れない値である)と思われます。昔々、フォーラムで、価格差をバーの本数で割った係数を導入してはどうかという意見がありました。その考え方は合理的だと思います。実践してみたいのですが、私自身はダミーなので、自分で何かを見つけて試行錯誤しています。 追伸:MQL4でコードを挿入する方法(私が持っている方法ではなく、あなたが持っている方法)? これが10本目のバーだとすると、10本目と0本目のバーの違いはどうすればわかるのでしょうか?10-0=10また、引き算は何のためにするのでしょうか? Jenya77769 2017.06.30 09:50 #2417 こんにちは!2つのマイナス数qとwが等しいときに、if演算子が一方が他方より大きいと思って しまう、間違った比較をして います。q=-0.0002でwも-0.0002のとき、res12=falseとなりますが、なぜでしょうか? Jenya77769 2017.06.30 09:51 #2418 こんにちは!2つのマイナス数qとwが等しいときに、if演算子が一方が他方より大きいと思って しまう、間違った比較をして います。q=-0.0002でwも-0.0002のとき、res12=falseとなりますが、なぜでしょうか?static bool res12=true; start() { double SPREAD=MarketInfo(Symb,MODE_SPREAD);// Спред double q=High[0]-3.0*Point-High[1]; double w=-SPREAD*Point; if (New_Bar==true&&ticket1<=0) { if(q>w) { res12=false; Alert("res12=false"); Alert (q); Alert (w); } } if (New_Bar==true&&ticket1<=0) { if(q<=w) { res12=true; Alert("res12=true"); Alert (q); Alert (w); } } } Vyacheslav Kornev 2017.06.30 10:00 #2419 Jenya77769:こんにちは!2つのマイナス数qとwが等しいときに、if演算子が一方が他方より大きいと思って しまう、間違った比較をして います。q=-0.0002でwも-0.0002のとき、res12=falseとなりますが、なぜでしょうか?ノーマライゼーションが必要だと思うし、それこそノーマライゼーションがないとダブルス同士を比較することはできない。 if NormalizeDouble (q<=w) Jenya77769 2017.06.30 10:05 #2420 Vyacheslav Kornev: 正規化しないと、両者のダブルの比較はできないので、正規化して終わりと思います。ありがとうございます!うまくいったのですが、qとwを別々に正規化しましたif(NormalizeDouble(q,4)> NormalizeDouble(q,4)) 1...235236237238239240241242243244245246247248249...1953 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
一見、簡単そうに見える問題が解けない。チャートのどこかにMAが交差していた。横断歩道を渡った先でバーを見つける。そのバーから現在のバーまでの本数は どのように計算するのですか?
一見、簡単そうに見える問題が解けない。チャートのどこかにMAが交差していた。横断歩道を渡った先でバーを見つける。このバーから現在のバーまでの本数を 計算するにはどうすればよいですか?
されるようです(少なくとも画面上のコメントは正しい)。バーの数」のおかげで、解決策が見つかったような気がします。iTime関数を使って、必要なバーのdatetimeを決定しています。スケッチはこのような感じです。
void OnTick()
{
int nBarsUp, nBarsDn;
datetime date_dn = iTime(NULL, 0, IntersectionDN())。
datetime date_up = iTime(NULL, 0, IntersectionUp());
datetime date_1 = iTime(NULL, 0, 1);
nBarsUp = Bars(Symbol(), 0, date_up, date_1)とする。
nBarsDn = Bars(Symbol(), 0, date_dn, date_1);
Comment("長い棒の本数:" + nBarsUp + "\n" + "短い棒の本数:" + nBarsUp + "\n")
"短いバーの数:" + nBarsDn);
}
//+------------------------------------------------------------------+
int IntersectionDN()
{
for(int i = 0; i < 36; i++)
{
if(iMA(Symbol(), 0, 5, 0, MODE_EMA, PRICE_CLOSE, i) > iMA(Symbol(), 0, 21, 0, MODE_EMA, PRICE_CLOSE, i))
&& iMA(Symbol(), 0, 5, 0, MODE_EMA, PRICE_CLOSE, i-1) < iMA(Symbol(), 0, 21, 0, MODE_EMA, PRICE_CLOSE, i-1))
return(i-1)です。
}
return(-1)です。
}
int IntersectionUp()
{
for(int i = 0; i < 36; i++)
{
if(iMA(Symbol()、0、5、0、MODE_EMA、PRICE_CLOSE、i) < iMA(Symbol()、0、21、0、MODE_EMA、PRICE_CLOSE、i)
&& iMA(Symbol(), 0, 5, 0, MODE_EMA, PRICE_CLOSE, i-1) > iMA(Symbol(), 0, 21, 0, MODE_EMA, PRICE_CLOSE, i-1))
return(i-1)です。
}
return(-1)です。
}
うまくいったようだ(少なくとも画面のコメントは正しい)。バーの数」のおかげで、解決策が見つかったような気がします。iTime関数を使って、目的のバーのdatetimeを決定しました。スケッチはこのような感じです。
ループの中でクロスオーバーを探しているのですね。そして、歴史に深く刻まれたゼロバーから。つまり、関数IntersectionXX()は棒グラフの番号を返すということですね。
これは何のため?
ループの中でクロスオーバーを探しているのですね。そして、バーゼロからストーリーの底辺まで。そこで、IntersectionXX()は小節番号を返します。
これは何のため?
バー・ナンバーは、そうですね。しかし、私はバーの数を 知る必要があります - 履歴の深いこのバーからゼロバーまで。要するに、MAからのバーの傾きの角度が必要なんです。しかし、私の考えでは計算できないので(縦線に価格、横線にバーがある程度離れて配置されている-両者は相容れない値である)。昔々、フォーラムで、価格差をバーの本数で割った係数を導入してはどうかという意見がありました。その考え方は合理的だと思います。実践したいのですが、私自身はダミーなので、自分で何かを見つけて試行錯誤しています。
P.S. MQL4でコードを挿入する方法(あなたのような、私のようなものではない)?この問題の対処法をご存知の方はいらっしゃいますか?
TF交換後、パネルがゆがむ
バーの数、ですね。しかし、私はバーの数を 知る必要があります - この物語の後ろのいくつかのバーから第0のバーまで。要するに、MAから見たバーの角度が知りたいのです。しかし、計算できないので、(縦線に価格、横線にバーがある程度離れて配置され、相容れない値である)と思われます。昔々、フォーラムで、価格差をバーの本数で割った係数を導入してはどうかという意見がありました。その考え方は合理的だと思います。実践してみたいのですが、私自身はダミーなので、自分で何かを見つけて試行錯誤しています。
追伸:MQL4でコードを挿入する方法(私が持っている方法ではなく、あなたが持っている方法)?こんにちは!2つのマイナス数qとwが等しいときに、if演算子が一方が他方より大きいと思って しまう、間違った比較をして います。q=-0.0002でwも-0.0002のとき、res12=falseとなりますが、なぜでしょうか?
こんにちは!2つのマイナス数qとwが等しいときに、if演算子が一方が他方より大きいと思って しまう、間違った比較をして います。q=-0.0002でwも-0.0002のとき、res12=falseとなりますが、なぜでしょうか?
こんにちは!2つのマイナス数qとwが等しいときに、if演算子が一方が他方より大きいと思って しまう、間違った比較をして います。q=-0.0002でwも-0.0002のとき、res12=falseとなりますが、なぜでしょうか?
ノーマライゼーションが必要だと思うし、それこそノーマライゼーションがないとダブルス同士を比較することはできない。
if NormalizeDouble (q<=w)正規化しないと、両者のダブルの比較はできないので、正規化して終わりと思います。
ありがとうございます!うまくいったのですが、qとwを別々に正規化しました