코딩 도움말 - 페이지 626

 
stas0202:
mladen 표시기에 대해 저를 도와주실 수 있겠습니까?

추가 게시물 필요 없음 다음은 경고가 있는 버전입니다(6가지 경고 유형이 추가됨): MASO 2_1 + alerts.mq4

파일:
 
mladen:
추가 게시물 필요 없음 다음은 경고가 있는 버전입니다(6가지 경고 유형이 추가됨): MASO 2_1 + alerts.mq4

아주 잘했어, 잘했어, 고마워

 

믈라덴

화살표를 만들기 위해 한 번만 더 요청할 수 있습니까? 막대만 닫았습니까? 중립 막대가 있는 경우 추세의 변화로 취급하십시오.

 

MASO 표시기가 많은 경고처럼 보입니다.

너무한거 아닙니까? 정상적인 거래에 어떻게 사용합니까?

 

martingail을 사용하여 특정 전략을 사용하는 바이너리 옵션의 경우

[삭제]  
pgtips:
안녕 믈라덴

이전 날 촛불 색상을 표시하는 표시기가 있습니까?

저는 5분 차트로 작업하고 시각적으로 백테스트를 하면 전날의 촛불 색을 확인하기 위해 혼란스러운 스와핑을 하게 됩니다. 빨간색 또는 녹색으로 새 창에서 하단을 따라 막대를 실행하여 이전 날짜의 양초 색상을 표시하는 것이 좋을 것입니다. 같은 방향으로 거래를 탐색하고 싶습니다.

이렇게 바가 붙어있습니다. 이게 가능해 ?

그래서 닫기 > 열리면 녹색, 그렇지 않으면 빨간색으로 추측됩니다.?

항상 도와주셔서 감사합니다 :-)

PG

정중한 범프 :-)

파일:
 
pgtips:
정중한 범프 :-)

이것이 당신을 도울 수 있다면? 그러나 sw에는 없습니다.

파일:
eurusdm5_1.png  32 kb
 

#property copyright ""

#property link ""

#property indicator_chart_window

#property indicator_buffers 3

#property indicator_color1 Crimson

#property indicator_color2 DodgerBlue

#property indicator_color3 clrBlue

int price = PRICE_OPEN;

extern int zBar = 1000;

extern int LengthB=12;

extern int LengthK=12;

extern int sCCI=2;

extern int sRSI=2;

int SoundAlertMode = 0;

int Soundonly = 0;

int Barcount;

double RSI;

double CCI;

datetime TimeBar;

double previ;

double ExtMapBuffer2[];

double alertBar1;

int sim=0;

double alertBar;

extern bool DoAlert=true;

extern bool alertMail=false;

datetime lastAlertTime;

//---- buffers

double b1[],b2[];double Gd_188;

double f0_3() {

double Ld_ret_0;

if (Digits < 4) Ld_ret_0 = 0.01;

else Ld_ret_0 = 0.0001;

return (Ld_ret_0);

}

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

//| Custom indicator initialization function |

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

int init()

{

//---- indicators

IndicatorBuffers(2);

IndicatorShortName("Investor");

SetIndexStyle(0,DRAW_ARROW,STYLE_SOLID,0);

SetIndexArrow(0,234);

SetIndexBuffer(0,b1);

SetIndexStyle(1,DRAW_ARROW,STYLE_SOLID,0);

SetIndexArrow(1,233);

SetIndexBuffer(1,b2);

SetIndexEmptyValue(2,0.0);

SetIndexDrawBegin(2, zBar);

SetIndexStyle(2,DRAW_ARROW,STYLE_SOLID,2);

SetIndexArrow(2,158);

SetIndexBuffer(2,ExtMapBuffer2);

Gd_188 = f0_3();

Barcount = 0;

//----

return(0);

}

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

//| Custor indicator deinitialization function |

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

int deinit()

{

//----

//----

return(0);

}

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

//| Custom indicator iteration function |

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

int start()

{

int i, counted_bars=IndicatorCounted();

int limit=Bars-counted_bars;

if(counted_bars>0) limit++;

string sAlertMsg;

/*// TImes

int Li_unused_8;

string Ls_28;

int Li_unused_36;

double Ld_0 = (Ask - Bid) / Gd_188;

if (Ld_0 > 1.0 && Ld_0 <= 10.0) Li_unused_8 = 4;

int Li_12 = Time[0] + 60 * Period() - TimeCurrent();

double Ld_16 = Li_12 / 60.0;

int Li_24 = Li_12 % 60;

Li_12 = (Li_12 - Li_12 % 60) / 60;

if (Li_24 <= 9) Ls_28 = "0";

if (Li_12 >= 1 && Li_12 <= 9) Li_unused_36 = -10;

else {

if (Li_12 >= 10 && Li_12 <= 99) Li_unused_36 = -13;

else {

if (Li_12 >= 100 && Li_12 <= 999) Li_unused_36 = -16;

else {

if (Li_12 >= 1000 && Li_12 <= 9999) Li_unused_36 = -24;

else

if (Li_12 >= 10000 && Li_12 <= 99999) Li_unused_36 = -29;

}

}

}

Comment("", "" + Li_12 + ":" + Ls_28 + "" + Li_24 + "",

"\n", "=======",

"\n", "" + Symbol() + "", " " + Period() + "",

"\n", "Spread : " + DoubleToStr(Ld_0, 1) + "",

"\n",

"\n", "",

"\n", "");

*/

// Arrows

for(i=0; i<limit; i++)

{

RSI=iRSI(NULL,0,sRSI,price,i);

CCI=iCCI(NULL,0,sCCI,price,i+1);

//double zz1 = iCustom(NULL,0,"Zigzag_v.2",zBar,LengthB,LengthK,1,i);

//double zz2 = iCustom(NULL,0,"Zigzag_v.2",zBar,LengthB,LengthK,0,i);

//if (zz1 != 0) {

if ( RSI > 80.0 && CCI < 50.0 &&

Open > Close && //bear

Open < Close && //bull

High - Close > High - Close )

{

b1 = High+Point*5;

}

//if (zz2 != 0) {

if ( RSI 50.0 &&

Open < Close && //bull

Open > Close && //bear

High - Close < High - Close )

{

b2 = Low-Point*5;

}

if (DoAlert && b2[1]!=0 && lastAlertTime!=Time[0])

{

sAlertMsg=" Alert - "+Symbol()+" "+TF2Str(Period())+"";

if (DoAlert) Alert(sAlertMsg);

lastAlertTime = Time[0];

if (alertMail) SendMail(sAlertMsg, "Alert!\n" + TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS )+"\n"+sAlertMsg);

}

else

if (b1[1]!=0 && lastAlertTime!=Time[0])

{

sAlertMsg=" Alert - "+Symbol()+" "+TF2Str(Period())+"";

if (DoAlert) Alert(sAlertMsg);

lastAlertTime = Time[0];

if (alertMail) SendMail(sAlertMsg, "Alert!\n" + TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS )+"\n"+sAlertMsg);

}

//}

//}

}

sinyal();

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

return(0);

}

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

string TF2Str(int iPeriod) {

switch(iPeriod) {

case PERIOD_M1: return("M1");

case PERIOD_M5: return("M5");

case PERIOD_M15: return("M15");

case PERIOD_M30: return("M30");

case PERIOD_H1: return("H1");

case PERIOD_H4: return("H4");

case PERIOD_D1: return("D1");

case PERIOD_W1: return("W1");

case PERIOD_MN1: return("MN1");

default: return("M"+iPeriod);

}

}

void sinyal(){

int shifti,Swingi,Swing_ni,uzli,ii,zui,zdi,mvi;

double LLi,HHi,BHi,BLi;

double Uzeli[10000][3];

// loop from first bar to current bar (with shift=0)

Swing_ni=0;Swingi=0;uzli=0;

BHi =High[zBar];BLi=Low[zBar];zui=zBar;zdi=zBar;

for (shifti=zBar;shifti>=0;shifti--) {

LLi=10000000;HHi=-100000000;

for (ii=shifti+LengthB;ii>=shifti+1;ii--) {

if (Low< LLi) {LLi=Low;}

if (High>HHi) {HHi=High;}

}

if (Low[shifti]HHi){

Swingi=2;

if (Swing_ni==1) {zui=shifti+1;}

if (Swing_ni==-1) {zdi=shifti+1;}

} else {

if (Low[shifti]<LLi) {Swingi=-1;}

if (High[shifti]>HHi) {Swingi=1;}

}

if (Swingi!=Swing_ni && Swing_ni!=0) {

if (Swingi==2) {

Swingi=-Swing_ni;BHi = High[shifti];BLi = Low[shifti];

}

uzli=uzli+1;

if (Swingi==1) {

Uzeli[1]=zdi;

Uzeli[2]=BLi;

}

if (Swingi==-1) {

Uzeli[1]=zui;

Uzeli[2]=BHi;

}

BHi = High[shifti];

BLi = Low[shifti];

}

if (Swingi==1) {

if (High[shifti]>=BHi) {BHi=High[shifti];zui=shifti;}}

if (Swingi==-1) {

if (Low[shifti]<=BLi) {BLi=Low[shifti]; zdi=shifti;}}

Swing_ni=Swingi;

}

for (ii=1;ii<=uzli;ii++) {

mvi=StrToInteger(DoubleToStr(Uzeli[1],0));

ExtMapBuffer2[mvi]=Uzeli[2];

previ=Uzeli[2];

}

}

도와주세요 ....

이 표시기는 신호가 적시에 나타나지 않습니다.

나는 매번 차트를 새로 고쳐야 한다

그리고 알림도 수정해주세요

감사해요

 
cebrez:

#property copyright ""

#property link ""

#property indicator_chart_window

#property indicator_buffers 3

#property indicator_color1 Crimson

#property indicator_color2 DodgerBlue

#property indicator_color3 clrBlue

int price = PRICE_OPEN;

extern int zBar = 1000;

extern int LengthB=12;

extern int LengthK=12;

extern int sCCI=2;

extern int sRSI=2;

int SoundAlertMode = 0;

int Soundonly = 0;

int Barcount;

double RSI;

double CCI;

datetime TimeBar;

double previ;

double ExtMapBuffer2[];

double alertBar1;

int sim=0;

double alertBar;

extern bool DoAlert=true;

extern bool alertMail=false;

datetime lastAlertTime;

//---- buffers

double b1[],b2[];double Gd_188;

double f0_3() {

double Ld_ret_0;

if (Digits < 4) Ld_ret_0 = 0.01;

else Ld_ret_0 = 0.0001;

return (Ld_ret_0);

}

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

//| Custom indicator initialization function |

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

int init()

{

//---- indicators

IndicatorBuffers(2);

IndicatorShortName("Investor");

SetIndexStyle(0,DRAW_ARROW,STYLE_SOLID,0);

SetIndexArrow(0,234);

SetIndexBuffer(0,b1);

SetIndexStyle(1,DRAW_ARROW,STYLE_SOLID,0);

SetIndexArrow(1,233);

SetIndexBuffer(1,b2);

SetIndexEmptyValue(2,0.0);

SetIndexDrawBegin(2, zBar);

SetIndexStyle(2,DRAW_ARROW,STYLE_SOLID,2);

SetIndexArrow(2,158);

SetIndexBuffer(2,ExtMapBuffer2);

Gd_188 = f0_3();

Barcount = 0;

//----

return(0);

}

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

//| Custor indicator deinitialization function |

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

int deinit()

{

//----

//----

return(0);

}

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

//| Custom indicator iteration function |

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

int start()

{

int i, counted_bars=IndicatorCounted();

int limit=Bars-counted_bars;

if(counted_bars>0) limit++;

string sAlertMsg;

/*// TImes

int Li_unused_8;

string Ls_28;

int Li_unused_36;

double Ld_0 = (Ask - Bid) / Gd_188;

if (Ld_0 > 1.0 && Ld_0 <= 10.0) Li_unused_8 = 4;

int Li_12 = Time[0] + 60 * Period() - TimeCurrent();

double Ld_16 = Li_12 / 60.0;

int Li_24 = Li_12 % 60;

Li_12 = (Li_12 - Li_12 % 60) / 60;

if (Li_24 <= 9) Ls_28 = "0";

if (Li_12 >= 1 && Li_12 <= 9) Li_unused_36 = -10;

else {

if (Li_12 >= 10 && Li_12 <= 99) Li_unused_36 = -13;

else {

if (Li_12 >= 100 && Li_12 <= 999) Li_unused_36 = -16;

else {

if (Li_12 >= 1000 && Li_12 <= 9999) Li_unused_36 = -24;

else

if (Li_12 >= 10000 && Li_12 <= 99999) Li_unused_36 = -29;

}

}

}

Comment("", "" + Li_12 + ":" + Ls_28 + "" + Li_24 + "",

"\n", "=======",

"\n", "" + Symbol() + "", " " + Period() + "",

"\n", "Spread : " + DoubleToStr(Ld_0, 1) + "",

"\n",

"\n", "",

"\n", "");

*/

// Arrows

for(i=0; i<limit; i++)

{

RSI=iRSI(NULL,0,sRSI,price,i);

CCI=iCCI(NULL,0,sCCI,price,i+1);

//double zz1 = iCustom(NULL,0,"Zigzag_v.2",zBar,LengthB,LengthK,1,i);

//double zz2 = iCustom(NULL,0,"Zigzag_v.2",zBar,LengthB,LengthK,0,i);

//if (zz1 != 0) {

if ( RSI > 80.0 && CCI < 50.0 &&

Open > Close && //bear

Open < Close && //bull

High - Close > High - Close )

{

b1 = High+Point*5;

}

//if (zz2 != 0) {

if ( RSI 50.0 &&

Open < Close && //bull

Open > Close && //bear

High - Close < High - Close )

{

b2 = Low-Point*5;

}

if (DoAlert && b2[1]!=0 && lastAlertTime!=Time[0])

{

sAlertMsg=" Alert - "+Symbol()+" "+TF2Str(Period())+"";

if (DoAlert) Alert(sAlertMsg);

lastAlertTime = Time[0];

if (alertMail) SendMail(sAlertMsg, "Alert!\n" + TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS )+"\n"+sAlertMsg);

}

else

if (b1[1]!=0 && lastAlertTime!=Time[0])

{

sAlertMsg=" Alert - "+Symbol()+" "+TF2Str(Period())+"";

if (DoAlert) Alert(sAlertMsg);

lastAlertTime = Time[0];

if (alertMail) SendMail(sAlertMsg, "Alert!\n" + TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS )+"\n"+sAlertMsg);

}

//}

//}

}

sinyal();

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

return(0);

}

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

string TF2Str(int iPeriod) {

switch(iPeriod) {

case PERIOD_M1: return("M1");

case PERIOD_M5: return("M5");

case PERIOD_M15: return("M15");

case PERIOD_M30: return("M30");

case PERIOD_H1: return("H1");

case PERIOD_H4: return("H4");

case PERIOD_D1: return("D1");

case PERIOD_W1: return("W1");

case PERIOD_MN1: return("MN1");

default: return("M"+iPeriod);

}

}

void sinyal(){

int shifti,Swingi,Swing_ni,uzli,ii,zui,zdi,mvi;

double LLi,HHi,BHi,BLi;

double Uzeli[10000][3];

// loop from first bar to current bar (with shift=0)

Swing_ni=0;Swingi=0;uzli=0;

BHi =High[zBar];BLi=Low[zBar];zui=zBar;zdi=zBar;

for (shifti=zBar;shifti>=0;shifti--) {

LLi=10000000;HHi=-100000000;

for (ii=shifti+LengthB;ii>=shifti+1;ii--) {

if (Low< LLi) {LLi=Low;}

if (High>HHi) {HHi=High;}

}

if (Low[shifti]HHi){

Swingi=2;

if (Swing_ni==1) {zui=shifti+1;}

if (Swing_ni==-1) {zdi=shifti+1;}

} else {

if (Low[shifti]<LLi) {Swingi=-1;}

if (High[shifti]>HHi) {Swingi=1;}

}

if (Swingi!=Swing_ni && Swing_ni!=0) {

if (Swingi==2) {

Swingi=-Swing_ni;BHi = High[shifti];BLi = Low[shifti];

}

uzli=uzli+1;

if (Swingi==1) {

Uzeli[1]=zdi;

Uzeli[2]=BLi;

}

if (Swingi==-1) {

Uzeli[1]=zui;

Uzeli[2]=BHi;

}

BHi = High[shifti];

BLi = Low[shifti];

}

if (Swingi==1) {

if (High[shifti]>=BHi) {BHi=High[shifti];zui=shifti;}}

if (Swingi==-1) {

if (Low[shifti]<=BLi) {BLi=Low[shifti]; zdi=shifti;}}

Swing_ni=Swingi;

}

for (ii=1;ii<=uzli;ii++) {

mvi=StrToInteger(DoubleToStr(Uzeli[1],0));

ExtMapBuffer2[mvi]=Uzeli[2];

previ=Uzeli[2];

}

}

도와주세요 ....

이 표시기는 신호가 적시에 나타나지 않습니다.

나는 매번 차트를 새로 고쳐야 한다

그리고 알림도 수정해주세요

감사해요

세브레즈

그것은 디컴파일된 부분과 다른 부분에서 함께 패치된 표시기이며 결과적으로 표시기 101을 다시 그리는 엉망이 되었습니다.

잊어 버리는 것이 가장 좋습니다.

 
mladen:

세브레즈

그것은 디컴파일된 부분과 다른 부분에서 함께 패치된 표시기이며 결과적으로 표시기 101을 다시 그리는 엉망이 되었습니다.

잊어 버리는 것이 가장 좋습니다.

하지만 이 표시기로 좋은 결과를 얻었습니다. 예, 다시 칠하지만 문제는 없습니다... 부탁드립니다.

여기 >>> https://www.mql5.com/en/forum/174385/page417 에서 ZigZag_v.2라는 다른 부분을 첨부합니다.

감사합니다