코딩 도움말 - 페이지 287 1...280281282283284285286287288289290291292293294...786 새 코멘트 airquest 2014.06.03 02:01 #2861 airquest: 안녕하세요, 버퍼에서 확률론의 메인 라인의 x 기간 동안 가장 높은 값과 가장 낮은 값을 추출하려고합니다. 값으로 배열을 만들어야 한다는 글을 읽었지만 작동하지 않습니다. 지금까지 나는이 코드에 붙어 있습니다. 내가 옳은 일을하고 있습니까? 누군가가 나를 도울 수 있습니까? 정말 감사합니다. 문안 인사. double num_array[1]={iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,CustomPeriod)}; int gmax=ArrayMaximum(num_array[1],WHOLE_ARRAY,0); int gmin=ArrayMinimum(num_array[1],WHOLE_ARRAY,0); MinBuffer=gmin; MaxBuffer=gmax; 괜찮아, 답을 찾았어... iStochastic을 버퍼링하고 ArraySetAsSeries로 값을 시리즈로 설정한 다음 시리즈의 ArrayMaximum . Mladen Rakic 2014.06.03 04:13 #2862 airquest: 괜찮아, 답을 찾았어... iStochastic을 버퍼링하고 ArraySetAsSeries로 값을 시리즈로 설정한 다음 시리즈의 ArrayMaximum . 바꾸다 ArrayMaximum(num_array[1], WHOLE_ARRAY , 0); ArrayMinimum(num_array[1],WHOLE_ARRAY,0); ~와 함께 최대 배열(num_array,WHOLE_ARRAY,0); ArrayMinimum(num_array,WHOLE_ARRAY,0); sebatian 2014.06.03 20:30 #2863 zigflip: 죄송합니다. 이미 dojh 정확한 것을 사용하면서 그것들을 섞었습니다! 모든 것을 바꾸는 어리석은 메타 따옴표 당신은 그러한 경험을 한 유일한 사람이 아닙니다. 이것은 사용자 친화적이지 않습니다. razo 2014.06.03 23:40 #2864 안녕하세요 코더앤크래커입니다. 닫기 표시기(첨부)에서 지그재그 수정에 대한 전문 지식이 필요합니다. 대신 열기에 지그재그가 필요합니다(동일한 기본 설정). 새 양초가 열렸을 때 알림을 받는 것이 좋습니다(가능한 경우). 많은 감사, 감사합니다! 파일: zigzagclose.mq4 7 kb William Snyder 2014.06.04 00:32 #2865 razo: 안녕하세요 코더앤크래커입니다. 닫기 표시기(첨부)에서 지그재그 수정에 대한 전문 지식이 필요합니다. 대신 열기에 지그재그가 필요합니다(동일한 기본 설정). 새 양초가 열렸을 때 알림을 받는 것이 좋습니다(가능한 경우). 많은 감사, 감사합니다! 안녕하세요 라조입니다. 지그재그 오픈입니다. 파일: zigzagopen.mq4 7 kb AZRUL FYZEE AZMI 2014.06.05 03:21 #2866 안녕하세요 구루 여러분, 다음 표시기가 첨부된 iCustom에 문제가 있습니다... #VQ 막대. 누군가 다음 버퍼의 값을 추출하는 방법을 보여주세요....DIR[] 다음 코드를 사용하여 버퍼를 추출합니다... 하지만 아무 값도 반환하지 않습니다.... 더블 dir=iCustom(NULL,PERIOD_M1,"#VQ 막대",4,0); 누군가 이 문제를 조사해 주시겠습니까... 귀하의 도움과 조수를 높이 평가합니다 ..... #property indicator_chart_window #속성 표시기_버퍼 2 #property indicator_color1 녹색 #property indicator_color2 빨간색 #속성 표시기_너비1 2 #속성 표시기_너비2 2 외부 정수 길이 = 5; extern int 메서드 = 3; extern int 평활화 = 1; 외부 정수 필터 = 5; extern bool 계속 = false; 이중 VQ[]; 이중 SumVQ[]; 이중 DIR[]; 이중 UpBuffer[]; 이중 DnBuffer[]; //+----------------------------------------------- -------------------+ 정수 초기화() { 표시 버퍼(5); SetIndexStyle(0,DRAW_HISTOGRAM); SetIndexBuffer(0,UpBuffer); SetIndexStyle(1,DRAW_HISTOGRAM); SetIndexBuffer(1,DnBuffer); SetIndexBuffer(2,SumVQ); SetIndexBuffer(3,VQ); SetIndexBuffer(4,DIR); if (길이 < 2) 길이 = 2; if (메소드 < 0) 메서드 = 0; if (메소드 > 3) 메서드 = 3; if (스무딩 < 0) 스무딩 = 0; if (필터 < 0) 필터 = 0; 문자열 short_name = "VQ | "+ 길이 + " , " + 방법 + " , " + 스무딩 + " , " + 필터 + " | "; IndicatorShortName(short_name); SetIndexEmptyValue(0, 0.0); SetIndexEmptyValue(1, 0.0); SetIndexEmptyValue(2, 0.0); SetIndexEmptyValue(3, 0.0); 리턴(0); } //+----------------------------------------------- -------------------+ 정수 시작() { 이중 MH = 0, ML = 0, MO = 0, MC = 0, MC1 = 0; 정수 i, j, 제한, counted_bars=IndicatorCounted(); //---- 가능한 오류 확인 if(counted_bars<0) return(-1); //---- 마지막으로 계산된 막대가 다시 계산됩니다. if(counted_bars>0) counted_bars--; //---- if(counted_bars<1) i=바 길이-1; else i=바 개수 계산된 바; if(counted_bars<1) { j=바 길이-1; SumVQ[j + 1] = 닫기[j + 1]; } 동안 (나는 >= 0) { MH = iMA(NULL,0,길이,0,방법,PRICE_HIGH,i); ML = iMA(NULL,0,길이,0,방법,PRICE_LOW,i); MO = iMA(NULL,0,길이,0,방법,PRICE_OPEN,i); MC = iMA(NULL,0,길이,0,메서드,PRICE_CLOSE,i); MC1 = iMA(NULL,0,길이,0,방법,PRICE_CLOSE,i+스무딩); if (계속==true) { MC=iMA(NULL,0,길이,0,메서드,PRICE_MEDIAN,i); MC1=iMA(NULL,0,길이,0,방법,PRICE_MEDIAN,i+스무딩); } if((MH - ML)>0) VQ = MathAbs(((MC - MC1) / MathMax(MH - ML, MathMax(MH - MC1, MC1 - ML)) + (MC - MO) / (MH - ML)) * 0.5) * ((MC - MC1 + (MC-MO)) * 0.5); SumVQ = SumVQ + VQ; if (필터 > 0) if (MathAbs(SumVQ - SumVQ) < 필터 * 포인트) 합VQ = 합VQ; 나--; } if(counted_bars<1) limit=바-길이-1; else limit=바 개수 계산된_바; (i = 한계-1, 나는 >= 0, 나는--) { if (SumVQ > SumVQ) DIR = 1; if (SumVQ < SumVQ) DIR = -1; if (SumVQ== SumVQ) DIR = DIR; 만약 (디렉터리 > 0) { UpBuffer = 높음; DnBuffer = 낮음; } 또 다른 만약 (디렉터리 < 0) { DnBuffer = 높음; UpBuffer = 낮음; } } 리턴(0); } Mladen Rakic 2014.06.05 04:35 #2867 12BPRO: 안녕하세요 구루 여러분, 다음 표시기가 첨부된 iCustom에 문제가 있습니다... #VQ 막대. 누군가 다음 버퍼의 값을 추출하는 방법을 보여주세요....DIR[] 다음 코드를 사용하여 버퍼를 추출합니다... 하지만 아무 값도 반환하지 않습니다.... 더블 디렉토리=iCustom(NULL,PERIOD_M1,"#VQ 막대",4,0); 누군가 이 문제를 조사해 주시겠습니까... 귀하의 도움과 조수를 높이 평가합니다 ..... 모든 것이 괜찮은 것 같습니다 #vq 막대와 해당 값을 사용하는 테스트 표시기를 첨부하고 올바른 값을 표시합니다. vq_bars.mq4 _test_vq.mq4 파일: vq_bars_test.gif 74 kb vq_bars.mq4 3 kb _test_vq.mq4 1 kb AZRUL FYZEE AZMI 2014.06.05 06:22 #2868 mladen: 모든 것이 정상인 것 같습니다. #vq 막대와 해당 값을 사용하는 테스트 표시기를 연결하면 올바른 값이 표시됩니다. vq_bars.mq4 _test_vq.mq4 와... 감사합니다 MLADEN님.... 가장 이상한 일이 발생했습니다 ... 그 코드가 내 표시기에서 작동하지 않습니다 ... 오류 로그를 열 수 없습니다 .... 하지만 #VQ 바에서 테스트했는데 잘 작동합니다.... 그걸로 몇시간을 허비했다.... 내가 무슨 말을 해야 할까요.... 당신에게 빚을 졌습니다.... 선생님.... 저를 위해 이 일을 해결해 주셔서..... 이것은 나의 #VQ . . . . . . . 그것은 가치가 있지만 EA에서 iCustom을 호출하면 가치가 없습니다. 파일: gbpjpy_test.jpg 123 kb my_vq.jpg 48 kb tester_error.jpg 59 kb AZRUL FYZEE AZMI 2014.06.05 07:27 #2869 친애하는 MLADEN 경, 내 #VQ.... 표시기를 조사해 주시겠습니까... 사용하지 않는 몇 줄을 삭제했습니다.... 그리고 몇 가지 경고를 추가했습니다.... 그것이 iCustom을 통해 EA의 버퍼를 호출할 수 없는 문제의 원인입니다.... 다시 한 번 귀하의 도움에 감사드립니다..... 당신의 진정한 아즈룰....... #속성 표시기_차트_창 #속성 표시기_버퍼 2 #property indicator_color1 녹색 #property indicator_color2 빨간색 #속성 표시기_너비1 2 #속성 표시기_너비2 2 외부 정수 길이 = 5; extern int 메서드 = 3; extern int 평활화 = 1; 외부 이중 필터 = 0.5; extern bool 계속 = False; extern string SoundGp = "news.wav"; extern string SoundEur = "news.wav"; extern bool PopupAlert = true; 외부 부울 SendPushNotification = 거짓; extern bool SoundAlert = True; int lastAlert=3; 이중 VQ[]; 이중 SumVQ[]; 이중 DIR[]; 이중 UpBuffer[]; 이중 DnBuffer[]; //+----------------------------------------------- -------------------+ 정수 초기화() { 표시 버퍼(5); SetIndexStyle(0,DRAW_HISTOGRAM); SetIndexBuffer(0,UpBuffer); SetIndexStyle(1,DRAW_HISTOGRAM); SetIndexBuffer(1,DnBuffer); SetIndexBuffer(2,SumVQ); SetIndexBuffer(3,VQ); SetIndexBuffer(4,DIR); if (길이 < 2) 길이 = 2; if (메소드 < 0) 메서드 = 0; if (메소드 > 3) 메서드 = 3; if (스무딩 < 0) 스무딩 = 0; if (필터 < 0) 필터 = 0; 문자열 short_name = "VQ | "+ 길이 + " , " + 방법 + " , " + 스무딩 + " , " + 필터 + " | "; IndicatorShortName(short_name); SetIndexEmptyValue(0, 0.0); SetIndexEmptyValue(1, 0.0); SetIndexEmptyValue(2, 0.0); SetIndexEmptyValue(3, 0.0); 리턴(0); } //+----------------------------------------------- -------------------+ 정수 시작() { 정수 i, 제한, counted_bars=IndicatorCounted(); //---- 가능한 오류 확인 if(counted_bars<0) return(-1); //---- 마지막으로 계산된 막대가 다시 계산됩니다. if(counted_bars>0) counted_bars--; //---- if(counted_bars<1) i=바 길이; else i=바 개수 계산된 바; if(counted_bars<1) 동안 (나는 >= 0) { VQ = iCustom(NULL,0,"#꽃가루 인디",0,i+1); SumVQ= iCustom(NULL,0,"#꽃가루 인디",1,i+1); //if (필터 > 0) //if (MathAbs(VQ - SumVQ) < 필터) //VQ = 합VQ; 나--; } if(counted_bars<1) limit=바-길이-1; else limit=바 개수 계산된_바; (i = 한계-1, 나는 >= 0, 나는--) { //if (VQ > SumVQ) DIR = 1; if ((VQ+VQ) > (SumVQ+SumVQ)) 디렉토리 = 1; if ((VQ+VQ) < (SumVQ+SumVQ)) 디렉토리 = -1; if ((VQ+VQ) == (SumVQ+SumVQ)) DIR = DIR; 만약 (디렉터리 > 0) { UpBuffer = 높음; DnBuffer = 낮음; } 또 다른 만약 (디렉터리 < 0) { DnBuffer = 높음; UpBuffer = 낮음; } if ((DIR > 0) && (DIR > 0)) { CheckForAlerts(OP_BUY);//ALERT BUY } if ((DIR < 0) && (DIR < 0)) { CheckForAlerts(OP_SELL);//경보 판매 } } 이중 vq1=iCustom(NULL,0,"#꽃가루 인디",0,i+1); 이중 svq1=iCustom(NULL,0,"#꽃가루 인디",1,i+1); 이중 vq2=iCustom(NULL,0,"#꽃가루 인디",0,i+2); 이중 svq2=iCustom(NULL,0,"#꽃가루 인디",1,i+2); 이중 vq3=iCustom(NULL,0,"#꽃가루 인디",0,i+3); 이중 svq3=iCustom(NULL,0,"#꽃가루 인디",1,i+3); 이중 디렉토리1=DIR; 이중 dir2=DIR; 이중 dir3=DIR; 이중 vq0= (vq1 + vq2); 이중 svq0= (svq1 + svq2); 문자열 VQ0_Teks=DoubleToStr(vq0,6); 문자열 VQS0_Teks=DoubleToStr(svq0,6); 문자열 VQ1_Teks=DoubleToStr(vq1,6); 문자열 VQS1_Teks=DoubleToStr(svq1,6); 문자열 VQ2_Teks=DoubleToStr(vq2,6); 문자열 VQS2_Teks=DoubleToStr(svq2,6); 문자열 VQ3_Teks=DoubleToStr(vq3,6); 문자열 VQS3_Teks=DoubleToStr(svq3,6); 문자열 dir1_Teks=DoubleToStr(dir1,6); 문자열 dir2_Teks=DoubleToStr(dir2,6); 문자열 dir3_Teks=DoubleToStr(dir3,6); 문자열 h = " 파란색" + " " + VQ0_Teks+ " " + " 빨간색" + " " + VQS0_Teks + "\n" + " 파란색" + " " + VQ1_Teks+ " " + " 빨간색" + " " + VQS1_Teks + "\n" + " 파란색" + " " + VQ2_Teks+ " " + " 빨간색" + " " + VQS2_Teks + "\n" + " 파란색" + " " + VQ3_Teks+ " " + " 빨간색" + " " + VQS3_Teks + "\n" + "\n" + " DIR1" + " " + dir1_Teks+" " + "DIR2" + " " + dir2_Teks + " " +"DIR3" + " " + dir3_Teks; 코멘트(h); 리턴(0); } //------------------------------------------------ -------------- 무효 CheckForAlerts(int 유형) { //경고: 정적 날짜/시간 lastAlertTime=0; if (lastAlertTime != iTime(NULL,0,0)) { if (유형==OP_BUY && lastAlert!=2) { //구매 doAlerts("폴란 막대 UP "+Symbol()+" (tf:"+Period()+")",SoundEur); 마지막 경고 = 2; lastAlertTime=iTime(NULL,0,0); } if (유형==OP_SELL && lastAlert!=1) { //판매 doAlerts("폴란 막대 DOWN "+Symbol()+" (tf:"+Period()+")",SoundGp); 마지막 경고 = 1; lastAlertTime=iTime(NULL,0,0); } }//if (lastAlertTime != iTime(NULL,0,0) { // 경고 종료 } //------------------------------------------------ -------------- 무효 doAlerts(문자열 sMsg,문자열 SoundFile) { if (PopupAlert) 경고(sMsg); if(SoundAlert) PlaySound(사운드파일); if(SendPushNotification) SendNotification (sMsg); } 감사해요........ Coding help 엘리트 지표 :) [경고, 주제 닫힘!] 포럼을 Mladen Rakic 2014.06.05 07:52 #2870 12BPRO: 친애하는 MLADEN 경, 내 #VQ.... 표시기를 조사해 주시겠습니까... 사용하지 않는 몇 줄을 삭제했습니다.... 그리고 몇 가지 경고를 추가했습니다.... 그것이 iCustom을 통해 EA의 버퍼를 호출할 수 없는 문제의 원인입니다.... 다시 한 번 귀하의 도움에 감사드립니다..... 당신의 진정한 아즈룰....... #속성 표시기_차트_창 #속성 표시기_버퍼 2 #property indicator_color1 녹색 #property indicator_color2 빨간색 #속성 표시기_너비1 2 #속성 표시기_너비2 2 외부 정수 길이 = 5; extern int 메서드 = 3; extern int 평활화 = 1; 외부 이중 필터 = 0.5; extern bool 계속 = False; extern string SoundGp = "news.wav"; extern string SoundEur = "news.wav"; extern bool PopupAlert = true; 외부 부울 SendPushNotification = 거짓; extern bool SoundAlert = True; int lastAlert=3; 이중 VQ[]; 이중 SumVQ[]; 이중 DIR[]; 이중 UpBuffer[]; 이중 DnBuffer[]; //+----------------------------------------------- -------------------+ 정수 초기화() { 표시 버퍼(5); SetIndexStyle(0,DRAW_HISTOGRAM); SetIndexBuffer(0,UpBuffer); SetIndexStyle(1,DRAW_HISTOGRAM); SetIndexBuffer(1,DnBuffer); SetIndexBuffer(2,SumVQ); SetIndexBuffer(3,VQ); SetIndexBuffer(4,DIR); if (길이 < 2) 길이 = 2; if (메소드 < 0) 메서드 = 0; if (메소드 > 3) 메서드 = 3; if (스무딩 < 0) 스무딩 = 0; if (필터 < 0) 필터 = 0; 문자열 short_name = "VQ | "+ 길이 + " , " + 방법 + " , " + 스무딩 + " , " + 필터 + " | "; IndicatorShortName(short_name); SetIndexEmptyValue(0, 0.0); SetIndexEmptyValue(1, 0.0); SetIndexEmptyValue(2, 0.0); SetIndexEmptyValue(3, 0.0); 리턴(0); } //+----------------------------------------------- -------------------+ 정수 시작() { 정수 i, 제한, counted_bars=IndicatorCounted(); //---- 가능한 오류 확인 if(counted_bars<0) return(-1); //---- 마지막으로 계산된 막대가 다시 계산됩니다. if(counted_bars>0) counted_bars--; //---- if(counted_bars<1) i=바 길이; else i=바 개수 계산된 바; if(counted_bars<1) 동안 (나는 >= 0) { VQ = iCustom(NULL,0,"#꽃가루 인디",0,i+1); SumVQ= iCustom(NULL,0,"#꽃가루 인디",1,i+1); //if (필터 > 0) //if (MathAbs(VQ - SumVQ) < 필터) //VQ = 합VQ; 나--; } if(counted_bars<1) limit=바-길이-1; else limit=바 개수 계산된_바; (i = 한계-1, 나는 >= 0, 나는--) { //if (VQ > SumVQ) DIR = 1; if ((VQ+VQ) > (SumVQ+SumVQ)) 디렉토리 = 1; if ((VQ+VQ) < (SumVQ+SumVQ)) 디렉토리 = -1; if ((VQ+VQ) == (SumVQ+SumVQ)) DIR = DIR; 만약 (디렉터리 > 0) { UpBuffer = 높음; DnBuffer = 낮음; } 또 다른 만약 (디렉터리 < 0) { DnBuffer = 높음; UpBuffer = 낮음; } if ((DIR > 0) && (DIR > 0)) { CheckForAlerts(OP_BUY);//ALERT BUY } if ((DIR < 0) && (DIR < 0)) { CheckForAlerts(OP_SELL);//경보 판매 } } 이중 vq1=iCustom(NULL,0,"#꽃가루 인디",0,i+1); 이중 svq1=iCustom(NULL,0,"#꽃가루 인디",1,i+1); 이중 vq2=iCustom(NULL,0,"#꽃가루 인디",0,i+2); 이중 svq2=iCustom(NULL,0,"#꽃가루 인디",1,i+2); 이중 vq3=iCustom(NULL,0,"#꽃가루 인디",0,i+3); 이중 svq3=iCustom(NULL,0,"#꽃가루 인디",1,i+3); 이중 디렉토리1=DIR; 이중 dir2=DIR; 이중 dir3=DIR; 이중 vq0= (vq1 + vq2); 이중 svq0= (svq1 + svq2); 문자열 VQ0_Teks=DoubleToStr(vq0,6); 문자열 VQS0_Teks=DoubleToStr(svq0,6); 문자열 VQ1_Teks=DoubleToStr(vq1,6); 문자열 VQS1_Teks=DoubleToStr(svq1,6); 문자열 VQ2_Teks=DoubleToStr(vq2,6); 문자열 VQS2_Teks=DoubleToStr(svq2,6); 문자열 VQ3_Teks=DoubleToStr(vq3,6); 문자열 VQS3_Teks=DoubleToStr(svq3,6); 문자열 dir1_Teks=DoubleToStr(dir1,6); 문자열 dir2_Teks=DoubleToStr(dir2,6); 문자열 dir3_Teks=DoubleToStr(dir3,6); 문자열 h = " 파란색" + " " + VQ0_Teks+ " " + " 빨간색" + " " + VQS0_Teks + "\n" + " 파란색" + " " + VQ1_Teks+ " " + " 빨간색" + " " + VQS1_Teks + "\n" + " 파란색" + " " + VQ2_Teks+ " " + " 빨간색" + " " + VQS2_Teks + "\n" + " 파란색" + " " + VQ3_Teks+ " " + " 빨간색" + " " + VQS3_Teks + "\n" + "\n" + " DIR1" + " " + dir1_Teks+" " + "DIR2" + " " + dir2_Teks + " " +"DIR3" + " " + dir3_Teks; 코멘트(h); 리턴(0); } //------------------------------------------------ -------------- 무효 CheckForAlerts(int 유형) { //경고: 정적 날짜/시간 lastAlertTime=0; if (lastAlertTime != iTime(NULL,0,0)) { if (유형==OP_BUY && lastAlert!=2) { //구매 doAlerts("폴란 막대 UP "+Symbol()+" (tf:"+Period()+")",SoundEur); 마지막 경고 = 2; lastAlertTime=iTime(NULL,0,0); } if (유형==OP_SELL && lastAlert!=1) { //판매 doAlerts("폴란 막대 DOWN "+Symbol()+" (tf:"+Period()+")",SoundGp); 마지막 경고 = 1; lastAlertTime=iTime(NULL,0,0); } }//if (lastAlertTime != iTime(NULL,0,0) { // 경고 종료 } //------------------------------------------------ -------------- 무효 doAlerts(문자열 sMsg,문자열 SoundFile) { if (PopupAlert) 경고(sMsg); if(SoundAlert) PlaySound(사운드파일); if(SendPushNotification) SendNotification(sMsg); } 감사해요........ "#꽃가루 인디"를 사용하도록 변경했습니다. 나는 그 표시기가 무엇을 하는지 전혀 모릅니다(나머지 "꽃가루" 표시기와 같다면 다시 칠해져서 문제를 일으킬 수 있지만 지금 추측 게임을 하는 것뿐입니다) 1...280281282283284285286287288289290291292293294...786 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
안녕하세요, 버퍼에서 확률론의 메인 라인의 x 기간 동안 가장 높은 값과 가장 낮은 값을 추출하려고합니다. 값으로 배열을 만들어야 한다는 글을 읽었지만 작동하지 않습니다. 지금까지 나는이 코드에 붙어 있습니다. 내가 옳은 일을하고 있습니까? 누군가가 나를 도울 수 있습니까? 정말 감사합니다. 문안 인사.
double num_array[1]={iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,CustomPeriod)};
int gmax=ArrayMaximum(num_array[1],WHOLE_ARRAY,0);
int gmin=ArrayMinimum(num_array[1],WHOLE_ARRAY,0);
MinBuffer=gmin;
MaxBuffer=gmax;
괜찮아, 답을 찾았어... iStochastic을 버퍼링하고 ArraySetAsSeries로 값을 시리즈로 설정한 다음 시리즈의 ArrayMaximum
.
괜찮아, 답을 찾았어... iStochastic을 버퍼링하고 ArraySetAsSeries로 값을 시리즈로 설정한 다음 시리즈의 ArrayMaximum
바꾸다
ArrayMaximum(num_array[1], WHOLE_ARRAY , 0);
ArrayMinimum(num_array[1],WHOLE_ARRAY,0);
~와 함께
최대 배열(num_array,WHOLE_ARRAY,0);
ArrayMinimum(num_array,WHOLE_ARRAY,0);
죄송합니다. 이미 dojh 정확한 것을 사용하면서 그것들을 섞었습니다! 모든 것을 바꾸는 어리석은 메타 따옴표
당신은 그러한 경험을 한 유일한 사람이 아닙니다.
이것은 사용자 친화적이지 않습니다.
안녕하세요 코더앤크래커입니다.
닫기 표시기(첨부)에서 지그재그 수정에 대한 전문 지식이 필요합니다.
대신 열기에 지그재그가 필요합니다(동일한 기본 설정). 새 양초가 열렸을 때 알림을 받는 것이 좋습니다(가능한 경우).
많은 감사, 감사합니다!
안녕하세요 코더앤크래커입니다.
닫기 표시기(첨부)에서 지그재그 수정에 대한 전문 지식이 필요합니다.
대신 열기에 지그재그가 필요합니다(동일한 기본 설정). 새 양초가 열렸을 때 알림을 받는 것이 좋습니다(가능한 경우).
많은 감사, 감사합니다!안녕하세요 라조입니다. 지그재그 오픈입니다.
안녕하세요 구루 여러분,
다음 표시기가 첨부된 iCustom에 문제가 있습니다... #VQ 막대.
누군가 다음 버퍼의 값을 추출하는 방법을 보여주세요....DIR[]
다음 코드를 사용하여 버퍼를 추출합니다... 하지만 아무 값도 반환하지 않습니다....
더블 dir=iCustom(NULL,PERIOD_M1,"#VQ 막대",4,0);
누군가 이 문제를 조사해 주시겠습니까...
귀하의 도움과 조수를 높이 평가합니다 .....
#property indicator_chart_window
#속성 표시기_버퍼 2
#property indicator_color1 녹색
#property indicator_color2 빨간색
#속성 표시기_너비1 2
#속성 표시기_너비2 2
외부 정수 길이 = 5;
extern int 메서드 = 3;
extern int 평활화 = 1;
외부 정수 필터 = 5;
extern bool 계속 = false;
이중 VQ[];
이중 SumVQ[];
이중 DIR[];
이중 UpBuffer[];
이중 DnBuffer[];
//+----------------------------------------------- -------------------+
정수 초기화()
{
표시 버퍼(5);
SetIndexStyle(0,DRAW_HISTOGRAM);
SetIndexBuffer(0,UpBuffer);
SetIndexStyle(1,DRAW_HISTOGRAM);
SetIndexBuffer(1,DnBuffer);
SetIndexBuffer(2,SumVQ);
SetIndexBuffer(3,VQ);
SetIndexBuffer(4,DIR);
if (길이 < 2) 길이 = 2;
if (메소드 < 0) 메서드 = 0;
if (메소드 > 3) 메서드 = 3;
if (스무딩 < 0) 스무딩 = 0;
if (필터 < 0) 필터 = 0;
문자열 short_name = "VQ | "+ 길이 + " , " +
방법 + " , " + 스무딩 + " , " + 필터 + " | ";
IndicatorShortName(short_name);
SetIndexEmptyValue(0, 0.0);
SetIndexEmptyValue(1, 0.0);
SetIndexEmptyValue(2, 0.0);
SetIndexEmptyValue(3, 0.0);
리턴(0);
}
//+----------------------------------------------- -------------------+
정수 시작()
{
이중 MH = 0, ML = 0, MO = 0, MC = 0, MC1 = 0;
정수 i, j, 제한, counted_bars=IndicatorCounted();
//---- 가능한 오류 확인
if(counted_bars<0) return(-1);
//---- 마지막으로 계산된 막대가 다시 계산됩니다.
if(counted_bars>0) counted_bars--;
//----
if(counted_bars<1) i=바 길이-1;
else i=바 개수 계산된 바;
if(counted_bars<1)
{
j=바 길이-1;
SumVQ[j + 1] = 닫기[j + 1];
}
동안 (나는 >= 0)
{
MH = iMA(NULL,0,길이,0,방법,PRICE_HIGH,i);
ML = iMA(NULL,0,길이,0,방법,PRICE_LOW,i);
MO = iMA(NULL,0,길이,0,방법,PRICE_OPEN,i);
MC = iMA(NULL,0,길이,0,메서드,PRICE_CLOSE,i);
MC1 = iMA(NULL,0,길이,0,방법,PRICE_CLOSE,i+스무딩);
if (계속==true)
{
MC=iMA(NULL,0,길이,0,메서드,PRICE_MEDIAN,i);
MC1=iMA(NULL,0,길이,0,방법,PRICE_MEDIAN,i+스무딩);
}
if((MH - ML)>0)
VQ = MathAbs(((MC - MC1) / MathMax(MH - ML, MathMax(MH - MC1, MC1 - ML)) + (MC - MO) / (MH - ML)) * 0.5) * ((MC - MC1 + (MC-MO)) * 0.5);
SumVQ = SumVQ + VQ;
if (필터 > 0)
if (MathAbs(SumVQ - SumVQ) < 필터 * 포인트)
합VQ = 합VQ;
나--;
}
if(counted_bars<1)
limit=바-길이-1;
else limit=바 개수 계산된_바;
(i = 한계-1, 나는 >= 0, 나는--)
{
if (SumVQ > SumVQ) DIR = 1;
if (SumVQ < SumVQ) DIR = -1;
if (SumVQ== SumVQ) DIR = DIR;
만약 (디렉터리 > 0)
{
UpBuffer = 높음;
DnBuffer = 낮음;
}
또 다른
만약 (디렉터리 < 0)
{
DnBuffer = 높음;
UpBuffer = 낮음;
}
}
리턴(0);
}
안녕하세요 구루 여러분,
다음 표시기가 첨부된 iCustom에 문제가 있습니다... #VQ 막대.
누군가 다음 버퍼의 값을 추출하는 방법을 보여주세요....DIR[]
다음 코드를 사용하여 버퍼를 추출합니다... 하지만 아무 값도 반환하지 않습니다....
더블 디렉토리=iCustom(NULL,PERIOD_M1,"#VQ 막대",4,0);
누군가 이 문제를 조사해 주시겠습니까...
귀하의 도움과 조수를 높이 평가합니다 .....모든 것이 괜찮은 것 같습니다
#vq 막대와 해당 값을 사용하는 테스트 표시기를 첨부하고 올바른 값을 표시합니다.
모든 것이 정상인 것 같습니다. #vq 막대와 해당 값을 사용하는 테스트 표시기를 연결하면 올바른 값이 표시됩니다.
와... 감사합니다 MLADEN님....
가장 이상한 일이 발생했습니다 ... 그 코드가 내 표시기에서 작동하지 않습니다 ... 오류 로그를 열 수 없습니다 ....
하지만 #VQ 바에서 테스트했는데 잘 작동합니다....![](https://c.mql5.com/forextsd/smiles/party.png)
그걸로 몇시간을 허비했다....![](https://c.mql5.com/forextsd/smiles/embaressed_smile.png)
내가 무슨 말을 해야 할까요.... 당신에게 빚을 졌습니다.... 선생님.... 저를 위해 이 일을 해결해 주셔서.....
이것은 나의 #VQ . . . . . . .
그것은 가치가 있지만 EA에서 iCustom을 호출하면 가치가 없습니다.![](https://c.mql5.com/forextsd/smiles/embaressed_smile.png)
친애하는 MLADEN 경,
내 #VQ.... 표시기를 조사해 주시겠습니까... 사용하지 않는 몇 줄을 삭제했습니다.... 그리고 몇 가지 경고를 추가했습니다....
그것이 iCustom을 통해 EA의 버퍼를 호출할 수 없는 문제의 원인입니다....
다시 한 번 귀하의 도움에 감사드립니다.....
당신의 진정한
아즈룰.......
#속성 표시기_차트_창
#속성 표시기_버퍼 2
#property indicator_color1 녹색
#property indicator_color2 빨간색
#속성 표시기_너비1 2
#속성 표시기_너비2 2
외부 정수 길이 = 5;
extern int 메서드 = 3;
extern int 평활화 = 1;
외부 이중 필터 = 0.5;
extern bool 계속 = False;
extern string SoundGp = "news.wav";
extern string SoundEur = "news.wav";
extern bool PopupAlert = true;
외부 부울 SendPushNotification = 거짓;
extern bool SoundAlert = True;
int lastAlert=3;
이중 VQ[];
이중 SumVQ[];
이중 DIR[];
이중 UpBuffer[];
이중 DnBuffer[];
//+----------------------------------------------- -------------------+
정수 초기화()
{
표시 버퍼(5);
SetIndexStyle(0,DRAW_HISTOGRAM);
SetIndexBuffer(0,UpBuffer);
SetIndexStyle(1,DRAW_HISTOGRAM);
SetIndexBuffer(1,DnBuffer);
SetIndexBuffer(2,SumVQ);
SetIndexBuffer(3,VQ);
SetIndexBuffer(4,DIR);
if (길이 < 2) 길이 = 2;
if (메소드 < 0) 메서드 = 0;
if (메소드 > 3) 메서드 = 3;
if (스무딩 < 0) 스무딩 = 0;
if (필터 < 0) 필터 = 0;
문자열 short_name = "VQ | "+ 길이 + " , " +
방법 + " , " + 스무딩 + " , " + 필터 + " | ";
IndicatorShortName(short_name);
SetIndexEmptyValue(0, 0.0);
SetIndexEmptyValue(1, 0.0);
SetIndexEmptyValue(2, 0.0);
SetIndexEmptyValue(3, 0.0);
리턴(0);
}
//+----------------------------------------------- -------------------+
정수 시작()
{
정수 i, 제한, counted_bars=IndicatorCounted();
//---- 가능한 오류 확인
if(counted_bars<0) return(-1);
//---- 마지막으로 계산된 막대가 다시 계산됩니다.
if(counted_bars>0) counted_bars--;
//----
if(counted_bars<1) i=바 길이;
else i=바 개수 계산된 바;
if(counted_bars<1)
동안 (나는 >= 0)
{
VQ = iCustom(NULL,0,"#꽃가루 인디",0,i+1);
SumVQ= iCustom(NULL,0,"#꽃가루 인디",1,i+1);
//if (필터 > 0)
//if (MathAbs(VQ - SumVQ) < 필터)
//VQ = 합VQ;
나--;
}
if(counted_bars<1)
limit=바-길이-1;
else limit=바 개수 계산된_바;
(i = 한계-1, 나는 >= 0, 나는--)
{
//if (VQ > SumVQ) DIR = 1;
if ((VQ+VQ) > (SumVQ+SumVQ))
디렉토리 = 1;
if ((VQ+VQ) < (SumVQ+SumVQ))
디렉토리 = -1;
if ((VQ+VQ) == (SumVQ+SumVQ))
DIR = DIR;
만약 (디렉터리 > 0)
{
UpBuffer = 높음;
DnBuffer = 낮음;
}
또 다른
만약 (디렉터리 < 0)
{
DnBuffer = 높음;
UpBuffer = 낮음;
}
if ((DIR > 0) && (DIR > 0))
{
CheckForAlerts(OP_BUY);//ALERT BUY
}
if ((DIR < 0) && (DIR < 0))
{
CheckForAlerts(OP_SELL);//경보 판매
}
}
이중 vq1=iCustom(NULL,0,"#꽃가루 인디",0,i+1);
이중 svq1=iCustom(NULL,0,"#꽃가루 인디",1,i+1);
이중 vq2=iCustom(NULL,0,"#꽃가루 인디",0,i+2);
이중 svq2=iCustom(NULL,0,"#꽃가루 인디",1,i+2);
이중 vq3=iCustom(NULL,0,"#꽃가루 인디",0,i+3);
이중 svq3=iCustom(NULL,0,"#꽃가루 인디",1,i+3);
이중 디렉토리1=DIR;
이중 dir2=DIR;
이중 dir3=DIR;
이중 vq0= (vq1 + vq2);
이중 svq0= (svq1 + svq2);
문자열 VQ0_Teks=DoubleToStr(vq0,6);
문자열 VQS0_Teks=DoubleToStr(svq0,6);
문자열 VQ1_Teks=DoubleToStr(vq1,6);
문자열 VQS1_Teks=DoubleToStr(svq1,6);
문자열 VQ2_Teks=DoubleToStr(vq2,6);
문자열 VQS2_Teks=DoubleToStr(svq2,6);
문자열 VQ3_Teks=DoubleToStr(vq3,6);
문자열 VQS3_Teks=DoubleToStr(svq3,6);
문자열 dir1_Teks=DoubleToStr(dir1,6);
문자열 dir2_Teks=DoubleToStr(dir2,6);
문자열 dir3_Teks=DoubleToStr(dir3,6);
문자열 h =
" 파란색" + " " + VQ0_Teks+ " " + " 빨간색" + " " + VQS0_Teks + "\n" +
" 파란색" + " " + VQ1_Teks+ " " + " 빨간색" + " " + VQS1_Teks + "\n" +
" 파란색" + " " + VQ2_Teks+ " " + " 빨간색" + " " + VQS2_Teks + "\n" +
" 파란색" + " " + VQ3_Teks+ " " + " 빨간색" + " " + VQS3_Teks + "\n" + "\n" +
" DIR1" + " " + dir1_Teks+" " + "DIR2" + " " + dir2_Teks + " " +"DIR3" + " " + dir3_Teks;
코멘트(h);
리턴(0);
}
//------------------------------------------------ --------------
무효 CheckForAlerts(int 유형)
{
//경고:
정적 날짜/시간 lastAlertTime=0;
if (lastAlertTime != iTime(NULL,0,0)) {
if (유형==OP_BUY && lastAlert!=2) { //구매
doAlerts("폴란 막대 UP "+Symbol()+" (tf:"+Period()+")",SoundEur);
마지막 경고 = 2;
lastAlertTime=iTime(NULL,0,0);
}
if (유형==OP_SELL && lastAlert!=1) { //판매
doAlerts("폴란 막대 DOWN "+Symbol()+" (tf:"+Period()+")",SoundGp);
마지막 경고 = 1;
lastAlertTime=iTime(NULL,0,0);
}
}//if (lastAlertTime != iTime(NULL,0,0) {
// 경고 종료
}
//------------------------------------------------ --------------
무효 doAlerts(문자열 sMsg,문자열 SoundFile) {
if (PopupAlert) 경고(sMsg);
if(SoundAlert) PlaySound(사운드파일);
if(SendPushNotification) SendNotification (sMsg);
}
감사해요........![](https://c.mql5.com/forextsd/smiles/embaressed_smile.png)
친애하는 MLADEN 경,
내 #VQ.... 표시기를 조사해 주시겠습니까... 사용하지 않는 몇 줄을 삭제했습니다.... 그리고 몇 가지 경고를 추가했습니다....
그것이 iCustom을 통해 EA의 버퍼를 호출할 수 없는 문제의 원인입니다....
다시 한 번 귀하의 도움에 감사드립니다.....
당신의 진정한
아즈룰.......
#속성 표시기_차트_창
#속성 표시기_버퍼 2
#property indicator_color1 녹색
#property indicator_color2 빨간색
#속성 표시기_너비1 2
#속성 표시기_너비2 2
외부 정수 길이 = 5;
extern int 메서드 = 3;
extern int 평활화 = 1;
외부 이중 필터 = 0.5;
extern bool 계속 = False;
extern string SoundGp = "news.wav";
extern string SoundEur = "news.wav";
extern bool PopupAlert = true;
외부 부울 SendPushNotification = 거짓;
extern bool SoundAlert = True;
int lastAlert=3;
이중 VQ[];
이중 SumVQ[];
이중 DIR[];
이중 UpBuffer[];
이중 DnBuffer[];
//+----------------------------------------------- -------------------+
정수 초기화()
{
표시 버퍼(5);
SetIndexStyle(0,DRAW_HISTOGRAM);
SetIndexBuffer(0,UpBuffer);
SetIndexStyle(1,DRAW_HISTOGRAM);
SetIndexBuffer(1,DnBuffer);
SetIndexBuffer(2,SumVQ);
SetIndexBuffer(3,VQ);
SetIndexBuffer(4,DIR);
if (길이 < 2) 길이 = 2;
if (메소드 < 0) 메서드 = 0;
if (메소드 > 3) 메서드 = 3;
if (스무딩 < 0) 스무딩 = 0;
if (필터 < 0) 필터 = 0;
문자열 short_name = "VQ | "+ 길이 + " , " +
방법 + " , " + 스무딩 + " , " + 필터 + " | ";
IndicatorShortName(short_name);
SetIndexEmptyValue(0, 0.0);
SetIndexEmptyValue(1, 0.0);
SetIndexEmptyValue(2, 0.0);
SetIndexEmptyValue(3, 0.0);
리턴(0);
}
//+----------------------------------------------- -------------------+
정수 시작()
{
정수 i, 제한, counted_bars=IndicatorCounted();
//---- 가능한 오류 확인
if(counted_bars<0) return(-1);
//---- 마지막으로 계산된 막대가 다시 계산됩니다.
if(counted_bars>0) counted_bars--;
//----
if(counted_bars<1) i=바 길이;
else i=바 개수 계산된 바;
if(counted_bars<1)
동안 (나는 >= 0)
{
VQ = iCustom(NULL,0,"#꽃가루 인디",0,i+1);
SumVQ= iCustom(NULL,0,"#꽃가루 인디",1,i+1);
//if (필터 > 0)
//if (MathAbs(VQ - SumVQ) < 필터)
//VQ = 합VQ;
나--;
}
if(counted_bars<1)
limit=바-길이-1;
else limit=바 개수 계산된_바;
(i = 한계-1, 나는 >= 0, 나는--)
{
//if (VQ > SumVQ) DIR = 1;
if ((VQ+VQ) > (SumVQ+SumVQ))
디렉토리 = 1;
if ((VQ+VQ) < (SumVQ+SumVQ))
디렉토리 = -1;
if ((VQ+VQ) == (SumVQ+SumVQ))
DIR = DIR;
만약 (디렉터리 > 0)
{
UpBuffer = 높음;
DnBuffer = 낮음;
}
또 다른
만약 (디렉터리 < 0)
{
DnBuffer = 높음;
UpBuffer = 낮음;
}
if ((DIR > 0) && (DIR > 0))
{
CheckForAlerts(OP_BUY);//ALERT BUY
}
if ((DIR < 0) && (DIR < 0))
{
CheckForAlerts(OP_SELL);//경보 판매
}
}
이중 vq1=iCustom(NULL,0,"#꽃가루 인디",0,i+1);
이중 svq1=iCustom(NULL,0,"#꽃가루 인디",1,i+1);
이중 vq2=iCustom(NULL,0,"#꽃가루 인디",0,i+2);
이중 svq2=iCustom(NULL,0,"#꽃가루 인디",1,i+2);
이중 vq3=iCustom(NULL,0,"#꽃가루 인디",0,i+3);
이중 svq3=iCustom(NULL,0,"#꽃가루 인디",1,i+3);
이중 디렉토리1=DIR;
이중 dir2=DIR;
이중 dir3=DIR;
이중 vq0= (vq1 + vq2);
이중 svq0= (svq1 + svq2);
문자열 VQ0_Teks=DoubleToStr(vq0,6);
문자열 VQS0_Teks=DoubleToStr(svq0,6);
문자열 VQ1_Teks=DoubleToStr(vq1,6);
문자열 VQS1_Teks=DoubleToStr(svq1,6);
문자열 VQ2_Teks=DoubleToStr(vq2,6);
문자열 VQS2_Teks=DoubleToStr(svq2,6);
문자열 VQ3_Teks=DoubleToStr(vq3,6);
문자열 VQS3_Teks=DoubleToStr(svq3,6);
문자열 dir1_Teks=DoubleToStr(dir1,6);
문자열 dir2_Teks=DoubleToStr(dir2,6);
문자열 dir3_Teks=DoubleToStr(dir3,6);
문자열 h =
" 파란색" + " " + VQ0_Teks+ " " + " 빨간색" + " " + VQS0_Teks + "\n" +
" 파란색" + " " + VQ1_Teks+ " " + " 빨간색" + " " + VQS1_Teks + "\n" +
" 파란색" + " " + VQ2_Teks+ " " + " 빨간색" + " " + VQS2_Teks + "\n" +
" 파란색" + " " + VQ3_Teks+ " " + " 빨간색" + " " + VQS3_Teks + "\n" + "\n" +
" DIR1" + " " + dir1_Teks+" " + "DIR2" + " " + dir2_Teks + " " +"DIR3" + " " + dir3_Teks;
코멘트(h);
리턴(0);
}
//------------------------------------------------ --------------
무효 CheckForAlerts(int 유형)
{
//경고:
정적 날짜/시간 lastAlertTime=0;
if (lastAlertTime != iTime(NULL,0,0)) {
if (유형==OP_BUY && lastAlert!=2) { //구매
doAlerts("폴란 막대 UP "+Symbol()+" (tf:"+Period()+")",SoundEur);
마지막 경고 = 2;
lastAlertTime=iTime(NULL,0,0);
}
if (유형==OP_SELL && lastAlert!=1) { //판매
doAlerts("폴란 막대 DOWN "+Symbol()+" (tf:"+Period()+")",SoundGp);
마지막 경고 = 1;
lastAlertTime=iTime(NULL,0,0);
}
}//if (lastAlertTime != iTime(NULL,0,0) {
// 경고 종료
}
//------------------------------------------------ --------------
무효 doAlerts(문자열 sMsg,문자열 SoundFile) {
if (PopupAlert) 경고(sMsg);
if(SoundAlert) PlaySound(사운드파일);
if(SendPushNotification) SendNotification(sMsg);
}
감사해요........"#꽃가루 인디"를 사용하도록 변경했습니다.
나는 그 표시기가 무엇을 하는지 전혀 모릅니다(나머지 "꽃가루" 표시기와 같다면 다시 칠해져서 문제를 일으킬 수 있지만 지금 추측 게임을 하는 것뿐입니다)