初心者の方からの質問 MQL4 MT4 MetaTrader 4 - ページ 227 1...220221222223224225226227228229230231232233234...260 新しいコメント Aleksei Stepanenko 2020.12.11 19:47 #2261 ハイ、問題はゼロクロスではなく、あるバッファから別のバッファへのクロスにあると思われます。あるバーでシグナルが終了し、次のバーでシグナルがすでに別のバッファにある場合、隣接する2つのバーの間にどのような色を表示させたいですか?明確ではありません。 欲を言えば、黄色いラインで3つ目のバッファーを作って、この2つの下に置くと綺麗ですねー。 Grigori.S.B 2020.12.11 20:02 #2262 Aleksei Stepanenko:ハイ、問題はゼロクロスではなく、あるバッファから別のバッファへのクロスにあると思われます。あるバーでシグナルが終了し、次のバーでシグナルがすでに別のバッファにある場合、隣接する2つのバーの間にどのような色を表示させたいですか?明確ではありません。 なんなら、黄色い線で3つ目のバッファを作って、この2つの下に置くと、きれいですよ Alexeyさん、ありがとうございます。 3色も必要ない、2色で十分だ。空いたスペースは前の色の線で描いてほしい。あるバーで信号が終わり、次のバーで信号が別のバッファに ある」という意味がよくわかりません。各バーで、バッファの1つに値があるので、チャートにも表示されるはずなのですが、何か見落としているのでしょうか? Aleksei Stepanenko 2020.12.11 20:12 #2263 見てください、時間はチャート上では不連続で、最小単位は1バールです。つまり、いわば小節間の部分的な時間がないのである。レンダリングを棒グラフに置き換えると、2本の棒、つまり色の異なる2本の棒ができます。しかし、二人の間には何もない。そして、同じバッファの値を結び、異なるバッファの値を結ばないような線が引かれている(そのような性質が作られている)。だから、穴があいているのです。 もし、美しさを求めるのであれば、両方のバッファで終了値をオーバーラップさせて与えてみるとよいでしょう。新しいバッファに信号を送っても、古い方のバーには信号が送られます。 しかし、そのようなインジケータからExpert Advisorに 信号を取り込むと、不正確なものになります。 あるいはヒストグラムがあれば、余計な手間がかからず良い。棒グラフに一票。 Iurii Tokman 2020.12.11 20:29 #2264 Grigori.S.B:Alexeiさん、ありがとうございました。3色も必要ない、2色で十分だ。空いたスペースは前の色の線で描いてほしい。あるバーで信号が終了し、次のバーで信号がすでに別のバッファに ある」という意味がよくわかりません。各バーで、バッファの1つに値がある場合、それはチャートに表示されるべきということです。それとも、私は何かを見逃しているのでしょうか? 一方のバッファを無条件で残し、もう一方のバッファに条件付でオーバーレイさせる #property strict #property indicator_separate_window #property indicator_buffers 2 #property indicator_color1 clrGreen #property indicator_color2 clrRed //---- input parameters extern int FastEMA=12; extern int SlowEMA=26; extern int Signal=9; //---- buffers double DiffBuffer_up[]; double DiffBuffer_dn[]; // double MainBuffer[]; double SignalBuffer[]; ENUM_TIMEFRAMES TimeFrame; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { int draw_begin=MathMax(FastEMA,SlowEMA); string short_name="MACD Stephen"; //---- indicators SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0,DiffBuffer_up); SetIndexStyle(1,DRAW_LINE); SetIndexBuffer(1,DiffBuffer_dn); short_name=StringConcatenate(short_name," ("+(string)FastEMA+","+(string)SlowEMA+","+(string)Signal+")"); IndicatorShortName(short_name); SetIndexDrawBegin(0,draw_begin); SetIndexDrawBegin(1,draw_begin); SetIndexLabel(0,"Up"); SetIndexLabel(1,"Down"); IndicatorDigits(6); SetLevelValue(0,0); TimeFrame=GetTF(); return(0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int limit, iChart, iTF, delta=0; datetime TimeArray[]; //if(TimeFrame>Period()) delta=(int)MathCeil(TimeFrame/Period()); int counted_bars=IndicatorCounted(); //---- check for possible errors if(counted_bars<0) return(-1); //---- the last counted bar will be recounted if(counted_bars>0) counted_bars--; limit=Bars-counted_bars+delta; ArrayCopySeries(TimeArray,MODE_TIME,Symbol(),TimeFrame); ArraySetAsSeries(MainBuffer,true); ArraySetAsSeries(SignalBuffer,true); ArrayResize(MainBuffer, 100000); ArrayResize(SignalBuffer,100000); iTF=0; for(iChart=0; iChart<limit; iChart++) { while(Time[iChart]<TimeArray[iTF]) iTF++; MainBuffer[iChart]=EMPTY_VALUE; SignalBuffer[iChart]=EMPTY_VALUE; MainBuffer[iChart] =iMACD(Symbol(),TimeFrame,FastEMA,SlowEMA,Signal,PRICE_CLOSE,MODE_MAIN,iTF); SignalBuffer[iChart]=iMACD(Symbol(),TimeFrame,FastEMA,SlowEMA,Signal,PRICE_CLOSE,MODE_SIGNAL,iTF); double diff=MainBuffer[iChart]-SignalBuffer[iChart]; DiffBuffer_up[iChart]=diff; if (diff>0) //{ DiffBuffer_dn[iChart]=diff; //DiffBuffer_dn[iChart]=EMPTY_VALUE; //} //else { //DiffBuffer_up[iChart]=EMPTY_VALUE; //} } return(0); } Grigori.S.B 2020.12.11 21:05 #2265 Aleksei Stepanenko:見てください、時間はチャート上では不連続で、最小単位は1バールです。つまり、いわば小節間の部分的な時間がないのである。レンダリングを棒グラフに置き換えると、2本の棒、つまり色の異なる2本の棒ができます。しかし、二人の間には何もない。そして、同じバッファの値を結び、異なるバッファの値を結ばないような線が引かれている(そのような性質が作られている)。だから、穴があいているのです。もし、美しさを求めるのであれば、両方のバッファで終了値をオーバーラップさせて与えてみるとよいでしょう。新しいバッファに信号を送っても、古い方のバーには信号が送られます。しかし、そのようなインジケータからExpert Advisorに 信号を取り込むと、不正確なものになります。あるいはヒストグラムがあれば、余計な手間がかからず良い。棒グラフに一票。 アレクセイに心から 感謝します。 これで頭の中まで整理がつきました。自分でもできたが、その後のユーリのアドバイスのように短く、エレガントにはできない。 Grigori.S.B 2020.12.11 21:06 #2266 Iurii Tokman:一方のバッファを無条件に残し、もう一方のバッファに条件をつけてオーバーレイさせる ユーリ、脱帽です。 このようなエレガントで簡潔なソリューションは、私には想像もできませんでした。 Iurii Tokman 2020.12.11 21:15 #2267 Grigori.S.B:ユーリ、脱帽です。これほどまでにエレガントで簡潔なソリューションは想像もできませんでした。 それは私の考えではありませんでした、ここでフォーラムで、同様にあなたが学んだように コードベースのソリューションの多く、およびだけでなく、そのような Aleksei Stepanenko 2020.12.11 21:44 #2268 Grigori.S.B: ありがとうございました。 darirunu1 2020.12.13 10:59 #2269 なぜ私の質問は無視され続けるのでしょうか? Iurii Tokman 2020.12.13 12:28 #2270 darirunu1: なぜ私の質問は無視され続けるのでしょうか? は、質問内容によって異なりますが...。 1...220221222223224225226227228229230231232233234...260 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
ハイ、問題はゼロクロスではなく、あるバッファから別のバッファへのクロスにあると思われます。あるバーでシグナルが終了し、次のバーでシグナルがすでに別のバッファにある場合、隣接する2つのバーの間にどのような色を表示させたいですか?明確ではありません。
欲を言えば、黄色いラインで3つ目のバッファーを作って、この2つの下に置くと綺麗ですねー。
ハイ、問題はゼロクロスではなく、あるバッファから別のバッファへのクロスにあると思われます。あるバーでシグナルが終了し、次のバーでシグナルがすでに別のバッファにある場合、隣接する2つのバーの間にどのような色を表示させたいですか?明確ではありません。
なんなら、黄色い線で3つ目のバッファを作って、この2つの下に置くと、きれいですよ
Alexeyさん、ありがとうございます。
3色も必要ない、2色で十分だ。空いたスペースは前の色の線で描いてほしい。あるバーで信号が終わり、次のバーで信号が別のバッファに ある」という意味がよくわかりません。各バーで、バッファの1つに値があるので、チャートにも表示されるはずなのですが、何か見落としているのでしょうか?
見てください、時間はチャート上では不連続で、最小単位は1バールです。つまり、いわば小節間の部分的な時間がないのである。レンダリングを棒グラフに置き換えると、2本の棒、つまり色の異なる2本の棒ができます。しかし、二人の間には何もない。そして、同じバッファの値を結び、異なるバッファの値を結ばないような線が引かれている(そのような性質が作られている)。だから、穴があいているのです。
もし、美しさを求めるのであれば、両方のバッファで終了値をオーバーラップさせて与えてみるとよいでしょう。新しいバッファに信号を送っても、古い方のバーには信号が送られます。
しかし、そのようなインジケータからExpert Advisorに 信号を取り込むと、不正確なものになります。
あるいはヒストグラムがあれば、余計な手間がかからず良い。棒グラフに一票。
Alexeiさん、ありがとうございました。
3色も必要ない、2色で十分だ。空いたスペースは前の色の線で描いてほしい。あるバーで信号が終了し、次のバーで信号がすでに別のバッファに ある」という意味がよくわかりません。各バーで、バッファの1つに値がある場合、それはチャートに表示されるべきということです。それとも、私は何かを見逃しているのでしょうか?
一方のバッファを無条件で残し、もう一方のバッファに条件付でオーバーレイさせる
見てください、時間はチャート上では不連続で、最小単位は1バールです。つまり、いわば小節間の部分的な時間がないのである。レンダリングを棒グラフに置き換えると、2本の棒、つまり色の異なる2本の棒ができます。しかし、二人の間には何もない。そして、同じバッファの値を結び、異なるバッファの値を結ばないような線が引かれている(そのような性質が作られている)。だから、穴があいているのです。
もし、美しさを求めるのであれば、両方のバッファで終了値をオーバーラップさせて与えてみるとよいでしょう。新しいバッファに信号を送っても、古い方のバーには信号が送られます。
しかし、そのようなインジケータからExpert Advisorに 信号を取り込むと、不正確なものになります。
あるいはヒストグラムがあれば、余計な手間がかからず良い。棒グラフに一票。
アレクセイに心から 感謝します。
これで頭の中まで整理がつきました。自分でもできたが、その後のユーリのアドバイスのように短く、エレガントにはできない。
一方のバッファを無条件に残し、もう一方のバッファに条件をつけてオーバーレイさせる
ユーリ、脱帽です。
このようなエレガントで簡潔なソリューションは、私には想像もできませんでした。
ユーリ、脱帽です。
これほどまでにエレガントで簡潔なソリューションは想像もできませんでした。
それは私の考えではありませんでした、ここでフォーラムで、同様にあなたが学んだように
コードベースのソリューションの多く、およびだけでなく、そのような
ありがとうございました。
なぜ私の質問は無視され続けるのでしょうか?
は、質問内容によって異なりますが...。