コーディングのヘルプ - ページ 287 1...280281282283284285286287288289290291292293294...786 新しいコメント airquest 2014.06.03 02:01 #2861 airquest: こんにちは、ストキャスティクスの本線のx期間の最高値と最低値をバッファに取り出そうとしています。その値をArrayにする必要があるとどこかで読んだのですが、うまくいきません。今のところ、このコードで行き詰っています。私は正しくやっているのでしょうか、誰かこれを助けてくれますか?どうもありがとうございました。よろしくお願いします。 double num_array[1]={iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,CustomPeriod)}; int gmax=ArrayMaximum(num_array[1],WHOLE_ARRAY,0); int gmin=ArrayMinimum(num_array[1],WHOLE_ARRAY,0); MinBuffer=gmin; MaxBuffer=gmax; 大丈夫です、答えが見つかりました...。iStochasticをバッファリングし、ArraySetAsSeriesで系列に値を設定し、その系列のArrayMaximumを行う. Mladen Rakic 2014.06.03 04:13 #2862 airquest: 大丈夫です、答えが見つかりました...。iStochasticをバッファリングし、ArraySetAsSeriesで値をシリーズに設定し、そのシリーズのArrayMaximumを実行する. 置き換える ArrayMaximum(num_array[1],WHOLE_ARRAY,0)。 ArrayMinimum(num_array[1],WHOLE_ARRAY,0); と ArrayMaximum(num_array,WHOLE_ARRAY,0); ArrayMinimum(num_array,WHOLE_ARRAY,0)。 sebatian 2014.06.03 20:30 #2863 zigflip: 申し訳ありません私の悪い、まだ正しいものを使用している間、それらを混合したすでにdojh! バカなmetaquotesはeverythiungを変えるために そのような経験をしているのは、あなただけではありません。 これは、ユーザーフレンドリーではありません razo 2014.06.03 23:40 #2864 こんにちは、Coders & Crackersです。 ZigZag on Close インジケータ(添付)の修正について、専門知識を必要とします。 私は、代わりにZigZag on Openを必要としています(同じ基本設定)。新しいローソク足のオープンにアラートを出すと、いい感じになります(可能であれば)。 とても感謝しています。 ファイル: zigzagclose.mq4 7 kb William Snyder 2014.06.04 00:32 #2865 razo: こんにちは、コーダー&クラッカーです。ZigZag on Close インジケータ(添付)の修正について、専門知識を必要としています。 代わりにZigZag on Openが必要です(基本設定は同じです)。可能であれば)新しいローソク足のオープンにアラートを出すといい感じです。 とても感謝しています。 こんにちは、Razoさん、これがジグザグ・オープンです。 ファイル: zigzagopen.mq4 7 kb AZRUL FYZEE AZMI 2014.06.05 03:21 #2866 こんにちは、Guruの皆さん。 iCustomで添付のようなインジケータを使用していますが、問題があります。#VQ bars. どなたか、次のバッファの値を抽出する方法を教えていただけませんか。 以下のコードを使用してバッファを抽出しますが、何の値も返されません.... double dir=iCustom(NULL,PERIOD_M1, "#VQ bars",4,0); どなたか、この件について調べていただけないでしょうか...。 あなたの助けとアシスタントを高く評価します...。 #property indicator_chart_window #プロパティ indicator_buffers 2 #property indicator_color1 グリーン #property indicator_color2 Red(インジケーターカラー2 レッド #プロパティ indicator_width1 2 #property indicator_width2 2 プロパティ インジケータ幅2 extern int Length = 5; extern int Method = 3; extern int Smoothing = 1; extern int Filter = 5; extern bool Steady = false; double VQ[]; double SumVQ[]; double DIR[]; double UpBuffer[]; double DnBuffer[]; //+------------------------------------------------------------------+ int init() { IndicatorBuffers(5); SetIndexStyle(0,DRAW_HISTOGRAM).SetIndexBuffer(0,UpBuffer);。 SetIndexBuffer(0,UpBuffer)。 SetIndexStyle(1,DRAW_HISTOGRAM)。 SetIndexBuffer(1,DnBuffer)を設定します。 SetIndexBuffer(2,SumVQ)を設定します。 SetIndexBuffer(3,VQ)を設定します。 SetIndexBuffer(4,DIR)を設定します。 if (Length < 2) Length = 2; if (メソッド < 0) メソッド = 0; if (メソッド > 3) メソッド = 3; if (Smoothing < 0) Smoothing = 0; if (Filter < 0) Filter = 0; string short_name = "VQ|"+長さ + " , " + "。 メソッド + " , " + スムージング + " , " + フィルタ + " | "; IndicatorShortName(short_name)。 SetIndexEmptyValue(0, 0.0)を設定します。 SetIndexEmptyValue(1, 0.0).SetIndexEmptyValue(1,0.0)。 SetIndexEmptyValue(2, 0.0)を設定します。 SetIndexEmptyValue(3, 0.0)を設定する。 return(0) とします。 } //+------------------------------------------------------------------+ int start() { double MH = 0, ML = 0, MO = 0, MC = 0, MC1 = 0; int i, j, limit, counted_bars=IndicatorCounted(); //---- エラーの可能性をチェックする if(counted_bars<0) return(-1); //---- 最後にカウントされたバーが再カウントされる if(counted_bars>0) counted_bars--; //---- if(counted_bars<1) i=Bars-Length-1.if(counted_bars<1)となります。 else i=Bars-counted_bars; if(counted_bars<1) { j=Bars-Length-1。 SumVQ[j + 1] = Close[j + 1]; } while (i >= 0) { MH = iMA(NULL,0,Length,0,Method,PRICE_HIGH,i)となります。 ML = iMA(NULL,0,Length,0,Method,PRICE_LOW,i); ML = iMA(NULL,0,Length,0,Method,PRICE_LOW,i); MO = iMA(NULL,0,Length,0,Method,PRICE_OPEN,i); ML = iMA(NULL,0,Length,0,Method,PRICE_LOW,i); MC = iMA(NULL,0,Length,0,Method,PRICE_CLOSE,i); MC2 = iMA(NULL,0,Length,0,Method,PRICE_CLOSE,i); MC1 = iMA(NULL,0,Length,0,Method,PRICE_CLOSE,i+Smoothing); MC1 = iMA(NULL,0,Length,0,Method,PRICE_CLOSE,i+Smoothing); if (Steady==true) { MC=iMA(NULL,0,Length,0,Method,PRICE_MEDIAN,i); MC1=iMA(NULL,0,Length,0,Method,PRICE_MEDIAN,i+Smoothing); if((MH - ML)>0) VQ = MathAbs(((MC - MC1) / MathMax(MH - ML, MathMax(MH - MC1, MC1 - ML)))+ (MC - MO) / (MH - ML))* 0.5) * ((MC - MC1 + (MC - MO))* 0.5); SumVQ = SumVQ + VQ; if (フィルタ > 0) if (MathAbs(SumVQ - SumVQ) < フィルタ * ポイント) SumVQ = SumVQ; i--; } if(counted_bars<1) limit=Bars-Length-1; else limit=Bars-counted_bars; for (i = limit-1; i >= 0; i--) { if (SumVQ > SumVQ) DIR = 1; if (SumVQ < SumVQ) DIR = -1; if (SumVQ== SumVQ) DIR = DIR; if (DIR > 0) { UpBuffer = High; DnBuffer = Low。 } さもなくば if (DIR < 0) { DnBuffer = High; UpBuffer = Low。 } } return(0); } Mladen Rakic 2014.06.05 04:35 #2867 12BPRO: こんにちは、Guruの皆さん。iCustomで、添付のような以下のインジケーターで問題が発生しています...。#VQ bars. どなたか、次のバッファの値を抽出する方法を教えてください...DIR[]。 以下のコードを使用してバッファを抽出しますが、何の値も返されません.... double dir=iCustom(NULL,PERIOD_M1, "#VQ bars",4,0); どなたかこの件に関して調べていただけないでしょうか。 あなたの助けとアシスタントに感謝します。 すべて問題ないようです。 VQバーと、その値を使ったテストインディケータを添付しますが、正しい値を示しています。 vq_bars.mq4 _test_vq.mq4 ファイル: vq_bars_test.gif 74 kb vq_bars.mq4 3 kb _test_vq.mq4 1 kb AZRUL FYZEE AZMI 2014.06.05 06:22 #2868 mladen: VQバーと、その値を使ったテストインディケータを添付していますが、正しい値を示しています。 vq_bars.mq4 _test_vq.mq4 うわぁ...MLADENさん、ありがとうございます。 そのコードは私のインジケータでは動作しません...エラーログを開くことができません...。 でも、#VQバーでテストしたら、ちゃんと動きました。 このために数時間を無駄にしました・・・。 なんて言ったらいいんだろう...。このことを解決してくれてありがとうございました...。 これが私の#VQです......。 値があるのに、EAでiCustomを呼び出すと値がない......なんというか......バカですね......。 ファイル: gbpjpy_test.jpg 123 kb my_vq.jpg 48 kb tester_error.jpg 59 kb AZRUL FYZEE AZMI 2014.06.05 07:27 #2869 親愛なるMLADEN様。 私の#VQ...インジケータを調べていただけませんか?使わない行をいくつか削除し、いくつかのアラートを追加しました。 iCustom経由でEAにバッファをCALLできないのは、それが原因かもしれません。 あなたのHELPはもう一度非常に高く評価されます.... 本当にありがとうございます。 AZRULです......。 #property indicator_chart_window #プロパティ indicator_buffers 2 #property indicator_color1 グリーン #プロパティ indicator_color2 赤 #property indicator_width1 2 (プロパティ インジケータ幅1 2) #プロパティ indicator_width2 2 extern int Length = 5; extern int Method = 3; extern int Smoothing = 1; extern double Filter = 0.5; extern bool Steady = False; extern string SoundGbp = "news.wav"; extern string SoundEur = "news.wav".外部文字列SoundEur = "news.wav"。 extern bool PopupAlert = true; extern bool SendPushNotification = false; extern bool SoundAlert = True; int lastAlert=3; double VQ[]; double SumVQ[]; double DIR[]; double UpBuffer[]; double DnBuffer[]; //+------------------------------------------------------------------+ int init() { IndicatorBuffers(5); SetIndexStyle(0,DRAW_HISTOGRAM).SetIndexBuffer(0,UpBuffer);。 SetIndexBuffer(0,UpBuffer)。 SetIndexStyle(1,DRAW_HISTOGRAM)。 SetIndexBuffer(1,DnBuffer)を設定します。 SetIndexBuffer(2,SumVQ)を設定します。 SetIndexBuffer(3,VQ)を設定します。 SetIndexBuffer(4,DIR)を設定します。 if (Length < 2) Length = 2; if (メソッド < 0) メソッド = 0; if (メソッド > 3) メソッド = 3; if (Smoothing < 0) Smoothing = 0; if (Filter < 0) Filter = 0; string short_name = "VQ|"+長さ + " , " + "。 メソッド + " , " + スムージング + " , " + フィルタ + " | "; IndicatorShortName(short_name)。 SetIndexEmptyValue(0, 0.0)を設定します。 SetIndexEmptyValue(1, 0.0).SetIndexEmptyValue(1,0.0)。 SetIndexEmptyValue(2, 0.0)を設定します。 SetIndexEmptyValue(3, 0.0)を設定する。 return(0) とします。 } //+------------------------------------------------------------------+ int start() { int i, limit, counted_bars=IndicatorCounted(); //エラーの可能性をチェック if(counted_bars<0) return(-1); //---- 最後にカウントされたバーが再カウントされる if(counted_bars>0) counted_bars--; //---- if(counted_bars<1) i=Bars-Length.If(counted_bars<1)。 else i=Bars-counted_bars; if(counted_bars<1) while (i >= 0) { VQ = iCustom(NULL,0, "#pollan indy",0,i+1).SumVQ=iCustom(NULL,0,0,0)。 SumVQ= iCustom(NULL,0, "#pollan indy",1,i+1); //if (フィルタ > 0) //if (MathAbs(VQ - SumVQ) < Filter) //VQ = SumVQ; i--; } if(counted_bars<1) limit=Bars-Length-1; else limit=Bars-counted_bars; for (i = limit-1; i >= 0; i--) { //if (VQ > SumVQ) DIR = 1; if ((VQ+VQ) > (SumVQ+SumVQ)) DIR = 1; if ((VQ+VQ) < (SumVQ+SumVQ)) DIR = -1; if ((VQ+VQ) == (SumVQ+SumVQ)) DIR = DIR。 if (DIR > 0) { UpBuffer = High; DnBuffer = Low。 } さもなくば if (DIR < 0) { DnBuffer = High; UpBuffer = Low。 } if ((DIR > 0) && (DIR > 0)) { CheckForAlerts(OP_BUY);//ALERT BUY } if ((DIR < 0) && (DIR < 0)) { CheckForAlerts(OP_SELL);//ALERT SELL } } double vq1=iCustom(NULL,0, "#pollan indy",0,i+1); double svq1=iCustom(NULL,0, "#pollan indy",1,i+1);//double vq2=iCustom(NULL,0, "#pollan indy",1,i+1); double vq2=iCustom(NULL,0, "#pollan indy",0,i+2); double vq2=iCustom(NULL,0, "#pollan indy",0,i+3); double svq2=iCustom(NULL,0, "#pollan indy",1,i+2); double vq3=iCustom(NULL,0, "#pollan indy",1,i+2); double vq3=iCustom(NULL,0, "#pollan indy",0,i+3); double svq3=iCustom(NULL,0, "#pollan indy",0,i+3); double svq3=iCustom(NULL,0, "#pollan indy",1,i+3); double dir1=DIR; double dir2=DIR; double dir3=DIR; double vq0= (vq1 + vq2); double svq0= (svq1 + svq2); 文字列VQ0_Teks=DoubleToStr(vq0,6); string VQS0_Teks=DoubleToStr(svq0,6); string VQ1_Teks=DoubleToStr(svq0,6); string VQ1_Teks=DoubleToStr(vq1,6); string VQS1_Teks=DoubleToStr(vq1,6); string VQS1_Teks=DoubleToStr(svq1,6); string VQS1_Teks=DoubleToStr(svq1,6); string VQ2_Teks=DoubleToStr(vq2,6); string VQS2_Teks=DoubleToStr(vq2,6); string VQS2_Teks=DoubleToStr(svq2,6); string VQ3_Teks=DoubleToStr(svq2,6); string VQ3_Teks=DoubleToStr(vq3,6); string VQS3_Teks=DoubleToStr(vq3,6); string VQS3_Teks=DoubleToStr(svq3,6); string VQS3_Teks=DoubleToStr(svq3,6); 文字列dir1_Teks=DoubleToStr(dir1,6); 文字列dir2_Teks=DoubleToStr(dir2,6); 文字列dir3_Teks=DoubleToStr(dir3,6); 文字列 h = "青" + " + VQ0_Teks+ " + " 赤" + " + VQS0_Teks + "\n" + "青" + " " + VQS0_Teks "青" + " + VQ1_Teks+ " " + "赤" + " + VQS1_Teks + "\n" + "です。 "青」+「」+VQ2_Teks+ 「」+「赤」+「」+VQS2_Teks+「 \n」+「」。 "青」+「」+VQ3_Teks+ 「」+「赤」+「」+VQS3_Teks+「」+「」+VQS3_Teks+「」+「」+「」+VQS3_Teks "DIR1" + " + dir1_Teks+" " + "DIR2" + " + dir2_Teks + " + "DIR3" + " + dir3_Teks; コメント(h); return(0); } //-------------------------------------------------------------- void CheckForAlerts(int type) { //アラート static datetime lastAlertTime=0; if (lastAlertTime != iTime(NULL,0,0)) { { if (type==OP_BUY && lastAlert! if (type==OP_BUY && lastAlert!=2) { //BUY doAlerts("Pollan BAR UP "+Symbol()+" (tf: "+Period() +")",SoundEur); lastAlert=2; lastAlertTime=iTime(NULL,0,0)。 } if (type==OP_SELL && lastAlert!=1) { //SELL doAlerts("Pollan BAR DOWN "+Symbol()+" (tf: "+Period() +")",SoundGbp); lastAlert=1; lastAlertTime=iTime(NULL,0,0)。 } }//if (lastAlertTime != iTime(NULL,0,0)) { }//f (lastAlertTime != iTime(NULL,0,0)) { //end ALERTS //エンドアラート } //-------------------------------------------------------------- void doAlerts(string sMsg,string SoundFile) { }. if (PopupAlert) Alert(sMsg); if(SoundAlert)PlaySound(SoundFile)。 if(SendPushNotification)SendNotification(sMsg)。 } THANKS.........。 Coding help [警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 エリート指標 :) Mladen Rakic 2014.06.05 07:52 #2870 12BPRO: 親愛なるMLADEN。私の#VQ...インジケータをPLEASEで調べてもらえませんか...。使わない行をいくつか削除し、いくつかのアラートを追加しました。 iCustom経由でEAにバッファをCALLできないのは、それが原因かもしれません。 あなたのHELPはもう一度非常に高く評価されます.... 本当にありがとうございます。 AZRULです......。 #property indicator_chart_window #プロパティ indicator_buffers 2 #property indicator_color1 グリーン #プロパティ indicator_color2 赤 #property indicator_width1 2 (プロパティ インジケータ幅1 2) #プロパティ indicator_width2 2 extern int Length = 5; extern int Method = 3; extern int Smoothing = 1; extern double Filter = 0.5; extern bool Steady = False; extern string SoundGbp = "news.wav"; extern string SoundEur = "news.wav".外部文字列SoundEur = "news.wav"。 extern bool PopupAlert = true; extern bool SendPushNotification = false; extern bool SoundAlert = True; int lastAlert=3; double VQ[]; double SumVQ[]; double DIR[]; double UpBuffer[]; double DnBuffer[]; //+------------------------------------------------------------------+ int init() { IndicatorBuffers(5); SetIndexStyle(0,DRAW_HISTOGRAM).SetIndexBuffer(0,UpBuffer);。 SetIndexBuffer(0,UpBuffer)。 SetIndexStyle(1,DRAW_HISTOGRAM)。 SetIndexBuffer(1,DnBuffer)を設定します。 SetIndexBuffer(2,SumVQ)を設定します。 SetIndexBuffer(3,VQ)を設定します。 SetIndexBuffer(4,DIR)を設定します。 if (Length < 2) Length = 2; if (メソッド < 0) メソッド = 0; if (メソッド > 3) メソッド = 3; if (Smoothing < 0) Smoothing = 0; if (Filter < 0) Filter = 0; string short_name = "VQ|"+長さ + " , " + "。 メソッド + " , " + スムージング + " , " + フィルタ + " | "; IndicatorShortName(short_name)。 SetIndexEmptyValue(0, 0.0)を設定します。 SetIndexEmptyValue(1, 0.0).SetIndexEmptyValue(1,0.0)。 SetIndexEmptyValue(2, 0.0)を設定します。 SetIndexEmptyValue(3, 0.0)を設定する。 return(0) とします。 } //+------------------------------------------------------------------+ int start() { int i, limit, counted_bars=IndicatorCounted(); //エラーの可能性をチェック if(counted_bars<0) return(-1); //---- 最後にカウントされたバーが再カウントされる if(counted_bars>0) counted_bars--; //---- if(counted_bars<1) i=Bars-Length.If(counted_bars<1)。 else i=Bars-counted_bars; if(counted_bars<1) while (i >= 0) { VQ = iCustom(NULL,0, "#pollan indy",0,i+1).SumVQ=iCustom(NULL,0,0,0)。 SumVQ= iCustom(NULL,0, "#pollan indy",1,i+1); //if (フィルタ > 0) //if (MathAbs(VQ - SumVQ) < Filter) //VQ = SumVQ; i--; } if(counted_bars<1) limit=Bars-Length-1; else limit=Bars-counted_bars; for (i = limit-1; i >= 0; i--) { //if (VQ > SumVQ) DIR = 1; if ((VQ+VQ) > (SumVQ+SumVQ)) DIR = 1; if ((VQ+VQ) < (SumVQ+SumVQ)) DIR = -1; if ((VQ+VQ) == (SumVQ+SumVQ)) DIR = DIR。 if (DIR > 0) { UpBuffer = High; DnBuffer = Low。 } さもなくば if (DIR < 0) { DnBuffer = High; UpBuffer = Low。 } if ((DIR > 0) && (DIR > 0)) { CheckForAlerts(OP_BUY);//ALERT BUY } if ((DIR < 0) && (DIR < 0)) { CheckForAlerts(OP_SELL);//ALERT SELL } } double vq1=iCustom(NULL,0, "#pollan indy",0,i+1); double svq1=iCustom(NULL,0, "#pollan indy",1,i+1);//double vq2=iCustom(NULL,0, "#pollan indy",1,i+1); double vq2=iCustom(NULL,0, "#pollan indy",0,i+2); double vq2=iCustom(NULL,0, "#pollan indy",0,i+3); double svq2=iCustom(NULL,0, "#pollan indy",1,i+2); double vq3=iCustom(NULL,0, "#pollan indy",1,i+2); double vq3=iCustom(NULL,0, "#pollan indy",0,i+3); double svq3=iCustom(NULL,0, "#pollan indy",0,i+3); double svq3=iCustom(NULL,0, "#pollan indy",1,i+3); double dir1=DIR; double dir2=DIR; double dir3=DIR; double vq0= (vq1 + vq2); double svq0= (svq1 + svq2); 文字列VQ0_Teks=DoubleToStr(vq0,6); string VQS0_Teks=DoubleToStr(svq0,6); string VQ1_Teks=DoubleToStr(svq0,6); string VQ1_Teks=DoubleToStr(vq1,6); string VQS1_Teks=DoubleToStr(vq1,6); string VQS1_Teks=DoubleToStr(svq1,6); string VQS1_Teks=DoubleToStr(svq1,6); string VQ2_Teks=DoubleToStr(vq2,6); string VQS2_Teks=DoubleToStr(vq2,6); string VQS2_Teks=DoubleToStr(svq2,6); string VQ3_Teks=DoubleToStr(svq2,6); string VQ3_Teks=DoubleToStr(vq3,6); string VQS3_Teks=DoubleToStr(vq3,6); string VQS3_Teks=DoubleToStr(svq3,6); string VQS3_Teks=DoubleToStr(svq3,6); 文字列dir1_Teks=DoubleToStr(dir1,6); 文字列dir2_Teks=DoubleToStr(dir2,6); 文字列dir3_Teks=DoubleToStr(dir3,6); 文字列 h = "青" + " + VQ0_Teks+ " + " 赤" + " + VQS0_Teks + "\n" + "青" + " " + VQS0_Teks "青" + " + VQ1_Teks+ " " + "赤" + " + VQS1_Teks + "\n" + "です。 "青」+「」+VQ2_Teks+ 「」+「赤」+「」+VQS2_Teks+「 \n」+「」。 "青」+「」+VQ3_Teks+ 「」+「赤」+「」+VQS3_Teks+「」+「」+「」+VQS3_Teks+「」+「」+VQS3_Teks "DIR1" + " + dir1_Teks+" " + "DIR2" + " + dir2_Teks + " + "DIR3" + " + dir3_Teks; コメント(h); return(0); } //-------------------------------------------------------------- void CheckForAlerts(int type) { //アラート static datetime lastAlertTime=0; if (lastAlertTime != iTime(NULL,0,0)) { { if (type==OP_BUY && lastAlert! if (type==OP_BUY && lastAlert!=2) { //BUY doAlerts("Pollan BAR UP "+Symbol()+" (tf: "+Period() +")",SoundEur); lastAlert=2; lastAlertTime=iTime(NULL,0,0)。 } if (type==OP_SELL && lastAlert!=1) { //SELL doAlerts("Pollan BAR DOWN "+Symbol()+" (tf: "+Period()+")",SoundGbp); lastAlert=1; lastAlertTime=iTime(NULL,0,0)。 } }//if (lastAlertTime != iTime(NULL,0,0)) { }//f (lastAlertTime != iTime(NULL,0,0)) { //end ALERTS //エンドアラート } //-------------------------------------------------------------- void doAlerts(string sMsg,string SoundFile) { }. if (PopupAlert) Alert(sMsg); if(SoundAlert) PlaySound(SoundFile)。 if(SendPushNotification) SendNotification(sMsg)。 } thanks............ 。 "#ポラン・インディ "を使うように変更したんですね。 私はそのインジケータが何をするか分からない(それが他の "ポラン "インジケータのようであれば、それは再描画し、それがあなたの問題を引き起こす可能性がありますが、ちょうど今推測ゲームを行っています)。 1...280281282283284285286287288289290291292293294...786 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
こんにちは、ストキャスティクスの本線のx期間の最高値と最低値をバッファに取り出そうとしています。その値をArrayにする必要があるとどこかで読んだのですが、うまくいきません。今のところ、このコードで行き詰っています。私は正しくやっているのでしょうか、誰かこれを助けてくれますか?どうもありがとうございました。よろしくお願いします。
double num_array[1]={iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,CustomPeriod)};
int gmax=ArrayMaximum(num_array[1],WHOLE_ARRAY,0);
int gmin=ArrayMinimum(num_array[1],WHOLE_ARRAY,0);
MinBuffer=gmin;
MaxBuffer=gmax;
大丈夫です、答えが見つかりました...。iStochasticをバッファリングし、ArraySetAsSeriesで系列に値を設定し、その系列のArrayMaximumを行う.
大丈夫です、答えが見つかりました...。iStochasticをバッファリングし、ArraySetAsSeriesで値をシリーズに設定し、そのシリーズのArrayMaximumを実行する.
置き換える
ArrayMaximum(num_array[1],WHOLE_ARRAY,0)。
ArrayMinimum(num_array[1],WHOLE_ARRAY,0);
と
ArrayMaximum(num_array,WHOLE_ARRAY,0);
ArrayMinimum(num_array,WHOLE_ARRAY,0)。
申し訳ありません私の悪い、まだ正しいものを使用している間、それらを混合したすでにdojh! バカなmetaquotesはeverythiungを変えるために
そのような経験をしているのは、あなただけではありません。
これは、ユーザーフレンドリーではありません
こんにちは、Coders & Crackersです。
ZigZag on Close インジケータ(添付)の修正について、専門知識を必要とします。
私は、代わりにZigZag on Openを必要としています(同じ基本設定)。新しいローソク足のオープンにアラートを出すと、いい感じになります(可能であれば)。
とても感謝しています。
こんにちは、コーダー&クラッカーです。
ZigZag on Close インジケータ(添付)の修正について、専門知識を必要としています。
代わりにZigZag on Openが必要です(基本設定は同じです)。可能であれば)新しいローソク足のオープンにアラートを出すといい感じです。
とても感謝しています。こんにちは、Razoさん、これがジグザグ・オープンです。
こんにちは、Guruの皆さん。
iCustomで添付のようなインジケータを使用していますが、問題があります。#VQ bars.
どなたか、次のバッファの値を抽出する方法を教えていただけませんか。
以下のコードを使用してバッファを抽出しますが、何の値も返されません....
double dir=iCustom(NULL,PERIOD_M1, "#VQ bars",4,0);
どなたか、この件について調べていただけないでしょうか...。
あなたの助けとアシスタントを高く評価します...。
#property indicator_chart_window
#プロパティ indicator_buffers 2
#property indicator_color1 グリーン
#property indicator_color2 Red(インジケーターカラー2 レッド
#プロパティ indicator_width1 2
#property indicator_width2 2 プロパティ インジケータ幅2
extern int Length = 5;
extern int Method = 3;
extern int Smoothing = 1;
extern int Filter = 5;
extern bool Steady = false;
double VQ[];
double SumVQ[];
double DIR[];
double UpBuffer[];
double DnBuffer[];
//+------------------------------------------------------------------+
int init()
{
IndicatorBuffers(5);
SetIndexStyle(0,DRAW_HISTOGRAM).SetIndexBuffer(0,UpBuffer);。
SetIndexBuffer(0,UpBuffer)。
SetIndexStyle(1,DRAW_HISTOGRAM)。
SetIndexBuffer(1,DnBuffer)を設定します。
SetIndexBuffer(2,SumVQ)を設定します。
SetIndexBuffer(3,VQ)を設定します。
SetIndexBuffer(4,DIR)を設定します。
if (Length < 2) Length = 2;
if (メソッド < 0) メソッド = 0;
if (メソッド > 3) メソッド = 3;
if (Smoothing < 0) Smoothing = 0;
if (Filter < 0) Filter = 0;
string short_name = "VQ|"+長さ + " , " + "。
メソッド + " , " + スムージング + " , " + フィルタ + " | ";
IndicatorShortName(short_name)。
SetIndexEmptyValue(0, 0.0)を設定します。
SetIndexEmptyValue(1, 0.0).SetIndexEmptyValue(1,0.0)。
SetIndexEmptyValue(2, 0.0)を設定します。
SetIndexEmptyValue(3, 0.0)を設定する。
return(0) とします。
}
//+------------------------------------------------------------------+
int start()
{
double MH = 0, ML = 0, MO = 0, MC = 0, MC1 = 0;
int i, j, limit, counted_bars=IndicatorCounted();
//---- エラーの可能性をチェックする
if(counted_bars<0) return(-1);
//---- 最後にカウントされたバーが再カウントされる
if(counted_bars>0) counted_bars--;
//----
if(counted_bars<1) i=Bars-Length-1.if(counted_bars<1)となります。
else i=Bars-counted_bars;
if(counted_bars<1)
{
j=Bars-Length-1。
SumVQ[j + 1] = Close[j + 1];
}
while (i >= 0)
{
MH = iMA(NULL,0,Length,0,Method,PRICE_HIGH,i)となります。
ML = iMA(NULL,0,Length,0,Method,PRICE_LOW,i); ML = iMA(NULL,0,Length,0,Method,PRICE_LOW,i);
MO = iMA(NULL,0,Length,0,Method,PRICE_OPEN,i); ML = iMA(NULL,0,Length,0,Method,PRICE_LOW,i);
MC = iMA(NULL,0,Length,0,Method,PRICE_CLOSE,i); MC2 = iMA(NULL,0,Length,0,Method,PRICE_CLOSE,i);
MC1 = iMA(NULL,0,Length,0,Method,PRICE_CLOSE,i+Smoothing); MC1 = iMA(NULL,0,Length,0,Method,PRICE_CLOSE,i+Smoothing);
if (Steady==true)
{
MC=iMA(NULL,0,Length,0,Method,PRICE_MEDIAN,i);
MC1=iMA(NULL,0,Length,0,Method,PRICE_MEDIAN,i+Smoothing);
if((MH - ML)>0)
VQ = MathAbs(((MC - MC1) / MathMax(MH - ML, MathMax(MH - MC1, MC1 - ML)))+ (MC - MO) / (MH - ML))* 0.5) * ((MC - MC1 + (MC - MO))* 0.5);
SumVQ = SumVQ + VQ;
if (フィルタ > 0)
if (MathAbs(SumVQ - SumVQ) < フィルタ * ポイント)
SumVQ = SumVQ;
i--;
}
if(counted_bars<1)
limit=Bars-Length-1;
else limit=Bars-counted_bars;
for (i = limit-1; i >= 0; i--)
{
if (SumVQ > SumVQ) DIR = 1;
if (SumVQ < SumVQ) DIR = -1;
if (SumVQ== SumVQ) DIR = DIR;
if (DIR > 0)
{
UpBuffer = High;
DnBuffer = Low。
}
さもなくば
if (DIR < 0)
{
DnBuffer = High;
UpBuffer = Low。
}
}
return(0);
}
こんにちは、Guruの皆さん。
iCustomで、添付のような以下のインジケーターで問題が発生しています...。#VQ bars.
どなたか、次のバッファの値を抽出する方法を教えてください...DIR[]。
以下のコードを使用してバッファを抽出しますが、何の値も返されません....
double dir=iCustom(NULL,PERIOD_M1, "#VQ bars",4,0);
どなたかこの件に関して調べていただけないでしょうか。
あなたの助けとアシスタントに感謝します。すべて問題ないようです。
VQバーと、その値を使ったテストインディケータを添付しますが、正しい値を示しています。
VQバーと、その値を使ったテストインディケータを添付していますが、正しい値を示しています。
うわぁ...MLADENさん、ありがとうございます。
そのコードは私のインジケータでは動作しません...エラーログを開くことができません...。
でも、#VQバーでテストしたら、ちゃんと動きました。
このために数時間を無駄にしました・・・。
なんて言ったらいいんだろう...。このことを解決してくれてありがとうございました...。
これが私の#VQです......。
値があるのに、EAでiCustomを呼び出すと値がない......なんというか......バカですね......。
親愛なるMLADEN様。
私の#VQ...インジケータを調べていただけませんか?使わない行をいくつか削除し、いくつかのアラートを追加しました。
iCustom経由でEAにバッファをCALLできないのは、それが原因かもしれません。
あなたのHELPはもう一度非常に高く評価されます....
本当にありがとうございます。
AZRULです......。
#property indicator_chart_window
#プロパティ indicator_buffers 2
#property indicator_color1 グリーン
#プロパティ indicator_color2 赤
#property indicator_width1 2 (プロパティ インジケータ幅1 2)
#プロパティ indicator_width2 2
extern int Length = 5;
extern int Method = 3;
extern int Smoothing = 1;
extern double Filter = 0.5;
extern bool Steady = False;
extern string SoundGbp = "news.wav";
extern string SoundEur = "news.wav".外部文字列SoundEur = "news.wav"。
extern bool PopupAlert = true;
extern bool SendPushNotification = false;
extern bool SoundAlert = True;
int lastAlert=3;
double VQ[];
double SumVQ[];
double DIR[];
double UpBuffer[];
double DnBuffer[];
//+------------------------------------------------------------------+
int init()
{
IndicatorBuffers(5);
SetIndexStyle(0,DRAW_HISTOGRAM).SetIndexBuffer(0,UpBuffer);。
SetIndexBuffer(0,UpBuffer)。
SetIndexStyle(1,DRAW_HISTOGRAM)。
SetIndexBuffer(1,DnBuffer)を設定します。
SetIndexBuffer(2,SumVQ)を設定します。
SetIndexBuffer(3,VQ)を設定します。
SetIndexBuffer(4,DIR)を設定します。
if (Length < 2) Length = 2;
if (メソッド < 0) メソッド = 0;
if (メソッド > 3) メソッド = 3;
if (Smoothing < 0) Smoothing = 0;
if (Filter < 0) Filter = 0;
string short_name = "VQ|"+長さ + " , " + "。
メソッド + " , " + スムージング + " , " + フィルタ + " | ";
IndicatorShortName(short_name)。
SetIndexEmptyValue(0, 0.0)を設定します。
SetIndexEmptyValue(1, 0.0).SetIndexEmptyValue(1,0.0)。
SetIndexEmptyValue(2, 0.0)を設定します。
SetIndexEmptyValue(3, 0.0)を設定する。
return(0) とします。
}
//+------------------------------------------------------------------+
int start()
{
int i, limit, counted_bars=IndicatorCounted();
//エラーの可能性をチェック
if(counted_bars<0) return(-1);
//---- 最後にカウントされたバーが再カウントされる
if(counted_bars>0) counted_bars--;
//----
if(counted_bars<1) i=Bars-Length.If(counted_bars<1)。
else i=Bars-counted_bars;
if(counted_bars<1)
while (i >= 0)
{
VQ = iCustom(NULL,0, "#pollan indy",0,i+1).SumVQ=iCustom(NULL,0,0,0)。
SumVQ= iCustom(NULL,0, "#pollan indy",1,i+1);
//if (フィルタ > 0)
//if (MathAbs(VQ - SumVQ) < Filter)
//VQ = SumVQ;
i--;
}
if(counted_bars<1)
limit=Bars-Length-1;
else limit=Bars-counted_bars;
for (i = limit-1; i >= 0; i--)
{
//if (VQ > SumVQ) DIR = 1;
if ((VQ+VQ) > (SumVQ+SumVQ))
DIR = 1;
if ((VQ+VQ) < (SumVQ+SumVQ))
DIR = -1;
if ((VQ+VQ) == (SumVQ+SumVQ))
DIR = DIR。
if (DIR > 0)
{
UpBuffer = High;
DnBuffer = Low。
}
さもなくば
if (DIR < 0)
{
DnBuffer = High;
UpBuffer = Low。
}
if ((DIR > 0) && (DIR > 0))
{
CheckForAlerts(OP_BUY);//ALERT BUY
}
if ((DIR < 0) && (DIR < 0))
{
CheckForAlerts(OP_SELL);//ALERT SELL
}
}
double vq1=iCustom(NULL,0, "#pollan indy",0,i+1);
double svq1=iCustom(NULL,0, "#pollan indy",1,i+1);//double vq2=iCustom(NULL,0, "#pollan indy",1,i+1);
double vq2=iCustom(NULL,0, "#pollan indy",0,i+2); double vq2=iCustom(NULL,0, "#pollan indy",0,i+3);
double svq2=iCustom(NULL,0, "#pollan indy",1,i+2); double vq3=iCustom(NULL,0, "#pollan indy",1,i+2);
double vq3=iCustom(NULL,0, "#pollan indy",0,i+3); double svq3=iCustom(NULL,0, "#pollan indy",0,i+3);
double svq3=iCustom(NULL,0, "#pollan indy",1,i+3);
double dir1=DIR;
double dir2=DIR;
double dir3=DIR;
double vq0= (vq1 + vq2);
double svq0= (svq1 + svq2);
文字列VQ0_Teks=DoubleToStr(vq0,6);
string VQS0_Teks=DoubleToStr(svq0,6); string VQ1_Teks=DoubleToStr(svq0,6);
string VQ1_Teks=DoubleToStr(vq1,6); string VQS1_Teks=DoubleToStr(vq1,6);
string VQS1_Teks=DoubleToStr(svq1,6); string VQS1_Teks=DoubleToStr(svq1,6);
string VQ2_Teks=DoubleToStr(vq2,6); string VQS2_Teks=DoubleToStr(vq2,6);
string VQS2_Teks=DoubleToStr(svq2,6); string VQ3_Teks=DoubleToStr(svq2,6);
string VQ3_Teks=DoubleToStr(vq3,6); string VQS3_Teks=DoubleToStr(vq3,6);
string VQS3_Teks=DoubleToStr(svq3,6); string VQS3_Teks=DoubleToStr(svq3,6);
文字列dir1_Teks=DoubleToStr(dir1,6);
文字列dir2_Teks=DoubleToStr(dir2,6);
文字列dir3_Teks=DoubleToStr(dir3,6);
文字列 h =
"青" + " + VQ0_Teks+ " + " 赤" + " + VQS0_Teks + "\n" + "青" + " " + VQS0_Teks
"青" + " + VQ1_Teks+ " " + "赤" + " + VQS1_Teks + "\n" + "です。
"青」+「」+VQ2_Teks+ 「」+「赤」+「」+VQS2_Teks+「 \n」+「」。
"青」+「」+VQ3_Teks+ 「」+「赤」+「」+VQS3_Teks+「」+「」+VQS3_Teks+「」+「」+「」+VQS3_Teks
"DIR1" + " + dir1_Teks+" " + "DIR2" + " + dir2_Teks + " + "DIR3" + " + dir3_Teks;
コメント(h);
return(0);
}
//--------------------------------------------------------------
void CheckForAlerts(int type)
{
//アラート
static datetime lastAlertTime=0;
if (lastAlertTime != iTime(NULL,0,0)) { { if (type==OP_BUY && lastAlert!
if (type==OP_BUY && lastAlert!=2) { //BUY
doAlerts("Pollan BAR UP "+Symbol()+" (tf: "+Period() +")",SoundEur);
lastAlert=2;
lastAlertTime=iTime(NULL,0,0)。
}
if (type==OP_SELL && lastAlert!=1) { //SELL
doAlerts("Pollan BAR DOWN "+Symbol()+" (tf: "+Period() +")",SoundGbp);
lastAlert=1;
lastAlertTime=iTime(NULL,0,0)。
}
}//if (lastAlertTime != iTime(NULL,0,0)) { }//f (lastAlertTime != iTime(NULL,0,0)) { //end ALERTS
//エンドアラート
}
//--------------------------------------------------------------
void doAlerts(string sMsg,string SoundFile) { }.
if (PopupAlert) Alert(sMsg);
if(SoundAlert)PlaySound(SoundFile)。
if(SendPushNotification)SendNotification(sMsg)。
}
THANKS.........。
親愛なるMLADEN。
私の#VQ...インジケータをPLEASEで調べてもらえませんか...。使わない行をいくつか削除し、いくつかのアラートを追加しました。
iCustom経由でEAにバッファをCALLできないのは、それが原因かもしれません。
あなたのHELPはもう一度非常に高く評価されます....
本当にありがとうございます。
AZRULです......。
#property indicator_chart_window
#プロパティ indicator_buffers 2
#property indicator_color1 グリーン
#プロパティ indicator_color2 赤
#property indicator_width1 2 (プロパティ インジケータ幅1 2)
#プロパティ indicator_width2 2
extern int Length = 5;
extern int Method = 3;
extern int Smoothing = 1;
extern double Filter = 0.5;
extern bool Steady = False;
extern string SoundGbp = "news.wav";
extern string SoundEur = "news.wav".外部文字列SoundEur = "news.wav"。
extern bool PopupAlert = true;
extern bool SendPushNotification = false;
extern bool SoundAlert = True;
int lastAlert=3;
double VQ[];
double SumVQ[];
double DIR[];
double UpBuffer[];
double DnBuffer[];
//+------------------------------------------------------------------+
int init()
{
IndicatorBuffers(5);
SetIndexStyle(0,DRAW_HISTOGRAM).SetIndexBuffer(0,UpBuffer);。
SetIndexBuffer(0,UpBuffer)。
SetIndexStyle(1,DRAW_HISTOGRAM)。
SetIndexBuffer(1,DnBuffer)を設定します。
SetIndexBuffer(2,SumVQ)を設定します。
SetIndexBuffer(3,VQ)を設定します。
SetIndexBuffer(4,DIR)を設定します。
if (Length < 2) Length = 2;
if (メソッド < 0) メソッド = 0;
if (メソッド > 3) メソッド = 3;
if (Smoothing < 0) Smoothing = 0;
if (Filter < 0) Filter = 0;
string short_name = "VQ|"+長さ + " , " + "。
メソッド + " , " + スムージング + " , " + フィルタ + " | ";
IndicatorShortName(short_name)。
SetIndexEmptyValue(0, 0.0)を設定します。
SetIndexEmptyValue(1, 0.0).SetIndexEmptyValue(1,0.0)。
SetIndexEmptyValue(2, 0.0)を設定します。
SetIndexEmptyValue(3, 0.0)を設定する。
return(0) とします。
}
//+------------------------------------------------------------------+
int start()
{
int i, limit, counted_bars=IndicatorCounted();
//エラーの可能性をチェック
if(counted_bars<0) return(-1);
//---- 最後にカウントされたバーが再カウントされる
if(counted_bars>0) counted_bars--;
//----
if(counted_bars<1) i=Bars-Length.If(counted_bars<1)。
else i=Bars-counted_bars;
if(counted_bars<1)
while (i >= 0)
{
VQ = iCustom(NULL,0, "#pollan indy",0,i+1).SumVQ=iCustom(NULL,0,0,0)。
SumVQ= iCustom(NULL,0, "#pollan indy",1,i+1);
//if (フィルタ > 0)
//if (MathAbs(VQ - SumVQ) < Filter)
//VQ = SumVQ;
i--;
}
if(counted_bars<1)
limit=Bars-Length-1;
else limit=Bars-counted_bars;
for (i = limit-1; i >= 0; i--)
{
//if (VQ > SumVQ) DIR = 1;
if ((VQ+VQ) > (SumVQ+SumVQ))
DIR = 1;
if ((VQ+VQ) < (SumVQ+SumVQ))
DIR = -1;
if ((VQ+VQ) == (SumVQ+SumVQ))
DIR = DIR。
if (DIR > 0)
{
UpBuffer = High;
DnBuffer = Low。
}
さもなくば
if (DIR < 0)
{
DnBuffer = High;
UpBuffer = Low。
}
if ((DIR > 0) && (DIR > 0))
{
CheckForAlerts(OP_BUY);//ALERT BUY
}
if ((DIR < 0) && (DIR < 0))
{
CheckForAlerts(OP_SELL);//ALERT SELL
}
}
double vq1=iCustom(NULL,0, "#pollan indy",0,i+1);
double svq1=iCustom(NULL,0, "#pollan indy",1,i+1);//double vq2=iCustom(NULL,0, "#pollan indy",1,i+1);
double vq2=iCustom(NULL,0, "#pollan indy",0,i+2); double vq2=iCustom(NULL,0, "#pollan indy",0,i+3);
double svq2=iCustom(NULL,0, "#pollan indy",1,i+2); double vq3=iCustom(NULL,0, "#pollan indy",1,i+2);
double vq3=iCustom(NULL,0, "#pollan indy",0,i+3); double svq3=iCustom(NULL,0, "#pollan indy",0,i+3);
double svq3=iCustom(NULL,0, "#pollan indy",1,i+3);
double dir1=DIR;
double dir2=DIR;
double dir3=DIR;
double vq0= (vq1 + vq2);
double svq0= (svq1 + svq2);
文字列VQ0_Teks=DoubleToStr(vq0,6);
string VQS0_Teks=DoubleToStr(svq0,6); string VQ1_Teks=DoubleToStr(svq0,6);
string VQ1_Teks=DoubleToStr(vq1,6); string VQS1_Teks=DoubleToStr(vq1,6);
string VQS1_Teks=DoubleToStr(svq1,6); string VQS1_Teks=DoubleToStr(svq1,6);
string VQ2_Teks=DoubleToStr(vq2,6); string VQS2_Teks=DoubleToStr(vq2,6);
string VQS2_Teks=DoubleToStr(svq2,6); string VQ3_Teks=DoubleToStr(svq2,6);
string VQ3_Teks=DoubleToStr(vq3,6); string VQS3_Teks=DoubleToStr(vq3,6);
string VQS3_Teks=DoubleToStr(svq3,6); string VQS3_Teks=DoubleToStr(svq3,6);
文字列dir1_Teks=DoubleToStr(dir1,6);
文字列dir2_Teks=DoubleToStr(dir2,6);
文字列dir3_Teks=DoubleToStr(dir3,6);
文字列 h =
"青" + " + VQ0_Teks+ " + " 赤" + " + VQS0_Teks + "\n" + "青" + " " + VQS0_Teks
"青" + " + VQ1_Teks+ " " + "赤" + " + VQS1_Teks + "\n" + "です。
"青」+「」+VQ2_Teks+ 「」+「赤」+「」+VQS2_Teks+「 \n」+「」。
"青」+「」+VQ3_Teks+ 「」+「赤」+「」+VQS3_Teks+「」+「」+「」+VQS3_Teks+「」+「」+VQS3_Teks
"DIR1" + " + dir1_Teks+" " + "DIR2" + " + dir2_Teks + " + "DIR3" + " + dir3_Teks;
コメント(h);
return(0);
}
//--------------------------------------------------------------
void CheckForAlerts(int type)
{
//アラート
static datetime lastAlertTime=0;
if (lastAlertTime != iTime(NULL,0,0)) { { if (type==OP_BUY && lastAlert!
if (type==OP_BUY && lastAlert!=2) { //BUY
doAlerts("Pollan BAR UP "+Symbol()+" (tf: "+Period() +")",SoundEur);
lastAlert=2;
lastAlertTime=iTime(NULL,0,0)。
}
if (type==OP_SELL && lastAlert!=1) { //SELL
doAlerts("Pollan BAR DOWN "+Symbol()+" (tf: "+Period()+")",SoundGbp);
lastAlert=1;
lastAlertTime=iTime(NULL,0,0)。
}
}//if (lastAlertTime != iTime(NULL,0,0)) { }//f (lastAlertTime != iTime(NULL,0,0)) { //end ALERTS
//エンドアラート
}
//--------------------------------------------------------------
void doAlerts(string sMsg,string SoundFile) { }.
if (PopupAlert) Alert(sMsg);
if(SoundAlert) PlaySound(SoundFile)。
if(SendPushNotification) SendNotification(sMsg)。
}
thanks............ 。"#ポラン・インディ "を使うように変更したんですね。
私はそのインジケータが何をするか分からない(それが他の "ポラン "インジケータのようであれば、それは再描画し、それがあなたの問題を引き起こす可能性がありますが、ちょうど今推測ゲームを行っています)。