MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 371 1...364365366367368369370371372373374375376377378...1953 新しいコメント Tretyakov Rostyslav 2017.11.09 07:33 #3701 フォーラムメンバーの皆様へご挨拶申し上げます。 どのチャートに設定しても、特定のシンボルでインジケータを動作させることができるようにするのを助けてください。 外部パラメータでシンボルを変更するのはわかるがinput string Symb ="GBPJPY"; 次に何をすればいいのかわからない インジケータを添付します ファイル: Fisher.mq4 3 kb YarTrade 2017.11.09 07:36 #3702 新しいバーが表示されたときにバッファーをリセットする方法を教えてください。ただし、以前のデータは消去されずにチャートに表示されます。な ぜかバッファをゼロにリセット できず、新しいバーが表示さ れると、古い蓄積データの上に新しいデータが重なって 表示されます。私のコードのどこが間違っているのでしょうか?分かりやすい説明ありがとうございます。void OnInit() { IndicatorDigits(0); SetIndexBuffer(0,Buf_1); SetIndexBuffer(1,Buf_2); Bid1=Bid; } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { datetime Вр=Time[0]; // Время текущего бара if(Вр>Время) // Если новый бар { Время=Вр; // Запомнить Buf_1[0]=0; // и обнулить последний элемент буфера Buf_2[0]=0; } if(Bid > Bid1) { V1 = iVolume(NULL, 0, 0); V2 = V1 + V2; Buf_1[0]= V2; } else { V3 = iVolume(NULL, 0, 0); V4 = V3 + V4; Buf_2[0]= (V4*-1); } Bid1=Bid; return(rates_total); } PokrovMT5 2017.11.09 09:01 #3703 Alekseu Fedotov: 然もありなん私はコードで質問を持って、それは閉鎖されていない現在のろうそくは、ろうそくが閉じるまで、インジケータは時間のろうそくが閉じられていないため、描画されるべきではない画面領域に赤い立っている期間の価格の閉鎖を、閉じて時間を持っていることが判明しました。それはコンパイル時間であり、その後コンパイルは、各閉じたろうそくの描画が来る、もちろんあなたは時間のバーを見つけることによって、別の方法を解決することができますが、私は簡単な方法を望んで、私は以前に書いたのでfor(i=limit; i>0; i--) { yesterday_weekday = TimeHour(iTime(Symbol(),0,i+1))-TimeHour(iTime(Symbol(),0,i)); if(yesterday_weekday!=0) 問題への他の解決策?コンパイル時に確認したいのですが、もっと簡単な解決策があればと思いました。 Konstantin Erin 2017.11.09 10:18 #3704 MakarFX: どのチャートに設定しても、特定のシンボルでインジケータが動作するようにしたいのですが、ご教授ください。彼らは時代遅れである、より良いiHigest、iLowestと 賞賛悪名高いフィッシャーすぐに引き分けに合意(V.Vysotsky)を呼び出すハイエスト、ローエストでこのパラメータを記述する必要があります。 Maxim Kuznetsov 2017.11.09 10:37 #3705 PokrovMT5:私はコードで質問を持って、それは閉鎖されていない現在の1時間のろうそくは、ろうそくが閉じるまで、インジケータが立っている期間の価格の閉鎖を描く、スクリーンショットの赤い領域は、1時間のろうそくが閉じていないため、描かれるべきではありませんクローズ時間を持っていることが判明しました。もちろん、1時間のバーを見つけることによって別の方法を解決することができますが、私はより簡単な方法を望んで、私は以前に書いた 問題に別の解決策はありますか?ありがとうございます。私の理解が正しければ、チャートに1時間ごとのCloseをマークしたいのですね?// (только для TF меньше часа) для всех свечей внутри часа поставить HourCloseBuff=цена закрытия часа// предполагается что close индексирован как тайм-серияfor(int back=i+1;back<=limit && TimeHour(time[back]==TimeHour(time[i+1]);back++) { HourCloseBuff[back]=close[i+1];} Tretyakov Rostyslav 2017.11.09 10:44 #3706 STARIJ:我々は、最高、最低の呼び出しにこのパラメータを書き込む必要があります - 彼らは時代遅れであり、より良いiHigest、iLowestと賞賛された悪名高いフィッシャーがすぐに引き分けに合意した(V.Vysotsky)。#property copyright "Copyright © 2005, Yura Prokofiev" #property link "Yura.prokofiev@gmail.com" #property indicator_separate_window #property indicator_buffers 3 #property indicator_color1 Black #property indicator_color2 Lime #property indicator_color3 Red input string Symb ="GBPJPY"; extern int period =10; double ExtBuffer0[]; double ExtBuffer1[]; double ExtBuffer2[]; int init() { SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,2,Red); SetIndexStyle(1,DRAW_HISTOGRAM,STYLE_SOLID,2,Lime); SetIndexStyle(2,DRAW_HISTOGRAM); IndicatorDigits(Digits+1); SetIndexBuffer(0,ExtBuffer0); SetIndexBuffer(1,ExtBuffer1); SetIndexBuffer(2,ExtBuffer2); IndicatorShortName("Fisher"); SetIndexLabel(1,NULL); SetIndexLabel(2,NULL); return(0); } int start() { //int period=10; int limit; int counted_bars=IndicatorCounted(); double prev,current,old; double Value=0,Value1=0,Value2=0,Fish=0,Fish1=0,Fish2=0; double price; double MinL=0; double MaxH=0; if(counted_bars>0) counted_bars--; limit=Bars-counted_bars; for(int i=0; i<limit; i++) { MaxH = High[iHighest(Symb,0,MODE_HIGH,period,i)]; MinL = Low[iLowest(Symb,0,MODE_LOW,period,i)]; price = (High[i]+Low[i])/2; Value = 0.33*2*((price-MinL)/(MaxH-MinL)-0.5) + 0.67*Value1; Value=MathMin(MathMax(Value,-0.999),0.999); ExtBuffer0[i]=0.5*MathLog((1+Value)/(1-Value))+0.5*Fish1; Value1=Value; Fish1=ExtBuffer0[i]; } bool up=true; for(i=limit-2; i>=0; i--) { current=ExtBuffer0[i]; prev=ExtBuffer0[i+1]; if (((current<0)&&(prev>0))||(current<0)) up= false; if (((current>0)&&(prev<0))||(current>0)) up= true; if(!up) { ExtBuffer2[i]=current; ExtBuffer1[i]=0.0; } else { ExtBuffer1[i]=current; ExtBuffer2[i]=0.0; } } return(0); } したのですが、それでは問題が解決しないので price = (High[i]+Low[i])/2; HighとLowは現在のシンボルを使用します。 PokrovMT5 2017.11.09 12:06 #3707 Maxim Kuznetsov:私の理解が正しければ、チャートに1時間ごとのCloseをマークしたいのですね?// (только для TF меньше часа) для всех свечей внутри часа поставить HourCloseBuff=цена закрытия часа// предполагается что close индексирован как тайм-серияfor(int back=i+1;back<=limit && TimeHour(time[back]==TimeHour(time[i+1]);back++) { HourCloseBuff[back]=close[i+1];}Maximさん、こんにちは!バリアントをありがとうございます、私のもほとんど同じで、それも動作します、しかしAlekseu Fedotovが それを提案し、私はそれについて書きました、それを修正するアイデアは何でしょうか?for(i=limit; i>=0; i--) { T = iTime(NULL,0,i); shift=iBarShift(NULL,60,T); C=iClose(NULL,60,shift); CC[i]=C; } YarTrade 2017.11.09 12:11 #3708 新しいバーが表示されたときにバッファをリセットする方法を教えてください。ただし、前のデータは消去されずにチャートに表示されます。な ぜかバッファをゼロにリセット できず、新しいバーが表示さ れると、古い蓄積データの上に新しいデータが重なって 表示されます。私のコードのどこが間違っているのでしょうか?分かりやすい説明ありがとうございます。 datetime Вр=Time[0]; // Время текущего бара if(Вр>Время) // Если новый бар { Время=Вр; // Запомнить Buf_1[0]=0; // и обнулить последний элемент буфера Buf_2[0]=0; } if(Bid > Bid1) { V1 = iVolume(NULL, 0, 0); V2 = V1 + V2; Buf_1[0]= V2; } else { V3 = iVolume(NULL, 0, 0); V4 = V3 + V4; Buf_2[0]= (V4*-1); } Bid1=Bid; return(rates_total); YarTrade 2017.11.09 12:17 #3709 誰も助けてくれないのか? danya-asg 2017.11.09 12:23 #3710 皆さん、ごきげんよう。正しいチャートウィンドウに切り替えるにはどうしたらいいですか? 異なるペアのウィンドウをたくさん開いていて、それぞれにEAがあり、取引シグナルが表示されますが、通貨はマザーファッカー次第で、シグナルが出た正確なチャートを素早くアクティブにする必要があります。Symbol() コマンドは知っているが、通貨ペアを指定してウィンドウをアクティブにする方法がわからない。もしかしたら、この課題に直面したことがある人もいるかもしれませんね。 1...364365366367368369370371372373374375376377378...1953 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
フォーラムメンバーの皆様へご挨拶申し上げます。
次に何をすればいいのかわからないどのチャートに設定しても、特定のシンボルでインジケータを動作させることができるようにするのを助けてください。
外部パラメータでシンボルを変更するのはわかるが
インジケータを添付します
新しいバーが表示されたときにバッファーをリセットする方法を教えてください。ただし、以前のデータは消去されずにチャートに表示されます。な ぜかバッファをゼロにリセット できず、新しいバーが表示さ れると、古い蓄積データの上に新しいデータが重なって 表示されます。私のコードのどこが間違っているのでしょうか?分かりやすい説明ありがとうございます。
然もありなん
問題への他の解決策?コンパイル時に確認したいのですが、もっと簡単な解決策があればと思いました。
彼らは時代遅れである、より良いiHigest、iLowestと 賞賛悪名高いフィッシャーすぐに引き分けに合意(V.Vysotsky)を呼び出すハイエスト、ローエストでこのパラメータを記述する必要があります。
私はコードで質問を持って、それは閉鎖されていない現在の1時間のろうそくは、ろうそくが閉じるまで、インジケータが立っている期間の価格の閉鎖を描く、スクリーンショットの赤い領域は、1時間のろうそくが閉じていないため、描かれるべきではありませんクローズ時間を持っていることが判明しました。もちろん、1時間のバーを見つけることによって別の方法を解決することができますが、私はより簡単な方法を望んで、私は以前に書いた
問題に別の解決策はありますか?
ありがとうございます。
私の理解が正しければ、チャートに1時間ごとのCloseをマークしたいのですね?
// (только для TF меньше часа) для всех свечей внутри часа поставить HourCloseBuff=цена закрытия часа
// предполагается что close индексирован как тайм-серия
for(int back=i+1;back<=limit && TimeHour(time[back]==TimeHour(time[i+1]);back++) {
HourCloseBuff[back]=close[i+1];
}
我々は、最高、最低の呼び出しにこのパラメータを書き込む必要があります - 彼らは時代遅れであり、より良いiHigest、iLowestと賞賛された悪名高いフィッシャーがすぐに引き分けに合意した(V.Vysotsky)。
HighとLowは現在のシンボルを使用します。
私の理解が正しければ、チャートに1時間ごとのCloseをマークしたいのですね?
// (только для TF меньше часа) для всех свечей внутри часа поставить HourCloseBuff=цена закрытия часа
// предполагается что close индексирован как тайм-серия
for(int back=i+1;back<=limit && TimeHour(time[back]==TimeHour(time[i+1]);back++) {
HourCloseBuff[back]=close[i+1];
}
Maximさん、こんにちは!バリアントをありがとうございます、私のもほとんど同じで、それも動作します、しかしAlekseu Fedotovが それを提案し、私はそれについて書きました、それを修正するアイデアは何でしょうか?
新しいバーが表示されたときにバッファをリセットする方法を教えてください。ただし、前のデータは消去されずにチャートに表示されます。な ぜかバッファをゼロにリセット できず、新しいバーが表示さ れると、古い蓄積データの上に新しいデータが重なって 表示されます。私のコードのどこが間違っているのでしょうか?分かりやすい説明ありがとうございます。
誰も助けてくれないのか?
皆さん、ごきげんよう。正しいチャートウィンドウに切り替えるにはどうしたらいいですか?
異なるペアのウィンドウをたくさん開いていて、それぞれにEAがあり、取引シグナルが表示されますが、通貨はマザーファッカー次第で、シグナルが出た正確なチャートを素早くアクティブにする必要があります。
Symbol() コマンドは知っているが、通貨ペアを指定してウィンドウをアクティブにする方法がわからない。もしかしたら、この課題に直面したことがある人もいるかもしれませんね。