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

 
Slow Moe:
こんにちは、このインディケータを書き換えて、矢印だけを表示し、ローソク足で表示させることは可能でしょうか?誰かこの件で私を助けてくれませんか、あるいは私のためにそれをコード化してくれませんか?

リガード

スロー

fxmtn-test.mq4

スロー

こんな感じで試してみてください。

ファイル:
 

ありがとうございます。

extern int arrowDistance = XXX;」もどうにかして有効化したいのですが。

それは今、選択メニューに表示されますが、距離が変化していない。どこに*arrowDistanceを置くべきですか?

それとも私が完全に間違っているのでしょうか?

私はいくつかの場所にそれを置くが、それは私に多くの点を与えただけで、より多くの距離を与えなかった...。

コードを理解しようとしているnoob、そしていくつかの光を期待しています。

 

今はこんな感じでやってました.

if (AboveBuff > 24.0) ShortBuff = High+ (Point*arrowDistance /2);

if (BelowBuff < -24.0) LongBuffe = Low- (Point*arrowDistance /2);

これは正しい方法なのでしょうか?動作するからといって、間違っていることもある

 
Slow Moe:
今はこんな感じでやってました.

if (AboveBuff > 24.0) ShortBuff = High+ (Point*arrowDistance /2);

if (BelowBuff < -24.0) LongBuffe = Low- (Point*arrowDistance /2);

これでいいのでしょうか?うまくいったからといって、間違っている場合もあります

これでうまくいくはずですが、もう一つ、次のような方法もあります。

LongBuffe = Low-arrowDistance*iATR(NULL,0,20,i) および ShortBuff = High+arrowDistance**iATR(NULL,0,20,i) とすることもできます。

 

遅い。

iATR()モードを使うのがベターです。時間枠を変えれば、私が言っていることがわかるでしょう。高値や安値からの矢印の距離が固定されている場合、視覚的に高い時間枠で問題が発生します(ある時間枠では乱雑に見えます)。固定距離を使用する代わりにiATR()を使用すると、この問題が解決されます。

 

mrtools,mladenの動作がとても良くなりました。

最後のインジケータが制御 できないのですが・・・。

SignalGap = MathCeil(iATR(NULL,0,50,0)/Point) としました。

50を変更すると距離が変わるので、ここが正しい場所だと思った。しかし、arrowDistanceではうまくいきません。

 
Slow Moe:
mrtools,mladenの動作は本当に良くなりました。

もう一つ、制御できないインジケータがあるのですが・・・。

SignalGap = MathCeil(iATR(NULL,0,50,0)/Point) に変更する。

50を変更すると距離が変わるので、ここが正しい場所だと思いました。しかし、私がテストしたものは、arrowDistanceでは動作しませんでした。

スロー

矢印の距離のためにATRを使用している場合、その距離を修正する最良の方法は、おそらく一種の乗数です。例えば

arrowPrice = High+iATR(NULL,0,50,0)*arrowDistance;

arrowDistanceはdoubleとして定義され、小数も可能です(したがって、0.5のような値も、10.5のような値も使用できます)。atrの周期を変えても距離は大きく変わりません(より長い範囲の平均を考慮するだけです)

 

他のインジケータから値を取得しようとする

こんにちは、comです。

私は初めて自分のインジケータを書こうとしていて、このサイトから手に入れた既存のインジケータの値も使いたいと思っています。

私は、このサイトから得た既存のインジケーターの値も使いたいと思っています。

私も自分のインジケータで全コードを取得しようとしましたが、うまくいきませんでした。

何かお手伝いいただけると幸いです。

thx bob

#property copyright "fxfariz"

#property link "fxfariz@gmail.com"

#property indicator_separate_window

#property indicator_buffers 2

#property indicator_color1 Blue //Red //Aqua

#property indicator_color2 Red

extern int SSP=7;

extern double Kmax=50.6; //24 21.6 21.6

extern int CountBars=300;

extern int myPeriod = 0 ;

//---- buffers

double ExtMapBuffer1[];

double ExtMapBuffer2[];

double ExtHBuffer1[];

double ExtHBuffer2[];

int xPeriod ;

//+------------------------------------------------------------------+

string TimeFrameToString(int tf)

{

string tfs;

switch(tf) {

case PERIOD_M1: tfs="M1" ; break;

case PERIOD_M5: tfs="M5" ; break;

case PERIOD_M15: tfs="M15" ; break;

case PERIOD_M30: tfs="M30" ; break;

case PERIOD_H1: tfs="H1" ; break;

case PERIOD_H4: tfs="H4" ; break;

case PERIOD_D1: tfs="D1" ; break;

case PERIOD_W1: tfs="W1" ; break;

case PERIOD_MN1: tfs="MN1";

}

return(tfs);

}

//+------------------------------------------------------------------+

//| Custom indicator initialization function |

//+------------------------------------------------------------------+

int init()

{

//---- indicators

IndicatorBuffers(4);

SetIndexStyle(0,DRAW_HISTOGRAM,0,4); //Red

SetIndexBuffer(0,ExtHBuffer1);

SetIndexStyle(1,DRAW_HISTOGRAM,0,4); //Lime

SetIndexBuffer(1,ExtHBuffer2);

SetIndexBuffer(2,ExtMapBuffer1);

SetIndexBuffer(3,ExtMapBuffer2);

if(myPeriod==0){xPeriod=Period();} {xPeriod=myPeriod;}

string tPeriod = TimeFrameToString(xPeriod) ;

IndicatorShortName(tPeriod + " Trade What You see ("+SSP+")");

//----

return(0);

}

//+------------------------------------------------------------------+

//| Custor indicator deinitialization function |

//+------------------------------------------------------------------+

int deinit()

{

return(0);

}

//+------------------------------------------------------------------+

//| Custom indicator iteration function |

//+------------------------------------------------------------------+

int start()

{

if (CountBars>=Bars) CountBars=Bars;

SetIndexDrawBegin(0,Bars-CountBars+SSP);

SetIndexDrawBegin(1,Bars-CountBars+SSP);

int i, counted_bars=IndicatorCounted();

double SsMax, SsMin, smin, smax;

if(Bars<=SSP+1) return(0);

if(counted_bars<SSP+1)

{

for(i=1;i<=SSP;i++) ExtMapBuffer1[CountBars-i]=0.0;

for(i=1;i<=SSP;i++) ExtMapBuffer2[CountBars-i]=0.0;

}

for(i=CountBars-SSP;i>=0;i--) {

SsMax = High;

SsMin = Low[Lowest(NULL,xPeriod,MODE_LOW,SSP,i-SSP+1)];

smax = SsMax-(SsMax-SsMin)*Kmax/100;

ExtMapBuffer1=smax;

ExtMapBuffer2=smax;

}

for(int b=CountBars-SSP;b>=0;b--)

{

if(ExtMapBuffer1>ExtMapBuffer2)

{

ExtHBuffer1=1;

ExtHBuffer2=0;

}

else

{

ExtHBuffer1=0;

ExtHBuffer2=1;

}

}

return(0);

}
 
BobMorane1000:
こんにちは、comです。

私は初めて自分のインジケータを書こうとしているのですが、このサイトから得た既存のインジケータの値も使いたいと思っています。

私は、このサイトから得た既存のインジケーターの値も使いたいと思っています。

私も自分のインジケータで全コードを取得しようとしましたが、うまくいきませんでした。

何かお手伝いいただけると幸いです。

thx bob

#property copyright "fxfariz"

#property link "fxfariz@gmail.com"

#property indicator_separate_window

#property indicator_buffers 2

#property indicator_color1 Blue //Red //Aqua

#property indicator_color2 Red

extern int SSP=7;

extern double Kmax=50.6; //24 21.6 21.6

extern int CountBars=300;

extern int myPeriod = 0 ;

//---- buffers

double ExtMapBuffer1[];

double ExtMapBuffer2[];

double ExtHBuffer1[];

double ExtHBuffer2[];

int xPeriod ;

//+------------------------------------------------------------------+

string TimeFrameToString(int tf)

{

string tfs;

switch(tf) {

case PERIOD_M1: tfs="M1" ; break;

case PERIOD_M5: tfs="M5" ; break;

case PERIOD_M15: tfs="M15" ; break;

case PERIOD_M30: tfs="M30" ; break;

case PERIOD_H1: tfs="H1" ; break;

case PERIOD_H4: tfs="H4" ; break;

case PERIOD_D1: tfs="D1" ; break;

case PERIOD_W1: tfs="W1" ; break;

case PERIOD_MN1: tfs="MN1";

}

return(tfs);

}

//+------------------------------------------------------------------+

//| Custom indicator initialization function |

//+------------------------------------------------------------------+

int init()

{

//---- indicators

IndicatorBuffers(4);

SetIndexStyle(0,DRAW_HISTOGRAM,0,4); //Red

SetIndexBuffer(0,ExtHBuffer1);

SetIndexStyle(1,DRAW_HISTOGRAM,0,4); //Lime

SetIndexBuffer(1,ExtHBuffer2);

SetIndexBuffer(2,ExtMapBuffer1);

SetIndexBuffer(3,ExtMapBuffer2);

if(myPeriod==0){xPeriod=Period();} {xPeriod=myPeriod;}

string tPeriod = TimeFrameToString(xPeriod) ;

IndicatorShortName(tPeriod + " Trade What You see ("+SSP+")");

//----

return(0);

}

//+------------------------------------------------------------------+

//| Custor indicator deinitialization function |

//+------------------------------------------------------------------+

int deinit()

{

return(0);

}

//+------------------------------------------------------------------+

//| Custom indicator iteration function |

//+------------------------------------------------------------------+

int start()

{

if (CountBars>=Bars) CountBars=Bars;

SetIndexDrawBegin(0,Bars-CountBars+SSP);

SetIndexDrawBegin(1,Bars-CountBars+SSP);

int i, counted_bars=IndicatorCounted();

double SsMax, SsMin, smin, smax;

if(Bars<=SSP+1) return(0);

if(counted_bars<SSP+1)

{

for(i=1;i<=SSP;i++) ExtMapBuffer1[CountBars-i]=0.0;

for(i=1;i<=SSP;i++) ExtMapBuffer2[CountBars-i]=0.0;

}

for(i=CountBars-SSP;i>=0;i--) {

SsMax = High;

SsMin = Low[Lowest(NULL,xPeriod,MODE_LOW,SSP,i-SSP+1)];

smax = SsMax-(SsMax-SsMin)*Kmax/100;

ExtMapBuffer1=smax;

ExtMapBuffer2=smax;

}

for(int b=CountBars-SSP;b>=0;b--)

{

if(ExtMapBuffer1>ExtMapBuffer2)

{

ExtHBuffer1=1;

ExtHBuffer2=0;

}

else

{

ExtHBuffer1=0;

ExtHBuffer2=1;

}

}

return(0);

}

BobMorane1000

このようなことができるかもしれません。

bool blueValue = (iCustom(NULL,0,"indicatorNameHere",SSP,Kmax,0,0)!=0);

bool redValue = (iCustom(NULL,0,"indicatorNameHere",SSP,Kmax,1,0)!=0);

でも、気をつけてください。このインジケータはスーパーシグナルインジケータのバリエーションで、スーパーシグナルインジケータは再計算(リペイント)するんだ。

 

ありがとうございました、そして、警告をありがとうございました^^、これから試してみます.