指標となる質問 - ページ 2 12345678 新しいコメント Agent86 2011.09.28 04:52 #11 1ならTrue、0ならFalseということですね? 明日、もう少し考えてみます。 blackmore 2011.09.28 08:22 #12 Agent86: 1はTrue、0はFalseですよね?<---- これは正しい、しかし 明日もう少し考えて、これがわかるかどうか見てみます。 UKはMACDの 値についてより言及しています。 Simon Gniadkowski 2011.09.28 09:23 #13 fast と slower は bool ではなく double です ... 初期値からループを3回ほど繰り返し、Bars, Bars-1, Bars-2 の値に対して ... faster と slower の値は何でしょうか? Agent86 2011.09.28 22:50 #14 //+------------------------------------------------------------------+ //| //+------------------------------------------------------------------+ #property indicator_chart_window #property indicator_buffers 3 #property indicator_color1 Red #property indicator_color2 Blue #property indicator_color3 White //---- buffers double v1[]; double v2[]; double v3[]; double val1; double val2; double val3; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int init() { //---- IndicatorBuffers(3); SetIndexArrow(0, 111); SetIndexStyle(0,DRAW_ARROW,STYLE_DOT,1,Blue); SetIndexBuffer(0, v1); SetIndexLabel(0,"Resistance"); SetIndexArrow(1, 111); SetIndexStyle(1,DRAW_ARROW,STYLE_DOT,1,Red); SetIndexBuffer(1, v2); SetIndexLabel(1,"Support"); SetIndexArrow(2, 111); SetIndexStyle(2,DRAW_ARROW,STYLE_DOT,1,White); SetIndexBuffer(2, v3); SetIndexLabel(2,"High A"); //---- return(0); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int start() { int i=Bars; double faster = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,1), //MODE_MAIN slower = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,1); //MODE_SIGNAL for(i=Bars; i>=0; i--) { val1=iFractals(NULL, 0, MODE_UPPER,i); if (val1 > 0) { v1[i]=High[i]; Print ("v1[", i, "]= ", v1[i], " if"); Print ("i=",i, " faster=", faster); Print ("i=",i, " slower=",slower); } else { //v1[i]=v1[i+1]; //Print ("v1[", i, "]= ", v1[i], " else"); } val2=iFractals(NULL, 0, MODE_LOWER,i); if (val2 > 0) { v2[i]=Low[i]; Print ("v2[", i, "]= ", v2[i], " if"); } else { //v2[i]=v2[i+1]; //Print ("v2[", i, "]= ", v2[i], " else"); } } //---- return(0); } //+------------------------------------------------------------------+ 2011.09.28 16:43:30 sup_res EURUSD,M5: i=411 fast=-0.0005 2011.09.28 16:43:30 sup_res EURUSD,M5: v1[411]= 1.3522 if 2011.09.28 16:43:30 sup_res EURUSD,M5: v2[414]= 1.3495 if 2011.09.28 16:43:30 sup_res EURUSD,M5: i=414 slower=-0.0007 2011.09.28 16:43:30 sup_res EURUSD,M5: i=414 fast=-0.0005。 2011.09.28 16:43:30 sup_res EURUSD,M5: v1[414]= 1.3527 if 2011.09.28 16:43:30 sup_res EURUSD,M5: i=417 slower=-0.0007 2011.09.28 16:43:30 sup_res EURUSD,M5: i=417 fast=-0.0005。 2011.09.28 16:43:30 sup_res EURUSD,M5: v1[417]= 1.3528 if 2011.09.28 16:43:30 sup_res EURUSD,M5: v2[419]= 1.3506 if 2011.09.28 16:43:30 sup_res EURUSD,M5: i=420 slower=-0.0007 2011.09.28 16:43:30 sup_res EURUSD,M5: i=420 fast=-0.0005。 2011.09.28 16:43:30 sup_res EURUSD,M5: v1[420]= 1.3523 if 2011.09.28 16:43:30 sup_res EURUSD,M5: i=426 slower=-0.0007 2011.09.28 16:43:30 sup_res EURUSD,M5: i=426 fast=-0.0005。 2011.09.28 16:43:30 sup_res EURUSD,M5: v1[426]= 1.3522 if 2011.09.28 16:43:30 sup_res EURUSD,M5: v2[429]= 1.3481 if インディケータを実行すると、このように表示されます。 しかし、EAで全く同じコードを実行すると、配列は表示されません。 2011.09.28 16:43:48 2011.01.02 18:42 Agent86_5min EURUSD,M5: i=227 faster=-0.0015 2011.09.28 16:43:48 2011.01.02 18:42 Agent86_5min EURUSD,M5: v1[227]= 0 if 2011.09.28 16:43:48 2011.01.02 18:42 Agent86_5min EURUSD,M5: v2[230]= 0 if 2011.09.28 16:43:48 2011.01.02 18:42 Agent86_5min EURUSD,M5: i=232 slower=-0.0013 2011.09.28 16:43:48 2011.01.02 18:42 Agent86_5min EURUSD,M5: i=232 fast=-0.0015。 2011.09.28 16:43:48 2011.01.02 18:42 Agent86_5min EURUSD,M5: v1[232]= 0 if 2011.09.28 16:43:47 2011.01.02 18:28 Agent86_5min EURUSD,M5: i=825 faster=-0.0015 2011.09.28 16:43:47 2011.01.02 18:28 Agent86_5min EURUSD,M5: v1[825]= 0 if 2011.09.28 16:43:47 2011.01.02 18:28 Agent86_5min EURUSD,M5: i=829 slower=-0.0008 2011.09.28 16:43:47 2011.01.02 18:28 Agent86_5min EURUSD,M5: i=829 fast=-0.0015 2011.09.28 16:43:47 2011.01.02 18:28 Agent86_5min EURUSD,M5: v1[829]= 0 if 2011.09.28 16:43:47 2011.01.02 18:28 Agent86_5min EURUSD,M5: i=832 slower=-0.0008 2011.09.28 16:43:47 2011.01.02 18:28 Agent86_5min EURUSD,M5: i=832 fast=-0.0015。 2011.09.28 16:43:47 2011.01.02 18:28 Agent86_5min EURUSD,M5: v1[832]= 0 if 2011.09.28 16:43:46 2011.01.02 18:13 Agent86_5min EURUSD,M5: i=240 fast=-0.0011 2011.09.28 16:43:46 2011.01.02 18:13 Agent86_5min EURUSD,M5: v1[240]= 0 if 2011.09.28 16:43:46 2011.01.02 18:13 Agent86_5min EURUSD,M5: v2[241]= 0 if 2011.09.28 16:43:46 2011.01.02 18:13 Agent86_5min EURUSD,M5: v2[245]= 0 if 2011.09.28 16:43:46 2011.01.02 18:13 Agent86_5min EURUSD,M5: i=245 slower=-0.0003 2011.09.28 16:43:46 2011.01.02 18:13 Agent86_5min EURUSD,M5: i=245 fast=-0.0011。 2011.09.28 16:43:46 2011.01.02 18:13 Agent86_5min EURUSD,M5: v1[245]= 0 if 2011.09.28 16:43:46 2011.01.02 18:13 Agent86_5min EURUSD,M5: v2[249]= 0 if インジケータと全く同じコードなので、なぜまた配列を表示しないようにするのか分かりません。 ともあれ、とりあえずインジケータに手を付けます。 4桁の分数から負の4桁の分数まで様々な値が表示されるようですが iMACDのシフトをiにすると、ずっとfasterとslower=0になるのですが Indicator Question Why my stop loss Bug report MT4 rev William Roeder 2011.09.28 23:47 #15 Agent86: 試しにいろんなところにif(faster > slower)を挿入して遊んでみました。通常、これらのアイデアはEAでは機能しますが、インジケータでは機能しません。 IEif(v1 > 0 && より速く > より遅く) が、これではインジケータが消えてしまいます。 この変更を試してみてください。// double faster = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,1), //MODE_MAIN // slower = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,1); //MODE_SIGNAL for(i=Bars-1; i>=0; i--) { double faster = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,i), //MODE_MAIN slower = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,i); //MODE_SIGNAL Simon Gniadkowski 2011.09.29 00:19 #16 Agent86: 私はそれが再び配列を印刷しないように戻って頼る理由がわからない、それは指標と同じ正確なコードだからです。 EAで Indicator Bufferは使えない ... 説明はこちら :https://www.mql5.com/en/articles/1456 fastとslowerはループ中ずっと同じ値で、 iの 値が変化していますが、これはあなたが必要とするものですか? Agent86 2011.09.29 03:17 #17 RaptorUK: EAで Indicator Bufferは使えない ... 説明はこちら :https://www.mql5.com/en/articles/1456 fastとslowerはループ中ずっと同じ値で、 iの 値が変化していますが、これはあなたが必要とするものですか? OKリンクをありがとうございます。私はこのことについて忘れていた。私には思い出すのも大変な情報です。Noobinessハンディキャップ笑。 で、とにかく、iMACDのクロスとか、EMAのクロスとか、他の指標のクロスとか、他の条件が発生したときだけ、高いフラクタルを形成するようにしようと思っていたのです。 そうすれば、すべての条件が満たされたときだけ、フラクタルがインジケータに表示されるようになります。 そして、同じような条件で低位フラクタルにも手を出す。 さらに複雑な条件も追加して、やり方を勉強してみようと思います。つまり、それはiFractalsではなく、他のインジケーターと様々な条件を結合したインジケーターかもしれないのです。 デザインは、私は経験がないので、一般的なコードで使われている戦術や理論をあまり見たことがなく、大きな問題です。だから、今は他の人のコードを読んで、その人がどう動いているのか、何をしたのかを理解して学ぶしかない。 いずれにせよ、私はそれを続けるでしょう。 Agent86 2011.10.02 03:45 #18 WHRoeder: 次のように変更してみてください。 うーん、面白い そのため、ループ内でも変数を宣言する必要があります。 よし、これで楽しく遊べそうだ。 blackmore 2011.10.02 04:18 #19 私は、ループしているすべての変数を、ループの外で、最初に一度だけインスタンス化するのが好きです。 ループの中で宣言すると、コンパイラは繰り返しのたびに新しい変数を作成します。 double faster = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,1), //MODE_MAIN slower = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,1); //MODE_SIGNAL for(i=Bars-1; i>=0; i--) { faster = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,i), //MODE_MAIN slower = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,i); //MODE_SIGNAL William Roeder 2011.10.02 15:41 #20 diostar: 私は、ループしているすべての変数を、ループの外で、最初に一度だけインスタンス化するのが好きです。 ループの中で宣言すると、コンパイラは繰り返しのたびに新しい変数を作ってしまいます。 どうしてそのような結論になったのでしょうか? 12345678 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
明日、もう少し考えてみます。
1はTrue、0はFalseですよね?<---- これは正しい、しかし
明日もう少し考えて、これがわかるかどうか見てみます。
2011.09.28 16:43:30 sup_res EURUSD,M5: i=411 fast=-0.0005
2011.09.28 16:43:30 sup_res EURUSD,M5: v1[411]= 1.3522 if2011.09.28 16:43:30 sup_res EURUSD,M5: v2[414]= 1.3495 if
2011.09.28 16:43:30 sup_res EURUSD,M5: i=414 slower=-0.0007
2011.09.28 16:43:30 sup_res EURUSD,M5: i=414 fast=-0.0005。
2011.09.28 16:43:30 sup_res EURUSD,M5: v1[414]= 1.3527 if
2011.09.28 16:43:30 sup_res EURUSD,M5: i=417 slower=-0.0007
2011.09.28 16:43:30 sup_res EURUSD,M5: i=417 fast=-0.0005。
2011.09.28 16:43:30 sup_res EURUSD,M5: v1[417]= 1.3528 if
2011.09.28 16:43:30 sup_res EURUSD,M5: v2[419]= 1.3506 if
2011.09.28 16:43:30 sup_res EURUSD,M5: i=420 slower=-0.0007
2011.09.28 16:43:30 sup_res EURUSD,M5: i=420 fast=-0.0005。
2011.09.28 16:43:30 sup_res EURUSD,M5: v1[420]= 1.3523 if
2011.09.28 16:43:30 sup_res EURUSD,M5: i=426 slower=-0.0007
2011.09.28 16:43:30 sup_res EURUSD,M5: i=426 fast=-0.0005。
2011.09.28 16:43:30 sup_res EURUSD,M5: v1[426]= 1.3522 if
2011.09.28 16:43:30 sup_res EURUSD,M5: v2[429]= 1.3481 if
インディケータを実行すると、このように表示されます。
しかし、EAで全く同じコードを実行すると、配列は表示されません。
2011.09.28 16:43:48 2011.01.02 18:42 Agent86_5min EURUSD,M5: i=227 faster=-0.0015
2011.09.28 16:43:48 2011.01.02 18:42 Agent86_5min EURUSD,M5: v1[227]= 0 if
2011.09.28 16:43:48 2011.01.02 18:42 Agent86_5min EURUSD,M5: v2[230]= 0 if
2011.09.28 16:43:48 2011.01.02 18:42 Agent86_5min EURUSD,M5: i=232 slower=-0.0013
2011.09.28 16:43:48 2011.01.02 18:42 Agent86_5min EURUSD,M5: i=232 fast=-0.0015。
2011.09.28 16:43:48 2011.01.02 18:42 Agent86_5min EURUSD,M5: v1[232]= 0 if
2011.09.28 16:43:47 2011.01.02 18:28 Agent86_5min EURUSD,M5: i=825 faster=-0.0015
2011.09.28 16:43:47 2011.01.02 18:28 Agent86_5min EURUSD,M5: v1[825]= 0 if
2011.09.28 16:43:47 2011.01.02 18:28 Agent86_5min EURUSD,M5: i=829 slower=-0.0008
2011.09.28 16:43:47 2011.01.02 18:28 Agent86_5min EURUSD,M5: i=829 fast=-0.0015
2011.09.28 16:43:47 2011.01.02 18:28 Agent86_5min EURUSD,M5: v1[829]= 0 if
2011.09.28 16:43:47 2011.01.02 18:28 Agent86_5min EURUSD,M5: i=832 slower=-0.0008
2011.09.28 16:43:47 2011.01.02 18:28 Agent86_5min EURUSD,M5: i=832 fast=-0.0015。
2011.09.28 16:43:47 2011.01.02 18:28 Agent86_5min EURUSD,M5: v1[832]= 0 if
2011.09.28 16:43:46 2011.01.02 18:13 Agent86_5min EURUSD,M5: i=240 fast=-0.0011
2011.09.28 16:43:46 2011.01.02 18:13 Agent86_5min EURUSD,M5: v1[240]= 0 if
2011.09.28 16:43:46 2011.01.02 18:13 Agent86_5min EURUSD,M5: v2[241]= 0 if
2011.09.28 16:43:46 2011.01.02 18:13 Agent86_5min EURUSD,M5: v2[245]= 0 if
2011.09.28 16:43:46 2011.01.02 18:13 Agent86_5min EURUSD,M5: i=245 slower=-0.0003
2011.09.28 16:43:46 2011.01.02 18:13 Agent86_5min EURUSD,M5: i=245 fast=-0.0011。
2011.09.28 16:43:46 2011.01.02 18:13 Agent86_5min EURUSD,M5: v1[245]= 0 if
2011.09.28 16:43:46 2011.01.02 18:13 Agent86_5min EURUSD,M5: v2[249]= 0 if
インジケータと全く同じコードなので、なぜまた配列を表示しないようにするのか分かりません。
ともあれ、とりあえずインジケータに手を付けます。
4桁の分数から負の4桁の分数まで様々な値が表示されるようですが
iMACDのシフトをiにすると、ずっとfasterとslower=0になるのですが
試しにいろんなところにif(faster > slower)を挿入して遊んでみました。通常、これらのアイデアはEAでは機能しますが、インジケータでは機能しません。
IEif(v1 > 0 && より速く > より遅く)
が、これではインジケータが消えてしまいます。
私はそれが再び配列を印刷しないように戻って頼る理由がわからない、それは指標と同じ正確なコードだからです。EAで Indicator Bufferは使えない ... 説明はこちら :https://www.mql5.com/en/articles/1456
fastとslowerはループ中ずっと同じ値で、 iの 値が変化していますが、これはあなたが必要とするものですか?
EAで Indicator Bufferは使えない ... 説明はこちら :https://www.mql5.com/en/articles/1456
fastとslowerはループ中ずっと同じ値で、 iの 値が変化していますが、これはあなたが必要とするものですか?
OKリンクをありがとうございます。私はこのことについて忘れていた。私には思い出すのも大変な情報です。Noobinessハンディキャップ笑。
で、とにかく、iMACDのクロスとか、EMAのクロスとか、他の指標のクロスとか、他の条件が発生したときだけ、高いフラクタルを形成するようにしようと思っていたのです。
そうすれば、すべての条件が満たされたときだけ、フラクタルがインジケータに表示されるようになります。
そして、同じような条件で低位フラクタルにも手を出す。
さらに複雑な条件も追加して、やり方を勉強してみようと思います。つまり、それはiFractalsではなく、他のインジケーターと様々な条件を結合したインジケーターかもしれないのです。
デザインは、私は経験がないので、一般的なコードで使われている戦術や理論をあまり見たことがなく、大きな問題です。だから、今は他の人のコードを読んで、その人がどう動いているのか、何をしたのかを理解して学ぶしかない。
いずれにせよ、私はそれを続けるでしょう。
次のように変更してみてください。
そのため、ループ内でも変数を宣言する必要があります。
よし、これで楽しく遊べそうだ。
私は、ループしているすべての変数を、ループの外で、最初に一度だけインスタンス化するのが好きです。 ループの中で宣言すると、コンパイラは繰り返しのたびに新しい変数を作成します。
私は、ループしているすべての変数を、ループの外で、最初に一度だけインスタンス化するのが好きです。 ループの中で宣言すると、コンパイラは繰り返しのたびに新しい変数を作ってしまいます。