코딩 도움말 - 페이지 626 1...619620621622623624625626627628629630631632633...786 새 코멘트 Mladen Rakic 2016.04.19 18:43 #6251 stas0202: mladen 표시기에 대해 저를 도와주실 수 있겠습니까? 추가 게시물 필요 없음 다음은 경고가 있는 버전입니다(6가지 경고 유형이 추가됨): MASO 2_1 + alerts.mq4 파일: maso_2_1__alerts.mq4 6 kb stas0202 2016.04.19 18:54 #6252 mladen: 추가 게시물 필요 없음 다음은 경고가 있는 버전입니다(6가지 경고 유형이 추가됨): MASO 2_1 + alerts.mq4 아주 잘했어, 잘했어, 고마워 stas0202 2016.04.19 19:02 #6253 믈라덴 화살표를 만들기 위해 한 번만 더 요청할 수 있습니까? 막대만 닫았습니까? 중립 막대가 있는 경우 추세의 변화로 취급하십시오. Joakin 2016.04.19 20:33 #6254 MASO 표시기가 많은 경고처럼 보입니다. 너무한거 아닙니까? 정상적인 거래에 어떻게 사용합니까? stas0202 2016.04.19 20:44 #6255 martingail을 사용하여 특정 전략을 사용하는 바이너리 옵션의 경우 [삭제] 2016.04.20 08:43 #6256 pgtips: 안녕 믈라덴 이전 날 촛불 색상을 표시하는 표시기가 있습니까? 저는 5분 차트로 작업하고 시각적으로 백테스트를 하면 전날의 촛불 색을 확인하기 위해 혼란스러운 스와핑을 하게 됩니다. 빨간색 또는 녹색으로 새 창에서 하단을 따라 막대를 실행하여 이전 날짜의 양초 색상을 표시하는 것이 좋을 것입니다. 같은 방향으로 거래를 탐색하고 싶습니다. 이렇게 바가 붙어있습니다. 이게 가능해 ? 그래서 닫기 > 열리면 녹색, 그렇지 않으면 빨간색으로 추측됩니다.? 항상 도와주셔서 감사합니다 :-) PG 정중한 범프 :-) 파일: image_198926.jpg 2 kb mntiwana 2016.04.20 10:35 #6257 pgtips: 정중한 범프 :-) 이것이 당신을 도울 수 있다면? 그러나 sw에는 없습니다. 파일: eurusdm5_1.png 32 kb cebretz 2016.04.20 11:28 #6258 #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]; } } 도와주세요 .... 이 표시기는 신호가 적시에 나타나지 않습니다. 나는 매번 차트를 새로 고쳐야 한다 그리고 알림도 수정해주세요 감사해요 Coding help Ask! Need help with this Mladen Rakic 2016.04.20 15:45 #6259 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을 다시 그리는 엉망이 되었습니다. 잊어 버리는 것이 가장 좋습니다. cebretz 2016.04.20 16:01 #6260 mladen: 세브레즈 그것은 디컴파일된 부분과 다른 부분에서 함께 패치된 표시기이며 결과적으로 표시기 101을 다시 그리는 엉망이 되었습니다. 잊어 버리는 것이 가장 좋습니다. 하지만 이 표시기로 좋은 결과를 얻었습니다. 예, 다시 칠하지만 문제는 없습니다... 부탁드립니다. 여기 >>> https://www.mql5.com/en/forum/174385/page417 에서 ZigZag_v.2라는 다른 부분을 첨부합니다. 감사합니다 1...619620621622623624625626627628629630631632633...786 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
mladen 표시기에 대해 저를 도와주실 수 있겠습니까?
추가 게시물 필요 없음
다음은 경고가 있는 버전입니다(6가지 경고 유형이 추가됨): MASO 2_1 + alerts.mq4
추가 게시물 필요 없음
아주 잘했어, 잘했어, 고마워
믈라덴
화살표를 만들기 위해 한 번만 더 요청할 수 있습니까? 막대만 닫았습니까? 중립 막대가 있는 경우 추세의 변화로 취급하십시오.
MASO 표시기가 많은 경고처럼 보입니다.
너무한거 아닙니까? 정상적인 거래에 어떻게 사용합니까?
martingail을 사용하여 특정 전략을 사용하는 바이너리 옵션의 경우
안녕 믈라덴
이전 날 촛불 색상을 표시하는 표시기가 있습니까?
저는 5분 차트로 작업하고 시각적으로 백테스트를 하면 전날의 촛불 색을 확인하기 위해 혼란스러운 스와핑을 하게 됩니다. 빨간색 또는 녹색으로 새 창에서 하단을 따라 막대를 실행하여 이전 날짜의 양초 색상을 표시하는 것이 좋을 것입니다. 같은 방향으로 거래를 탐색하고 싶습니다.
이렇게 바가 붙어있습니다. 이게 가능해 ?
그래서 닫기 > 열리면 녹색, 그렇지 않으면 빨간색으로 추측됩니다.?
항상 도와주셔서 감사합니다 :-)
PG정중한 범프 :-)
정중한 범프 :-)
이것이 당신을 도울 수 있다면? 그러나 sw에는 없습니다.
#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];
}
}
도와주세요 ....
이 표시기는 신호가 적시에 나타나지 않습니다.
나는 매번 차트를 새로 고쳐야 한다
그리고 알림도 수정해주세요
감사해요
#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을 다시 그리는 엉망이 되었습니다.
잊어 버리는 것이 가장 좋습니다.
세브레즈
그것은 디컴파일된 부분과 다른 부분에서 함께 패치된 표시기이며 결과적으로 표시기 101을 다시 그리는 엉망이 되었습니다.
잊어 버리는 것이 가장 좋습니다.하지만 이 표시기로 좋은 결과를 얻었습니다. 예, 다시 칠하지만 문제는 없습니다... 부탁드립니다.
여기 >>> https://www.mql5.com/en/forum/174385/page417 에서 ZigZag_v.2라는 다른 부분을 첨부합니다.
감사합니다