初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 471 1...464465466467468469470471472473474475476477478...1503 新しいコメント Artyom Trishkin 2015.11.03 19:12 #4701 Mike: 1.オールマッチ。 2.そのようなパラメータはありません。 他のスレッドで、この問題はMT4では解決不可能と言われました。:(2.別ウィンドウでMAが表示されるなんて、どこでパラメータを知ったんだろう。でも...Indicators --> Oscillators --> OscillatorのMoving Averagesを取ると、"Apply to:" とあります。そのため、別のインディケータを別のウィンドウに入れようとすると、ENUM_APPLIED_PRICE 列挙からの標準価格だけでなく、既にウィンドウ内にあるそのインディケータのデータにも適用されるケースがある。もしかしたら、あなたはこのような状況になっているだけかもしれません。3.何が問題なのか?3つのMAが、(あなたの発言によれば)類似した3つのMAに対応していないこと?だから、解けないのではなく、ナンセンスなんです。正しく作れば、必ず一致する。それぞれのパラメータを持つ3つの別々のMAか、同じパラメータを持つ3つのMAを3つのバッファを持つ1つのインジケータに詰め込んだものか、何が違うのでしょうか...。違いがわかりますか?しないんです。そして、もしそれが見えたら、MAKの計算に矛盾がないかを探してください。ところで...Alligatorは3つのMAを1つのインジケーターにしたもので、それぞれにパラメータがあります。3つの別々のMAで同じようにパラメータを設定すれば、一致するはずです。でも、これだけのバクチを別ウィンドウで...。そこで ...一例として Leo59 2015.11.04 05:57 #4702 Mike: 3MA(4,9,14)のインディケータを作り、その正しさを確認するために、MA(4), MA(9), MA(14) の三つのインディケータがあるウィンドウと比較することにしました。身の毛もよだつ思いです。:) インジケータウィンドウのセルフスケーリング機能を無効にしてみてください。 "MA(4), MA(9), MA(14)" の3つの指標がある場合、指標ウィンドウはこのウィンドウに付けられた最初の指標によって自己拡大縮小されます。あなたの場合、おそらくMA(4)でしょう。 Aleksey Vyazmikin 2015.11.04 11:06 #4703 上のタイムフレームから内蔵インジケータの値を取得するのですが、このタイムフレーム内で取得する設計をお願いします。例えば、現在のチャートは15分ですが、日によって計算されたインジケータの値を取得する必要がありますが、45分前に、これを行うにはどうすればよいですか?ここでは、現在のバーに対してのみ、インジケータの値を返す簡単なアルゴリズムを紹介します。double iDelta(int Variant,int n,int TF,int index) { double Fibo=0; if(Variant==1) Fibo=0.236; if(Variant==2) Fibo=0.382; if(Variant==3) Fibo=0.5; if(Variant==4) Fibo=0.618; if(Variant==5) Fibo=0.764; if(Variant==6) Fibo=1; if(Variant==7) Fibo=1.236; if(Variant==8) Fibo=1.382; if(Variant==9) Fibo=1.5; if(Variant==10) Fibo=1.618; if(Variant==11) Fibo=2.0; if(Variant==12) Fibo=2.236; if(Variant==-1) Fibo=-0.236; if(Variant==-2) Fibo=-0.382; if(Variant==-3) Fibo=-0.5; if(Variant==-4) Fibo=-0.618; if(Variant==-5) Fibo=-0.764; if(Variant==-6) Fibo=-1; if(Variant==-7) Fibo=-1.236; if(Variant==-8) Fibo=-1.382; if(Variant==-9) Fibo=-1.5; if(Variant==-10) Fibo=-1.618; if(Variant==-11) Fibo=-2.0; if(Variant==-12) Fibo=-2.236; return ( NormalizeDouble(iOpen(Symbol(),TF,index)+iATR(Symbol(), TF, n, index+1)*Fibo,Digits) ); } Questions from Beginners MQL5 Fibonacci Levels Are What Any questions from newcomers Mikhail Tkachev 2015.11.04 17:59 #4704 Leo59: インジケータウィンドウのセルフスケーリングを無効にしてみると、もしかしたら落ち着くかもしれません。 "3つのインディケータがMA(4), MA(9), MA(14) "の場合、インディケータウィンドウは、そのウィンドウに取り付けられた最初のインディケータによって自己拡大縮小されます。あなたの場合、おそらくMA(4)でしょう。 このセルフスケーリングはどこで無効にするのですか? Mikhail Tkachev 2015.11.04 18:04 #4705 Artyom Trishkin:2.別ウィンドウでMAが表示されるなんて、どこでパラメータを知ったんだろう。でも...Indicators --> Oscillators --> OscillatorのMoving Averagesを取ると、"Apply to:" とあります。そのため、別のインディケータを別のウィンドウに入れようとすると、ENUM_APPLIED_PRICE 列挙からの標準価格だけでなく、既にウィンドウ内にあるそのインディケータのデータにも適用されるケースがある。もしかしたら、あなたはこのような状況になっているだけかもしれません。3.何が問題なのか?3つのMAが、(あなたの発言によれば)類似した3つのMAに対応していないこと?だから、解けないのではなく、ナンセンスなんです。正しく作れば、必ず一致する。それぞれのパラメータを持つ3つの別々のMAか、同じパラメータを持つ3つのMAを3つのバッファを持つ1つのインジケータに詰め込んだものか、何が違うのでしょうか...。違いがわかりますか?しないんです。そして、それが見えたら、MAKの計算のミスマッチを探します。ところで...Alligatorは3つのMAを1つのインジケーターにしたもので、それぞれにパラメータがあります。3つの別々のMAと同じようにパラメータを設定すれば、一致します。でも、これだけのバクチを別ウィンドウで...。そこで ...一例として Artyom、「申し込む」-そこには価格の一覧しかない。MA計算が正しく、3MAインジケータのあるウィンドウに、4、9、14と周期を変えたインジケータを1つ追加して、3本の線すべてをチェックします。いずれの場合も、単一指標は3MA指標の対応するラインと一致する Artyom Trishkin 2015.11.04 18:16 #4706 Mike: アルチョム 「申し込む」......そこには価格の羅列しかない。MA計算は正しく、3本の線はすべて、3MAインディケータウィンドウに周期4、次に9、次に14のインディケータを1つ追加してチェックされています。それぞれの場合、単一指標は3MA指標の対応するラインと一致する では、何が問題なのでしょうか?窓によってラインが異なるという、視覚的なミスマッチが気になるのですね。Ctrl+Dを押して、インジケーターの線に マウスを移動させ、データウィンドウで一致するかどうか見てください... Mikhail Tkachev 2015.11.04 18:31 #4707 -Aleks-:上のタイムフレームから内蔵インジケータの値を取得するのですが、このタイムフレーム内で取得する設計をお願いします。例えば、現在のチャートは15分ですが、日によって計算されたインジケータの値を取得する必要がありますが、45分前に、これを行うにはどうすればよいですか?ここでは、現在のバーに対してのみ、インジケータの値を返す簡単なアルゴリズムを紹介します。double iDelta(int Variant,int n,int TF,int index) { double Fibo=0; if(Variant==1) Fibo=0.236; if(Variant==2) Fibo=0.382; if(Variant==3) Fibo=0.5; if(Variant==4) Fibo=0.618; if(Variant==5) Fibo=0.764; if(Variant==6) Fibo=1; if(Variant==7) Fibo=1.236; if(Variant==8) Fibo=1.382; if(Variant==9) Fibo=1.5; if(Variant==10) Fibo=1.618; if(Variant==11) Fibo=2.0; if(Variant==12) Fibo=2.236; if(Variant==-1) Fibo=-0.236; if(Variant==-2) Fibo=-0.382; if(Variant==-3) Fibo=-0.5; if(Variant==-4) Fibo=-0.618; if(Variant==-5) Fibo=-0.764; if(Variant==-6) Fibo=-1; if(Variant==-7) Fibo=-1.236; if(Variant==-8) Fibo=-1.382; if(Variant==-9) Fibo=-1.5; if(Variant==-10) Fibo=-1.618; if(Variant==-11) Fibo=-2.0; if(Variant==-12) Fibo=-2.236; return ( NormalizeDouble(iOpen(Symbol(),TF,index)+iATR(Symbol(), TF, n, index+1)*Fibo,Digits) ); } 質問には答えられないが、機能は簡略化でき、大幅にスピードアップできる。 インジケータを初期化する際に、静的配列double arrFibo[13] = {0.0, 0.236, 0.382, ..., 2.236};で、iDelta()内のifはすべて置き換えることができる。if (Variant>0) Fibo = arrFibo[ Variant]; else Fibo = -arrFibo[-Variant]; Aleksey Vyazmikin 2015.11.04 19:15 #4708 Mike:質問には答えられないが、機能は簡略化でき、大幅にスピードアップできる。 インジケーターの初期化時に、静的な配列 であるdouble arrFibo[13] = {0.0, 0.236, 0.382, ..., 2.236};で、iDelta() 内のifはすべて置き換えることができます。if (Variant>0) Fibo = arrFibo[ Variant]; else Fibo = -arrFibo[-Variant];ありがとうございます!やってみます!もしかしたら良くなるかもしれませんね。 Aleksey Vyazmikin 2015.11.05 14:09 #4709 Mike:質問には答えられないが、機能は簡略化でき、大幅にスピードアップできる。 インジケーターの初期化では、静的な配列を 作成します。double arrFibo[13] = {0.0, 0.236, 0.382, ..., 2.236};であり、iDelta() 内の全てのifを置き換えることができる。if (Variant>0) Fibo = arrFibo[ Variant]; else Fibo = -arrFibo[-Variant];書いてあるとおりにやったのですが、思うようにいきませんでした。まだ具体的にどこが悪いのかわかりません。プリントしないと......。文字列がよくわからないのですが。 else Fibo = -arrFibo[-Variant]; 配列のマイナスインデックスを要求しているのでしょうか? Mikhail Tkachev 2015.11.05 14:30 #4710 -Aleks-:書いていただいた通りにやったのですが、思うようにいきません~まだ何が悪いのかわかりません~印刷しないと・・・。ラインについてはよくわからない。 else Fibo = -arrFibo[-Variant]; 配列のマイナスインデックスを要求していることが判明したりするのでしょうか? Variant が負の場合、式 -Variant は配列フェッチのための正のインデックスを与える。 同じ場合、負のFibo値が必要なので、-arrFiboとなります。 1...464465466467468469470471472473474475476477478...1503 新しいコメント 理由: キャンセル 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
1.オールマッチ。
2.そのようなパラメータはありません。
他のスレッドで、この問題はMT4では解決不可能と言われました。:(
2.別ウィンドウでMAが表示されるなんて、どこでパラメータを知ったんだろう。でも...Indicators --> Oscillators --> OscillatorのMoving Averagesを取ると、"Apply to:" とあります。
そのため、別のインディケータを別のウィンドウに入れようとすると、ENUM_APPLIED_PRICE 列挙からの標準価格だけでなく、既にウィンドウ内にあるそのインディケータのデータにも適用されるケースがある。もしかしたら、あなたはこのような状況になっているだけかもしれません。
3.何が問題なのか?3つのMAが、(あなたの発言によれば)類似した3つのMAに対応していないこと?だから、解けないのではなく、ナンセンスなんです。正しく作れば、必ず一致する。それぞれのパラメータを持つ3つの別々のMAか、同じパラメータを持つ3つのMAを3つのバッファを持つ1つのインジケータに詰め込んだものか、何が違うのでしょうか...。違いがわかりますか?しないんです。そして、もしそれが見えたら、MAKの計算に矛盾がないかを探してください。
ところで...Alligatorは3つのMAを1つのインジケーターにしたもので、それぞれにパラメータがあります。3つの別々のMAで同じようにパラメータを設定すれば、一致するはずです。でも、これだけのバクチを別ウィンドウで...。そこで ...一例として
3MA(4,9,14)のインディケータを作り、その正しさを確認するために、MA(4), MA(9), MA(14) の三つのインディケータがあるウィンドウと比較することにしました。身の毛もよだつ思いです。:)
"MA(4), MA(9), MA(14)" の3つの指標がある場合、指標ウィンドウはこのウィンドウに付けられた最初の指標によって自己拡大縮小されます。あなたの場合、おそらくMA(4)でしょう。
上のタイムフレームから内蔵インジケータの値を取得するのですが、このタイムフレーム内で取得する設計をお願いします。
例えば、現在のチャートは15分ですが、日によって計算されたインジケータの値を取得する必要がありますが、45分前に、これを行うにはどうすればよいですか?
ここでは、現在のバーに対してのみ、インジケータの値を返す簡単なアルゴリズムを紹介します。
double iDelta(int Variant,int n,int TF,int index)
{
double Fibo=0;
if(Variant==1) Fibo=0.236;
if(Variant==2) Fibo=0.382;
if(Variant==3) Fibo=0.5;
if(Variant==4) Fibo=0.618;
if(Variant==5) Fibo=0.764;
if(Variant==6) Fibo=1;
if(Variant==7) Fibo=1.236;
if(Variant==8) Fibo=1.382;
if(Variant==9) Fibo=1.5;
if(Variant==10) Fibo=1.618;
if(Variant==11) Fibo=2.0;
if(Variant==12) Fibo=2.236;
if(Variant==-1) Fibo=-0.236;
if(Variant==-2) Fibo=-0.382;
if(Variant==-3) Fibo=-0.5;
if(Variant==-4) Fibo=-0.618;
if(Variant==-5) Fibo=-0.764;
if(Variant==-6) Fibo=-1;
if(Variant==-7) Fibo=-1.236;
if(Variant==-8) Fibo=-1.382;
if(Variant==-9) Fibo=-1.5;
if(Variant==-10) Fibo=-1.618;
if(Variant==-11) Fibo=-2.0;
if(Variant==-12) Fibo=-2.236;
return ( NormalizeDouble(iOpen(Symbol(),TF,index)+iATR(Symbol(), TF, n, index+1)*Fibo,Digits) );
}
インジケータウィンドウのセルフスケーリングを無効にしてみると、もしかしたら落ち着くかもしれません。
"3つのインディケータがMA(4), MA(9), MA(14) "の場合、インディケータウィンドウは、そのウィンドウに取り付けられた最初のインディケータによって自己拡大縮小されます。あなたの場合、おそらくMA(4)でしょう。
2.別ウィンドウでMAが表示されるなんて、どこでパラメータを知ったんだろう。でも...Indicators --> Oscillators --> OscillatorのMoving Averagesを取ると、"Apply to:" とあります。
そのため、別のインディケータを別のウィンドウに入れようとすると、ENUM_APPLIED_PRICE 列挙からの標準価格だけでなく、既にウィンドウ内にあるそのインディケータのデータにも適用されるケースがある。もしかしたら、あなたはこのような状況になっているだけかもしれません。
3.何が問題なのか?3つのMAが、(あなたの発言によれば)類似した3つのMAに対応していないこと?だから、解けないのではなく、ナンセンスなんです。正しく作れば、必ず一致する。それぞれのパラメータを持つ3つの別々のMAか、同じパラメータを持つ3つのMAを3つのバッファを持つ1つのインジケータに詰め込んだものか、何が違うのでしょうか...。違いがわかりますか?しないんです。そして、それが見えたら、MAKの計算のミスマッチを探します。
ところで...Alligatorは3つのMAを1つのインジケーターにしたもので、それぞれにパラメータがあります。3つの別々のMAと同じようにパラメータを設定すれば、一致します。でも、これだけのバクチを別ウィンドウで...。そこで ...一例として
アルチョム 「申し込む」......そこには価格の羅列しかない。MA計算は正しく、3本の線はすべて、3MAインディケータウィンドウに周期4、次に9、次に14のインディケータを1つ追加してチェックされています。それぞれの場合、単一指標は3MA指標の対応するラインと一致する
上のタイムフレームから内蔵インジケータの値を取得するのですが、このタイムフレーム内で取得する設計をお願いします。
例えば、現在のチャートは15分ですが、日によって計算されたインジケータの値を取得する必要がありますが、45分前に、これを行うにはどうすればよいですか?
ここでは、現在のバーに対してのみ、インジケータの値を返す簡単なアルゴリズムを紹介します。
double iDelta(int Variant,int n,int TF,int index)
{
double Fibo=0;
if(Variant==1) Fibo=0.236;
if(Variant==2) Fibo=0.382;
if(Variant==3) Fibo=0.5;
if(Variant==4) Fibo=0.618;
if(Variant==5) Fibo=0.764;
if(Variant==6) Fibo=1;
if(Variant==7) Fibo=1.236;
if(Variant==8) Fibo=1.382;
if(Variant==9) Fibo=1.5;
if(Variant==10) Fibo=1.618;
if(Variant==11) Fibo=2.0;
if(Variant==12) Fibo=2.236;
if(Variant==-1) Fibo=-0.236;
if(Variant==-2) Fibo=-0.382;
if(Variant==-3) Fibo=-0.5;
if(Variant==-4) Fibo=-0.618;
if(Variant==-5) Fibo=-0.764;
if(Variant==-6) Fibo=-1;
if(Variant==-7) Fibo=-1.236;
if(Variant==-8) Fibo=-1.382;
if(Variant==-9) Fibo=-1.5;
if(Variant==-10) Fibo=-1.618;
if(Variant==-11) Fibo=-2.0;
if(Variant==-12) Fibo=-2.236;
return ( NormalizeDouble(iOpen(Symbol(),TF,index)+iATR(Symbol(), TF, n, index+1)*Fibo,Digits) );
}
質問には答えられないが、機能は簡略化でき、大幅にスピードアップできる。
インジケータを初期化する際に、静的配列
double arrFibo[13] = {0.0, 0.236, 0.382, ..., 2.236};
で、iDelta()内のifはすべて置き換えることができる。
if (Variant>0)
Fibo = arrFibo[ Variant];
else
Fibo = -arrFibo[-Variant];
質問には答えられないが、機能は簡略化でき、大幅にスピードアップできる。
インジケーターの初期化時に、静的な配列 である
double arrFibo[13] = {0.0, 0.236, 0.382, ..., 2.236};
で、iDelta() 内のifはすべて置き換えることができます。
if (Variant>0)
Fibo = arrFibo[ Variant];
else
Fibo = -arrFibo[-Variant];
ありがとうございます!やってみます!もしかしたら良くなるかもしれませんね。
質問には答えられないが、機能は簡略化でき、大幅にスピードアップできる。
インジケーターの初期化では、静的な配列を 作成します。
double arrFibo[13] = {0.0, 0.236, 0.382, ..., 2.236};
であり、iDelta() 内の全てのifを置き換えることができる。
if (Variant>0)
Fibo = arrFibo[ Variant];
else
Fibo = -arrFibo[-Variant];
書いてあるとおりにやったのですが、思うようにいきませんでした。まだ具体的にどこが悪いのかわかりません。プリントしないと......。
文字列がよくわからないのですが。
else Fibo = -arrFibo[-Variant];
書いていただいた通りにやったのですが、思うようにいきません~まだ何が悪いのかわかりません~印刷しないと・・・。
ラインについてはよくわからない。
else Fibo = -arrFibo[-Variant];
同じ場合、負のFibo値が必要なので、-arrFiboとなります。