コーディングのヘルプ - ページ 287

 
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を行う.

 
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)。

 
zigflip:
申し訳ありません私の悪い、まだ正しいものを使用している間、それらを混合したすでにdojh! バカなmetaquotesはeverythiungを変えるために

そのような経験をしているのは、あなただけではありません。

これは、ユーザーフレンドリーではありません

 

こんにちは、Coders & Crackersです。

ZigZag on Close インジケータ(添付)の修正について、専門知識を必要とします。

私は、代わりにZigZag on Openを必要としています(同じ基本設定)。新しいローソク足のオープンにアラートを出すと、いい感じになります(可能であれば)。

とても感謝しています。

ファイル:
 
razo:
こんにちは、コーダー&クラッカーです。

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);

}

 
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.mq4  3 kb
_test_vq.mq4  1 kb
 
mladen:
VQバーと、その値を使ったテストインディケータを添付していますが、正しい値を示しています。

vq_bars.mq4

_test_vq.mq4

うわぁ...MLADENさん、ありがとうございます。

そのコードは私のインジケータでは動作しません...エラーログを開くことができません...。

でも、#VQバーでテストしたら、ちゃんと動きました。

このために数時間を無駄にしました・・・。

なんて言ったらいいんだろう...。このことを解決してくれてありがとうございました...。

これが私の#VQです......。

値があるのに、EAでiCustomを呼び出すと値がない......なんというか......バカですね......。

ファイル:
gbpjpy_test.jpg  123 kb
my_vq.jpg  48 kb
 

親愛なる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.........。

 
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............

"#ポラン・インディ "を使うように変更したんですね。

私はそのインジケータが何をするか分からない(それが他の "ポラン "インジケータのようであれば、それは再描画し、それがあなたの問題を引き起こす可能性がありますが、ちょうど今推測ゲームを行っています)。