코딩 도움말 - 페이지 476 1...469470471472473474475476477478479480481482483...786 새 코멘트 Jovager 2015.05.21 04:57 #4751 여보세요, 차트에 고정된 텍스트 레이블을 배치하기 위해서만 지표가 필요합니다. 모델을 보여주실 수 있나요? 감사해요. 조 Mladen Rakic 2015.05.21 05:01 #4752 Jovager: 여보세요, 차트에 고정된 텍스트 레이블을 배치하기 위해서만 지표가 필요합니다. 모델을 보여주실 수 있나요? 감사해요. 조 조 이 스레드를 확인하셨습니까? https://www.mql5.com/en/forum/179041 Jovager 2015.05.21 08:20 #4753 mladen: 조 이 스레드를 확인 했습니까 : https://www.mql5.com/en/forum/179041 믈라덴, 스레드에서 정확히 내가 필요로 하는 "TRO_MyNotes"를 가져오는 게시물을 찾았습니다. 다시 한 번 Mladen, 많은 도움을 주셔서 감사합니다. 조 godricha 2015.05.21 17:31 #4754 누군가 이 문제를 도울 수 있는지 궁금합니다(게시물 #4739)? 감사해요. Mladen Rakic 2015.05.21 19:21 #4755 godrich: 내가 묻는 것이 가능한지 확실하지 않지만 첨부 된 표시기와 관련하여 채널에 나타나는 노란색 선을 "true"로 만들 수 있습니까? 이것은 노란색 선이 매끄럽게/다시 계산되지 않는다는 것을 의미합니다. 감사해요. 고드리치 그럴 순 없어 이것은 Hodrick/Prescott 필터입니다. 그 특성은 다시 계산하는 것입니다. 그렇게 하려는 시도가 있었지만(예: 끝을 가리키도록) 결과는 원본과 거의 유사하지 않습니다. Fausto Nunziante Del Gaudio 2015.05.21 21:47 #4756 안녕, icustom 함수 를 사용하여 둥근 ma MTF 양초 표시기를 만들려고 합니다. 성공하지 않으면 오류가 전혀 없지만 연결된 표시기는 아무 것도 표시하지 않습니다. 도와주세요. 감사해요. 소스 표시기 코드는 다음과 같습니다. //+------------------------------------------------------------------+ //| MAR.mq4 | //| Copyright © 2014, Gehtsoft USA LLC | //| http://fxcodebase.com | //+------------------------------------------------------------------+ #property copyright "Copyright © 2014, Gehtsoft USA LLC" #property link "http://fxcodebase.com" #property indicator_chart_window #property indicator_buffers 3 #property indicator_color1 LimeGreen #property indicator_color2 Orange #property indicator_color3 Orange #property indicator_width1 2 #property indicator_width2 2 #property indicator_width3 2 extern int timeFrame = 0; // Time frame to use extern int Length=8; extern int Method=0; // 0 - SMA // 1 - EMA // 2 - SMMA // 3 - LWMA extern double Round=2; extern int Price=0; // Applied price // 0 - Close // 1 - Open // 2 - High // 3 - Low // 4 - Median // 5 - Typical // 6 - Weighted extern int BarsToCalculate = 0; double MAR[],MARda[],MARdb[],slope[] ; double MA[], MovAle[]; double MaRo; string indicatorFileName; bool returnBars; int init() { IndicatorShortName("Rounded ma MTF"); IndicatorBuffers(6); SetIndexBuffer(0,MAR); SetIndexBuffer(1,MARda); SetIndexBuffer(2,MARdb); SetIndexBuffer(3,MA); SetIndexBuffer(4,MovAle); SetIndexBuffer(5,slope); indicatorFileName = WindowExpertName(); returnBars = timeFrame==-999; if (returnBars) return(0); if (timeFrame==0) timeFrame= Period(); MaRo=Round*Point; return(0); } int deinit() { return(0); } int start() { int counted_bars=IndicatorCounted(); if(counted_bars<0) return(-1); if(counted_bars>0) counted_bars--; int limit = MathMin(Bars-counted_bars,Bars-1); if (returnBars) { MAR[0] = MathMin(limit+1,Bars-1); return(0); } if (timeFrame!=Period()) { limit = (int)MathMax(limit,MathMin(Bars-1,iCustom(NULL,timeFrame,indicatorFileName,-999,0,0)*timeFrame/Period())); if (BarsToCalculate>0) limit = MathMin(limit,BarsToCalculate); if (slope[limit]==-1) ClearPoint(limit,MARda,MARdb); for (int i=limit; i>=0; i--) { int y = iBarShift(NULL,timeFrame,Time); MAR = iCustom(NULL,timeFrame,indicatorFileName,0,Length,Method,Round,Price,BarsToCalculate,0,y); slope = iCustom(NULL,timeFrame,indicatorFileName,0,Length,Method,Round,Price,BarsToCalculate,5,y); MARda = EMPTY_VALUE; MARdb = EMPTY_VALUE; if (slope == -1) PlotPoint(i,MARda,MARdb,MAR); } return(0); } // // // // // if (BarsToCalculate>0) limit = MathMin(limit,BarsToCalculate); if (slope[limit]==-1) ClearPoint(limit,MARda,MARdb); for(int pos=limit; pos>=0; pos--) { MA[pos]=iMA(NULL, 0, Length, 0, Method, Price, pos); if (MA[pos]>MA[pos+1]+MaRo || MA[pos]MAR[pos+1]+MaRo || MA[pos]MAR[pos+1] && MovAle[pos+1]==1.) || (MA[pos]<MAR[pos+1] && MovAle[pos+1]==-1.)) MAR[pos]=MA[pos]; else MAR[pos]=MAR[pos+1]; if (MAR[pos]<MAR[pos+1]) MovAle[pos]=-1.; else if (MAR[pos]>MAR[pos+1]) MovAle[pos]=1.; else MovAle[pos]=MovAle[pos+1]; MARda[pos] = EMPTY_VALUE; MARdb[pos] = EMPTY_VALUE; slope[pos] = slope[pos+1]; if (MAR[pos]>MAR[pos+1]) slope[pos] = 1; if (MAR[pos]<MAR[pos+1]) slope[pos] = -1; if (slope[pos]==-1) PlotPoint(pos,MARda,MARdb,MAR); } return(0); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ // // // // // void ClearPoint(int i,double& first[],double& second[]) { if ((second != EMPTY_VALUE) && (second != EMPTY_VALUE)) second = EMPTY_VALUE; else if ((first != EMPTY_VALUE) && (first != EMPTY_VALUE) && (first == EMPTY_VALUE)) first = EMPTY_VALUE; } // // // // // void PlotPoint(int i,double& first[],double& second[],double& from[]) { if (first == EMPTY_VALUE) { if (first == EMPTY_VALUE) { first = from; first = from; second = EMPTY_VALUE; } else { second = from; second = from; first = EMPTY_VALUE; } } else { first = from; second = EMPTY_VALUE; } }[/CODE] and this is my indicator code: [CODE]//+------------------------------------------------------------------+ //| MAR.mq4 | //| Copyright © 2014, Gehtsoft USA LLC | //| http://fxcodebase.com | //+------------------------------------------------------------------+ #property copyright "Copyright © 2014, Gehtsoft USA LLC" #property link "http://fxcodebase.com" #property indicator_chart_window #property indicator_buffers 3 #property indicator_color1 LimeGreen #property indicator_color2 Orange #property indicator_color3 Orange #property indicator_width1 2 #property indicator_width2 2 #property indicator_width3 2 extern int timeFrame = 0; extern int Length = 8; extern int Method = 0; extern double Round = 2; extern int Price = 0; extern int BarsToCalculate = 0; extern color WickUpColor = DarkGreen; extern color WickDnColor = FireBrick; extern color BodyUpColor = LimeGreen; extern color BodyDnColor = Orange; extern int WickWidth = 1; extern int BodyWidth = 2; double UpBuffer[]; double DnBuffer[]; double UpbBuffer[]; double DnbBuffer[]; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int init() { SetIndexBuffer(0,UpBuffer); SetIndexStyle(0,DRAW_HISTOGRAM, EMPTY, WickWidth, WickUpColor); SetIndexBuffer(1,DnBuffer); SetIndexStyle(1,DRAW_HISTOGRAM, EMPTY, WickWidth, WickDnColor); SetIndexBuffer(2,UpbBuffer); SetIndexStyle(2,DRAW_HISTOGRAM, EMPTY, BodyWidth, BodyUpColor); SetIndexBuffer(3,DnbBuffer); SetIndexStyle(3,DRAW_HISTOGRAM, EMPTY, BodyWidth, BodyDnColor); IndicatorShortName("Rounded ma MTF candles ("+timeFrame+","+Length+","+Round+")"); Length = MathMax(Length,1); switch(timeFrame) { case 1 : string TimeFrameStr="Period_M1"; break; case 5 : TimeFrameStr="Period_M5"; break; case 15 : TimeFrameStr="Period_M15"; break; case 30 : TimeFrameStr="Period_M30"; break; case 60 : TimeFrameStr="Period_H1"; break; case 240 : TimeFrameStr="Period_H4"; break; case 1440 : TimeFrameStr="Period_D1"; break; case 10080 : TimeFrameStr="Period_W1"; break; case 43200 : TimeFrameStr="Period_MN1"; break; default : TimeFrameStr="Current Timeframe"; } IndicatorShortName("Rounded ma MTF candles ("+TimeFrameStr+")"); return(0); } //---- //+------------------------------------------------------------------+ //| MTF function | //+------------------------------------------------------------------+ int start() { int counted_bars=IndicatorCounted(); if(counted_bars<0) return(-1); if(counted_bars>0) counted_bars--; int limit = MathMin(MathMax(Bars-counted_bars,3*timeFrame/Period()),Bars-1); for(int i=limit;i>=0;i--) { int y = iBarShift(NULL,timeFrame,Time); int slope=iCustom(Symbol(),timeFrame,"Rounded ma MTF",Length,Method,Round,Price,BarsToCalculate,5,y); if (slope == 1) { UpBuffer=High; DnBuffer=Low; UpbBuffer = MathMax(Open,Close); DnbBuffer = MathMin(Open,Close); } if (slope == -1) { DnBuffer=High; UpBuffer=Low; DnbBuffer = MathMax(Open,Close); UpbBuffer = MathMin(Open,Close); } } return(0); } //+------------------------------------------------------------------+ Coding help Trend indicators Please fix this indicator Mladen Rakic 2015.05.21 21:57 #4757 thefxpros: 안녕, icustom 기능을 사용하여 둥근 ma MTF 양초 표시기를 만들려고 합니다. 성공하지 않으면 오류가 전혀 없지만 연결된 표시기는 아무 것도 표시하지 않습니다. 도와주세요. 감사해요. 소스 표시기 코드는 다음과 같습니다. //+------------------------------------------------------------------+ //| MAR.mq4 | //| Copyright © 2014, Gehtsoft USA LLC | //| http://fxcodebase.com | //+------------------------------------------------------------------+ #property copyright "Copyright © 2014, Gehtsoft USA LLC" #property link "http://fxcodebase.com" #property indicator_chart_window #property indicator_buffers 3 #property indicator_color1 LimeGreen #property indicator_color2 Orange #property indicator_color3 Orange #property indicator_width1 2 #property indicator_width2 2 #property indicator_width3 2 extern int timeFrame = 0; // Time frame to use extern int Length=8; extern int Method=0; // 0 - SMA // 1 - EMA // 2 - SMMA // 3 - LWMA extern double Round=2; extern int Price=0; // Applied price // 0 - Close // 1 - Open // 2 - High // 3 - Low // 4 - Median // 5 - Typical // 6 - Weighted extern int BarsToCalculate = 0; double MAR[],MARda[],MARdb[],slope[] ; double MA[], MovAle[]; double MaRo; string indicatorFileName; bool returnBars; int init() { IndicatorShortName("Rounded ma MTF"); IndicatorBuffers(6); SetIndexBuffer(0,MAR); SetIndexBuffer(1,MARda); SetIndexBuffer(2,MARdb); SetIndexBuffer(3,MA); SetIndexBuffer(4,MovAle); SetIndexBuffer(5,slope); indicatorFileName = WindowExpertName(); returnBars = timeFrame==-999; if (returnBars) return(0); if (timeFrame==0) timeFrame= Period(); MaRo=Round*Point; return(0); } int deinit() { return(0); } int start() { int counted_bars=IndicatorCounted(); if(counted_bars<0) return(-1); if(counted_bars>0) counted_bars--; int limit = MathMin(Bars-counted_bars,Bars-1); if (returnBars) { MAR[0] = MathMin(limit+1,Bars-1); return(0); } if (timeFrame!=Period()) { limit = (int)MathMax(limit,MathMin(Bars-1,iCustom(NULL,timeFrame,indicatorFileName,-999,0,0)*timeFrame/Period())); if (BarsToCalculate>0) limit = MathMin(limit,BarsToCalculate); if (slope[limit]==-1) ClearPoint(limit,MARda,MARdb); for (int i=limit; i>=0; i--) { int y = iBarShift(NULL,timeFrame,Time); MAR = iCustom(NULL,timeFrame,indicatorFileName,0,Length,Method,Round,Price,BarsToCalculate,0,y); slope = iCustom(NULL,timeFrame,indicatorFileName,0,Length,Method,Round,Price,BarsToCalculate,5,y); MARda = EMPTY_VALUE; MARdb = EMPTY_VALUE; if (slope == -1) PlotPoint(i,MARda,MARdb,MAR); } return(0); } // // // // // if (BarsToCalculate>0) limit = MathMin(limit,BarsToCalculate); if (slope[limit]==-1) ClearPoint(limit,MARda,MARdb); for(int pos=limit; pos>=0; pos--) { MA[pos]=iMA(NULL, 0, Length, 0, Method, Price, pos); if (MA[pos]>MA[pos+1]+MaRo || MA[pos]MAR[pos+1]+MaRo || MA[pos]MAR[pos+1] && MovAle[pos+1]==1.) || (MA[pos]<MAR[pos+1] && MovAle[pos+1]==-1.)) MAR[pos]=MA[pos]; else MAR[pos]=MAR[pos+1]; if (MAR[pos]<MAR[pos+1]) MovAle[pos]=-1.; else if (MAR[pos]>MAR[pos+1]) MovAle[pos]=1.; else MovAle[pos]=MovAle[pos+1]; MARda[pos] = EMPTY_VALUE; MARdb[pos] = EMPTY_VALUE; slope[pos] = slope[pos+1]; if (MAR[pos]>MAR[pos+1]) slope[pos] = 1; if (MAR[pos]<MAR[pos+1]) slope[pos] = -1; if (slope[pos]==-1) PlotPoint(pos,MARda,MARdb,MAR); } return(0); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ // // // // // void ClearPoint(int i,double& first[],double& second[]) { if ((second != EMPTY_VALUE) && (second != EMPTY_VALUE)) second = EMPTY_VALUE; else if ((first != EMPTY_VALUE) && (first != EMPTY_VALUE) && (first == EMPTY_VALUE)) first = EMPTY_VALUE; } // // // // // void PlotPoint(int i,double& first[],double& second[],double& from[]) { if (first == EMPTY_VALUE) { if (first == EMPTY_VALUE) { first = from; first = from; second = EMPTY_VALUE; } else { second = from; second = from; first = EMPTY_VALUE; } } else { first = from; second = EMPTY_VALUE; } }[/CODE] and this is my indicator code: [CODE]//+------------------------------------------------------------------+ //| MAR.mq4 | //| Copyright © 2014, Gehtsoft USA LLC | //| http://fxcodebase.com | //+------------------------------------------------------------------+ #property copyright "Copyright © 2014, Gehtsoft USA LLC" #property link "http://fxcodebase.com" #property indicator_chart_window #property indicator_buffers 3 #property indicator_color1 LimeGreen #property indicator_color2 Orange #property indicator_color3 Orange #property indicator_width1 2 #property indicator_width2 2 #property indicator_width3 2 extern int timeFrame = 0; extern int Length = 8; extern int Method = 0; extern double Round = 2; extern int Price = 0; extern int BarsToCalculate = 0; extern color WickUpColor = DarkGreen; extern color WickDnColor = FireBrick; extern color BodyUpColor = LimeGreen; extern color BodyDnColor = Orange; extern int WickWidth = 1; extern int BodyWidth = 2; double UpBuffer[]; double DnBuffer[]; double UpbBuffer[]; double DnbBuffer[]; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int init() { SetIndexBuffer(0,UpBuffer); SetIndexStyle(0,DRAW_HISTOGRAM, EMPTY, WickWidth, WickUpColor); SetIndexBuffer(1,DnBuffer); SetIndexStyle(1,DRAW_HISTOGRAM, EMPTY, WickWidth, WickDnColor); SetIndexBuffer(2,UpbBuffer); SetIndexStyle(2,DRAW_HISTOGRAM, EMPTY, BodyWidth, BodyUpColor); SetIndexBuffer(3,DnbBuffer); SetIndexStyle(3,DRAW_HISTOGRAM, EMPTY, BodyWidth, BodyDnColor); IndicatorShortName("Rounded ma MTF candles ("+timeFrame+","+Length+","+Round+")"); Length = MathMax(Length,1); switch(timeFrame) { case 1 : string TimeFrameStr="Period_M1"; break; case 5 : TimeFrameStr="Period_M5"; break; case 15 : TimeFrameStr="Period_M15"; break; case 30 : TimeFrameStr="Period_M30"; break; case 60 : TimeFrameStr="Period_H1"; break; case 240 : TimeFrameStr="Period_H4"; break; case 1440 : TimeFrameStr="Period_D1"; break; case 10080 : TimeFrameStr="Period_W1"; break; case 43200 : TimeFrameStr="Period_MN1"; break; default : TimeFrameStr="Current Timeframe"; } IndicatorShortName("Rounded ma MTF candles ("+TimeFrameStr+")"); return(0); } //---- //+------------------------------------------------------------------+ //| MTF function | //+------------------------------------------------------------------+ int start() { int counted_bars=IndicatorCounted(); if(counted_bars<0) return(-1); if(counted_bars>0) counted_bars--; int limit = MathMin(MathMax(Bars-counted_bars,3*timeFrame/Period()),Bars-1); for(int i=limit;i>=0;i--) { int y = iBarShift(NULL,timeFrame,Time); int slope=iCustom(Symbol(),timeFrame,"Rounded ma MTF",Length,Method,Round,Price,BarsToCalculate,5,y); if (slope == 1) { UpBuffer=High; DnBuffer=Low; UpbBuffer = MathMax(Open,Close); DnbBuffer = MathMin(Open,Close); } if (slope == -1) { DnBuffer=High; UpBuffer=Low; DnbBuffer = MathMax(Open,Close); UpbBuffer = MathMin(Open,Close); } } return(0); } //+------------------------------------------------------------------+ 바꾸다 기울기=iCustom(Symbol(),timeFrame,"반올림된 ma MTF",길이,방법,반올림,가격,BarsToCalculate,5,y); ~와 함께 기울기=iCustom(Symbol(),timeFrame,"반올림된 ma MTF",0,길이,방법,반올림,가격,BarsToCalculate,5,y); zigflip 2015.05.22 00:33 #4758 mladen: 이것은 동일한 차트에 gann sq9 mxi nmc 표시기가 있는 zup 150을 배치할 때 얻는 것입니다. 감사합니다. 제 오류일 수 있습니다. Poruchik에서 버전도 얻었습니다. 감사합니다 Mladen Rakic 2015.05.22 16:20 #4759 zigflip: 감사합니다. 제 오류일 수도 있습니다. Poruchik에서 버전도 받았습니다. 진심으로 무슨 일이 있었는지 알려주세요 특정 메타 트레이더 빌드의 문제일 수도 있습니다(현재 빌드 788 사용). [삭제] 2015.05.25 06:38 #4760 mladen: 아시다시피 ZigZag는 다시 칠할 수 있습니다. 알림(팝업)을 다시 페인팅 표시기의 신호로 사용하는 것은 매우 위험한 일이며 이것이 내가 오래전에 만들지 않기로 결정한 이유입니다. 표시기, 나중에 설명해야 하는 일부 경고가 추가된 이유, 재계산 표시기에서 신호를 받는 이유를 잘 모르는 사람들에게 문안 인사 감사합니다. 귀하의 응답에 감사드립니다 1...469470471472473474475476477478479480481482483...786 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
여보세요,
차트에 고정된 텍스트 레이블을 배치하기 위해서만 지표가 필요합니다.
모델을 보여주실 수 있나요?
감사해요.
조
여보세요,
차트에 고정된 텍스트 레이블을 배치하기 위해서만 지표가 필요합니다.
모델을 보여주실 수 있나요?
감사해요.
조조
이 스레드를 확인하셨습니까? https://www.mql5.com/en/forum/179041
조 이 스레드를 확인 했습니까 : https://www.mql5.com/en/forum/179041
믈라덴,
스레드에서 정확히 내가 필요로 하는 "TRO_MyNotes"를 가져오는 게시물을 찾았습니다.
다시 한 번 Mladen, 많은 도움을 주셔서 감사합니다.
조
누군가 이 문제를 도울 수 있는지 궁금합니다(게시물 #4739)?
감사해요.
내가 묻는 것이 가능한지 확실하지 않지만 첨부 된 표시기와 관련하여 채널에 나타나는 노란색 선을 "true"로 만들 수 있습니까?
이것은 노란색 선이 매끄럽게/다시 계산되지 않는다는 것을 의미합니다.
감사해요.고드리치
그럴 순 없어
이것은 Hodrick/Prescott 필터입니다. 그 특성은 다시 계산하는 것입니다. 그렇게 하려는 시도가 있었지만(예: 끝을 가리키도록) 결과는 원본과 거의 유사하지 않습니다.
안녕,
icustom 함수 를 사용하여 둥근 ma MTF 양초 표시기를 만들려고 합니다. 성공하지 않으면 오류가 전혀 없지만 연결된 표시기는 아무 것도 표시하지 않습니다. 도와주세요. 감사해요.
소스 표시기 코드는 다음과 같습니다.
//| MAR.mq4 |
//| Copyright © 2014, Gehtsoft USA LLC |
//| http://fxcodebase.com |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2014, Gehtsoft USA LLC"
#property link "http://fxcodebase.com"
#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 LimeGreen
#property indicator_color2 Orange
#property indicator_color3 Orange
#property indicator_width1 2
#property indicator_width2 2
#property indicator_width3 2
extern int timeFrame = 0; // Time frame to use
extern int Length=8;
extern int Method=0; // 0 - SMA
// 1 - EMA
// 2 - SMMA
// 3 - LWMA
extern double Round=2;
extern int Price=0; // Applied price
// 0 - Close
// 1 - Open
// 2 - High
// 3 - Low
// 4 - Median
// 5 - Typical
// 6 - Weighted
extern int BarsToCalculate = 0;
double MAR[],MARda[],MARdb[],slope[] ;
double MA[], MovAle[];
double MaRo;
string indicatorFileName;
bool returnBars;
int init()
{
IndicatorShortName("Rounded ma MTF");
IndicatorBuffers(6);
SetIndexBuffer(0,MAR);
SetIndexBuffer(1,MARda);
SetIndexBuffer(2,MARdb);
SetIndexBuffer(3,MA);
SetIndexBuffer(4,MovAle);
SetIndexBuffer(5,slope);
indicatorFileName = WindowExpertName();
returnBars = timeFrame==-999; if (returnBars) return(0);
if (timeFrame==0) timeFrame= Period();
MaRo=Round*Point;
return(0);
}
int deinit()
{
return(0);
}
int start()
{
int counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
int limit = MathMin(Bars-counted_bars,Bars-1);
if (returnBars) { MAR[0] = MathMin(limit+1,Bars-1); return(0); }
if (timeFrame!=Period())
{
limit = (int)MathMax(limit,MathMin(Bars-1,iCustom(NULL,timeFrame,indicatorFileName,-999,0,0)*timeFrame/Period()));
if (BarsToCalculate>0) limit = MathMin(limit,BarsToCalculate);
if (slope[limit]==-1) ClearPoint(limit,MARda,MARdb);
for (int i=limit; i>=0; i--)
{
int y = iBarShift(NULL,timeFrame,Time);
MAR = iCustom(NULL,timeFrame,indicatorFileName,0,Length,Method,Round,Price,BarsToCalculate,0,y);
slope = iCustom(NULL,timeFrame,indicatorFileName,0,Length,Method,Round,Price,BarsToCalculate,5,y);
MARda = EMPTY_VALUE;
MARdb = EMPTY_VALUE;
if (slope == -1) PlotPoint(i,MARda,MARdb,MAR);
}
return(0);
}
//
//
//
//
//
if (BarsToCalculate>0) limit = MathMin(limit,BarsToCalculate);
if (slope[limit]==-1) ClearPoint(limit,MARda,MARdb);
for(int pos=limit; pos>=0; pos--)
{
MA[pos]=iMA(NULL, 0, Length, 0, Method, Price, pos);
if (MA[pos]>MA[pos+1]+MaRo || MA[pos]MAR[pos+1]+MaRo || MA[pos]MAR[pos+1] && MovAle[pos+1]==1.) || (MA[pos]<MAR[pos+1] && MovAle[pos+1]==-1.))
MAR[pos]=MA[pos];
else MAR[pos]=MAR[pos+1];
if (MAR[pos]<MAR[pos+1])
MovAle[pos]=-1.;
else
if (MAR[pos]>MAR[pos+1])
MovAle[pos]=1.;
else MovAle[pos]=MovAle[pos+1];
MARda[pos] = EMPTY_VALUE;
MARdb[pos] = EMPTY_VALUE;
slope[pos] = slope[pos+1];
if (MAR[pos]>MAR[pos+1]) slope[pos] = 1;
if (MAR[pos]<MAR[pos+1]) slope[pos] = -1;
if (slope[pos]==-1) PlotPoint(pos,MARda,MARdb,MAR);
}
return(0);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
//
//
//
//
//
void ClearPoint(int i,double& first[],double& second[])
{
if ((second != EMPTY_VALUE) && (second != EMPTY_VALUE))
second = EMPTY_VALUE;
else
if ((first != EMPTY_VALUE) && (first != EMPTY_VALUE) && (first == EMPTY_VALUE))
first = EMPTY_VALUE;
}
//
//
//
//
//
void PlotPoint(int i,double& first[],double& second[],double& from[])
{
if (first == EMPTY_VALUE)
{
if (first == EMPTY_VALUE) {
first = from;
first = from;
second = EMPTY_VALUE;
}
else {
second = from;
second = from;
first = EMPTY_VALUE;
}
}
else
{
first = from;
second = EMPTY_VALUE;
}
}[/CODE]
and this is my indicator code:
[CODE]//+------------------------------------------------------------------+
//| MAR.mq4 |
//| Copyright © 2014, Gehtsoft USA LLC |
//| http://fxcodebase.com |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2014, Gehtsoft USA LLC"
#property link "http://fxcodebase.com"
#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 LimeGreen
#property indicator_color2 Orange
#property indicator_color3 Orange
#property indicator_width1 2
#property indicator_width2 2
#property indicator_width3 2
extern int timeFrame = 0;
extern int Length = 8;
extern int Method = 0;
extern double Round = 2;
extern int Price = 0;
extern int BarsToCalculate = 0;
extern color WickUpColor = DarkGreen;
extern color WickDnColor = FireBrick;
extern color BodyUpColor = LimeGreen;
extern color BodyDnColor = Orange;
extern int WickWidth = 1;
extern int BodyWidth = 2;
double UpBuffer[];
double DnBuffer[];
double UpbBuffer[];
double DnbBuffer[];
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int init()
{
SetIndexBuffer(0,UpBuffer); SetIndexStyle(0,DRAW_HISTOGRAM, EMPTY, WickWidth, WickUpColor);
SetIndexBuffer(1,DnBuffer); SetIndexStyle(1,DRAW_HISTOGRAM, EMPTY, WickWidth, WickDnColor);
SetIndexBuffer(2,UpbBuffer); SetIndexStyle(2,DRAW_HISTOGRAM, EMPTY, BodyWidth, BodyUpColor);
SetIndexBuffer(3,DnbBuffer); SetIndexStyle(3,DRAW_HISTOGRAM, EMPTY, BodyWidth, BodyDnColor);
IndicatorShortName("Rounded ma MTF candles ("+timeFrame+","+Length+","+Round+")");
Length = MathMax(Length,1);
switch(timeFrame)
{
case 1 : string TimeFrameStr="Period_M1"; break;
case 5 : TimeFrameStr="Period_M5"; break;
case 15 : TimeFrameStr="Period_M15"; break;
case 30 : TimeFrameStr="Period_M30"; break;
case 60 : TimeFrameStr="Period_H1"; break;
case 240 : TimeFrameStr="Period_H4"; break;
case 1440 : TimeFrameStr="Period_D1"; break;
case 10080 : TimeFrameStr="Period_W1"; break;
case 43200 : TimeFrameStr="Period_MN1"; break;
default : TimeFrameStr="Current Timeframe";
}
IndicatorShortName("Rounded ma MTF candles ("+TimeFrameStr+")");
return(0);
}
//----
//+------------------------------------------------------------------+
//| MTF function |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
int limit = MathMin(MathMax(Bars-counted_bars,3*timeFrame/Period()),Bars-1);
for(int i=limit;i>=0;i--)
{
int y = iBarShift(NULL,timeFrame,Time);
int slope=iCustom(Symbol(),timeFrame,"Rounded ma MTF",Length,Method,Round,Price,BarsToCalculate,5,y);
if (slope == 1) { UpBuffer=High; DnBuffer=Low; UpbBuffer = MathMax(Open,Close); DnbBuffer = MathMin(Open,Close); }
if (slope == -1) { DnBuffer=High; UpBuffer=Low; DnbBuffer = MathMax(Open,Close); UpbBuffer = MathMin(Open,Close); }
}
return(0);
}
//+------------------------------------------------------------------+
안녕,
icustom 기능을 사용하여 둥근 ma MTF 양초 표시기를 만들려고 합니다. 성공하지 않으면 오류가 전혀 없지만 연결된 표시기는 아무 것도 표시하지 않습니다. 도와주세요. 감사해요.
소스 표시기 코드는 다음과 같습니다.
//| MAR.mq4 |
//| Copyright © 2014, Gehtsoft USA LLC |
//| http://fxcodebase.com |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2014, Gehtsoft USA LLC"
#property link "http://fxcodebase.com"
#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 LimeGreen
#property indicator_color2 Orange
#property indicator_color3 Orange
#property indicator_width1 2
#property indicator_width2 2
#property indicator_width3 2
extern int timeFrame = 0; // Time frame to use
extern int Length=8;
extern int Method=0; // 0 - SMA
// 1 - EMA
// 2 - SMMA
// 3 - LWMA
extern double Round=2;
extern int Price=0; // Applied price
// 0 - Close
// 1 - Open
// 2 - High
// 3 - Low
// 4 - Median
// 5 - Typical
// 6 - Weighted
extern int BarsToCalculate = 0;
double MAR[],MARda[],MARdb[],slope[] ;
double MA[], MovAle[];
double MaRo;
string indicatorFileName;
bool returnBars;
int init()
{
IndicatorShortName("Rounded ma MTF");
IndicatorBuffers(6);
SetIndexBuffer(0,MAR);
SetIndexBuffer(1,MARda);
SetIndexBuffer(2,MARdb);
SetIndexBuffer(3,MA);
SetIndexBuffer(4,MovAle);
SetIndexBuffer(5,slope);
indicatorFileName = WindowExpertName();
returnBars = timeFrame==-999; if (returnBars) return(0);
if (timeFrame==0) timeFrame= Period();
MaRo=Round*Point;
return(0);
}
int deinit()
{
return(0);
}
int start()
{
int counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
int limit = MathMin(Bars-counted_bars,Bars-1);
if (returnBars) { MAR[0] = MathMin(limit+1,Bars-1); return(0); }
if (timeFrame!=Period())
{
limit = (int)MathMax(limit,MathMin(Bars-1,iCustom(NULL,timeFrame,indicatorFileName,-999,0,0)*timeFrame/Period()));
if (BarsToCalculate>0) limit = MathMin(limit,BarsToCalculate);
if (slope[limit]==-1) ClearPoint(limit,MARda,MARdb);
for (int i=limit; i>=0; i--)
{
int y = iBarShift(NULL,timeFrame,Time);
MAR = iCustom(NULL,timeFrame,indicatorFileName,0,Length,Method,Round,Price,BarsToCalculate,0,y);
slope = iCustom(NULL,timeFrame,indicatorFileName,0,Length,Method,Round,Price,BarsToCalculate,5,y);
MARda = EMPTY_VALUE;
MARdb = EMPTY_VALUE;
if (slope == -1) PlotPoint(i,MARda,MARdb,MAR);
}
return(0);
}
//
//
//
//
//
if (BarsToCalculate>0) limit = MathMin(limit,BarsToCalculate);
if (slope[limit]==-1) ClearPoint(limit,MARda,MARdb);
for(int pos=limit; pos>=0; pos--)
{
MA[pos]=iMA(NULL, 0, Length, 0, Method, Price, pos);
if (MA[pos]>MA[pos+1]+MaRo || MA[pos]MAR[pos+1]+MaRo || MA[pos]MAR[pos+1] && MovAle[pos+1]==1.) || (MA[pos]<MAR[pos+1] && MovAle[pos+1]==-1.))
MAR[pos]=MA[pos];
else MAR[pos]=MAR[pos+1];
if (MAR[pos]<MAR[pos+1])
MovAle[pos]=-1.;
else
if (MAR[pos]>MAR[pos+1])
MovAle[pos]=1.;
else MovAle[pos]=MovAle[pos+1];
MARda[pos] = EMPTY_VALUE;
MARdb[pos] = EMPTY_VALUE;
slope[pos] = slope[pos+1];
if (MAR[pos]>MAR[pos+1]) slope[pos] = 1;
if (MAR[pos]<MAR[pos+1]) slope[pos] = -1;
if (slope[pos]==-1) PlotPoint(pos,MARda,MARdb,MAR);
}
return(0);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
//
//
//
//
//
void ClearPoint(int i,double& first[],double& second[])
{
if ((second != EMPTY_VALUE) && (second != EMPTY_VALUE))
second = EMPTY_VALUE;
else
if ((first != EMPTY_VALUE) && (first != EMPTY_VALUE) && (first == EMPTY_VALUE))
first = EMPTY_VALUE;
}
//
//
//
//
//
void PlotPoint(int i,double& first[],double& second[],double& from[])
{
if (first == EMPTY_VALUE)
{
if (first == EMPTY_VALUE) {
first = from;
first = from;
second = EMPTY_VALUE;
}
else {
second = from;
second = from;
first = EMPTY_VALUE;
}
}
else
{
first = from;
second = EMPTY_VALUE;
}
}[/CODE]
and this is my indicator code:
[CODE]//+------------------------------------------------------------------+
//| MAR.mq4 |
//| Copyright © 2014, Gehtsoft USA LLC |
//| http://fxcodebase.com |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2014, Gehtsoft USA LLC"
#property link "http://fxcodebase.com"
#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 LimeGreen
#property indicator_color2 Orange
#property indicator_color3 Orange
#property indicator_width1 2
#property indicator_width2 2
#property indicator_width3 2
extern int timeFrame = 0;
extern int Length = 8;
extern int Method = 0;
extern double Round = 2;
extern int Price = 0;
extern int BarsToCalculate = 0;
extern color WickUpColor = DarkGreen;
extern color WickDnColor = FireBrick;
extern color BodyUpColor = LimeGreen;
extern color BodyDnColor = Orange;
extern int WickWidth = 1;
extern int BodyWidth = 2;
double UpBuffer[];
double DnBuffer[];
double UpbBuffer[];
double DnbBuffer[];
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int init()
{
SetIndexBuffer(0,UpBuffer); SetIndexStyle(0,DRAW_HISTOGRAM, EMPTY, WickWidth, WickUpColor);
SetIndexBuffer(1,DnBuffer); SetIndexStyle(1,DRAW_HISTOGRAM, EMPTY, WickWidth, WickDnColor);
SetIndexBuffer(2,UpbBuffer); SetIndexStyle(2,DRAW_HISTOGRAM, EMPTY, BodyWidth, BodyUpColor);
SetIndexBuffer(3,DnbBuffer); SetIndexStyle(3,DRAW_HISTOGRAM, EMPTY, BodyWidth, BodyDnColor);
IndicatorShortName("Rounded ma MTF candles ("+timeFrame+","+Length+","+Round+")");
Length = MathMax(Length,1);
switch(timeFrame)
{
case 1 : string TimeFrameStr="Period_M1"; break;
case 5 : TimeFrameStr="Period_M5"; break;
case 15 : TimeFrameStr="Period_M15"; break;
case 30 : TimeFrameStr="Period_M30"; break;
case 60 : TimeFrameStr="Period_H1"; break;
case 240 : TimeFrameStr="Period_H4"; break;
case 1440 : TimeFrameStr="Period_D1"; break;
case 10080 : TimeFrameStr="Period_W1"; break;
case 43200 : TimeFrameStr="Period_MN1"; break;
default : TimeFrameStr="Current Timeframe";
}
IndicatorShortName("Rounded ma MTF candles ("+TimeFrameStr+")");
return(0);
}
//----
//+------------------------------------------------------------------+
//| MTF function |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
int limit = MathMin(MathMax(Bars-counted_bars,3*timeFrame/Period()),Bars-1);
for(int i=limit;i>=0;i--)
{
int y = iBarShift(NULL,timeFrame,Time);
int slope=iCustom(Symbol(),timeFrame,"Rounded ma MTF",Length,Method,Round,Price,BarsToCalculate,5,y);
if (slope == 1) { UpBuffer=High; DnBuffer=Low; UpbBuffer = MathMax(Open,Close); DnbBuffer = MathMin(Open,Close); }
if (slope == -1) { DnBuffer=High; UpBuffer=Low; DnbBuffer = MathMax(Open,Close); UpbBuffer = MathMin(Open,Close); }
}
return(0);
}
//+------------------------------------------------------------------+
바꾸다
기울기=iCustom(Symbol(),timeFrame,"반올림된 ma MTF",길이,방법,반올림,가격,BarsToCalculate,5,y);
~와 함께
기울기=iCustom(Symbol(),timeFrame,"반올림된 ma MTF",0,길이,방법,반올림,가격,BarsToCalculate,5,y);
이것은 동일한 차트에 gann sq9 mxi nmc 표시기가 있는 zup 150을 배치할 때 얻는 것입니다.
감사합니다. 제 오류일 수 있습니다. Poruchik에서 버전도 얻었습니다.
감사합니다
감사합니다. 제 오류일 수도 있습니다. Poruchik에서 버전도 받았습니다. 진심으로
무슨 일이 있었는지 알려주세요
특정 메타 트레이더 빌드의 문제일 수도 있습니다(현재 빌드 788 사용).
아시다시피 ZigZag는 다시 칠할 수 있습니다.
알림(팝업)을 다시 페인팅 표시기의 신호로 사용하는 것은 매우 위험한 일이며 이것이 내가 오래전에 만들지 않기로 결정한 이유입니다. 표시기, 나중에 설명해야 하는 일부 경고가 추가된 이유, 재계산 표시기에서 신호를 받는 이유를 잘 모르는 사람들에게
문안 인사감사합니다. 귀하의 응답에 감사드립니다