코딩 도움말 - 페이지 201

 
Slow Moe:
안녕하세요, 이 표시기를 다시 작성하여 화살표만 표시하고 촛대에 표시되도록 할 수 있는지 묻고 싶습니다. 누군가가 이것으로 나를 도울 수 있습니까? 아니면 maby가 코드를 작성해 주실 수 있습니까?

문안 인사

느린

fxmtn-test.mq4

느린

이렇게 해봐

파일:
 

Beautyfull 일해주셔서 감사합니다 mladen!!

"extern int arrowDistance = XXX;"를 얻으려고 합니다. 어떻게든 활성화.

이제 선택 메뉴에 표시되지만 거리가 변경되지는 않습니다. *arrowDistance를 어디에 둘 것인가?

아니면 내가 완전히 틀렸습니까?

여러곳에 붙여놨는데 거리가 아니라 점만 더 줬네요....

코드를 이해하려고 노력하고 약간의 빛을 기대하는 멍청한 놈

 

지금 다음과 같이 했습니까?

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

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

이 방법이 맞나요?? 작동하기 때문에 틀릴 수 있습니다.

 
Slow Moe:
지금 다음과 같이 했습니까?

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

if (BelowBuff < -24.0) LongBuffe = 낮음- (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는 이중으로 정의되고 소수일 수 있습니다(따라서 0.5와 같은 값은 물론 10.5와 같은 값도 사용할 수 있음). atr 주기를 변경해도 거리가 크게 변경되지는 않습니다(단지 더 긴 범위의 평균이 고려됨).

 

다른 표시기에서 값을 가져오려고 시도합니다.

안녕하세요 컴,

내 첫 번째 지표를 작성하려고 하며 이 사이트에서 가져온 기존 지표의 값도 사용하고 싶습니다. 방금 indi에서 코드를 복사했습니다.

막대가 파란색/빨간색 또는 1/0인지 확인하기 위해 새 표시기에서 무엇을 코딩해야 하나요? 상관 없지만 이미 많이 시도했지만 항상 0이 됩니다.

나는 심지어 작동하지 않는 내 표시기에서 전체 코드를 얻으려고 시도했습니다.

어떤 도움을 주시면 감사하겠습니다

thx 밥

#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:
안녕하세요 컴,

내 첫 번째 지표를 작성하려고 하며 이 사이트에서 가져온 기존 지표의 값도 사용하고 싶습니다. 방금 indi에서 코드를 복사했습니다.

막대가 파란색/빨간색 또는 1/0인지 확인하기 위해 새 표시기에서 무엇을 코딩해야 하나요? 상관 없지만 이미 많이 시도했지만 항상 0이 됩니다.

나는 심지어 작동하지 않는 내 표시기에서 전체 코드를 얻으려고 시도했습니다.

어떤 도움을 주시면 감사하겠습니다

thx 밥

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

}

밥모란1000

다음과 같이 할 수 있습니다.

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

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

하지만 조심하세요. 그 인디케이터는 슈퍼 시그널 인디케이터의 변형이며 슈퍼 시그널 인디케이터는 재계산(재도장)

 

경고해주셔서 정말 감사합니다^^ 지금 시도해볼께요...