묻다! - 페이지 7 1234567891011121314...182 새 코멘트 camisa 2006.01.08 23:04 #61 안녕하세요, 저는 cci<-150 틱 단위로 틱으로 경고합니다. 촛불이 닫힐 때만 경고하도록 누구든지 수정할 수 있습니까? 이 경우 5m 촛불의 끝에서 cci가 < -150일 때만 경고를 받고 싶습니다. 미리 감사드립니다 파일: rd_cci_buy.mq4 9 kb camisa 2006.01.10 15:06 #62 좋아, 두 번째 질문, 나는 이것이 쉽다고 생각한다. 가격 종가가 MA를 넘을 때 알려주는 사용자 지표를 구축 중입니다. iCustom을 사용하여 MA 표시기를 가져오고 있습니다. 그런 다음 가격 닫기를 사용하는 방법을 모르겠습니다. CLOSE 및 PRICE_CLOSE를 시도했지만 결과가 없었습니다. if (닫기?>ma1) adx값= -1; 만약 (PRICE_CLOSE?>ma1) adx값= -1; 또한 경고가 5m 막대 끝에서만 울리고 틱 단위로 작동하지 않기를 원합니다. 다른 무엇을 변경해야합니까 (이 질문은 이전 게시물의 질문입니다) 감사해요 [경고, 주제 닫힘!] 포럼을 유니버설 MA 크로스 EA 오류, 버그, 질문 dccooper 2006.01.16 10:28 #63 안녕하세요 Codersguru님, Osma Color에 경고를 코딩하여 색상이 변경될 때 경고하도록 도와 주시겠습니까? 감사해요 던컨 //+----------------------------------------------- -------------------+ //| OsMA_color.mq4 | //| 라파엘 | //| marynarz15@wp.pl | //+----------------------------------------------- -------------------+ #재산권 "라파엘" #속성 링크 "marynarz15@wp.pl" //---- 표시기 설정 #속성 표시기_분리_창 #속성 표시기_버퍼 2 #property indicator_color1 라임 #property indicator_color2 빨간색 //---- 표시기 매개변수 외부 int FastEMA=12; extern int SlowEMA=26; 외부 정수 SignalSMA=9; //---- 표시기 버퍼 이중 ind_buffer1a[]; 이중 ind_buffer1b[]; 이중 ind_buffer2[]; 이중 ind_buffer3[]; //+----------------------------------------------- -------------------+ //| 커스텀 인디케이터 초기화 기능 | //+----------------------------------------------- -------------------+ 정수 초기화() { //---- 2개의 추가 버퍼가 계산에 사용됩니다. 표시기버퍼(4); //---- 그리기 설정 SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,2); SetIndexStyle(1,DRAW_HISTOGRAM,STYLE_SOLID,2); SetIndexDrawBegin(0,SignalSMA); SetIndexDrawBegin(1,SignalSMA); IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS)+2); //---- 3개의 인디케이터 버퍼 매핑 if(!SetIndexBuffer(0,ind_buffer1a) && !SetIndexBuffer(1,ind_buffer1b) && !SetIndexBuffer(2,ind_buffer2) && !SetIndexBuffer(3,ind_buffer3)) Print("표시 버퍼를 설정할 수 없습니다!"); //---- DataWindow의 이름 및 표시기 하위 창 레이블 IndicatorShortName("OsMA("+FastEMA+","+SlowEMA+","+SignalSMA+")"); //---- 초기화 완료 리턴(0); } //+----------------------------------------------- -------------------+ //| 오실레이터의 이동 평균 | //+----------------------------------------------- -------------------+ 정수 시작() { 정수 제한; int counted_bars=IndicatorCounted(); //---- 가능한 오류 확인 if(counted_bars<0) return(-1); //---- 마지막으로 계산된 막대가 다시 계산됩니다. if(counted_bars>0) counted_bars--; limit=막대-counted_bars; //---- 첫 번째 추가 버퍼에서 macd 계산 for(int i=0; i<limit; i++) ind_buffer2=iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i) -iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i); //---- 2번째 추가 버퍼에서 카운트된 신호 라인 for(i=0; i<한계; i++) ind_buffer3=iMAOnArray(ind_buffer2,막대,SignalSMA,0,MODE_SMA,i); //---- 메인 루프 이중 값=0; for(i=0; i<한계; i++) { ind_buffer1a=0.0; ind_buffer1b=0.0; 값=ind_buffer2-ind_buffer3; if (값>0) ind_buffer1a=값; if (값<0) ind_buffer1b=값; } //---- 완료 반환(0); } //+----------------------------------------------- -------------------+ Ask! [경고, 주제 닫힘!] 포럼을 다중 기간 표시기 Arta2015 2006.01.24 22:07 #64 안녕 나는 나비 패턴을 인식할 수 있는 표시기가 있지만 MT3용으로 작성되었으며 누구든지 나에게 호의를 베풀고 MQL4로 변환할 수 있습니다. 파일: butterfly.mql 3 kb Arta2015 2006.01.24 22:12 #65 패턴의 요지와 규칙이 언급된 2개의 pdf를 첨부했습니다. 파일: attachment2.pdf 141 kb attachment1.pdf 189 kb currencyshmuck 2006.01.30 05:26 #66 안녕 안녕하세요 여러분, 당신은 모두 이 작가의 이름을 알고 있을 수 있지만 결코 그것을 알지 못했습니다 그의 방법은 소프트웨어로 코딩되었습니다. Pesavento는 다른 사람들 사이에서 이 훌륭한 책을 썼습니다. * 패턴 인식을 통한 피보나치 비율 * 주식 거래를 위한 수익성 있는 패턴 * Astro-Cycles : Traders Viewpoint 그런데 ENSIGN 소프트웨어에는 다음 링크에서 볼 수 있는 원래 Pesavento Patterns 학습 도구도 있다는 것을 알고 있습니다. 누군가가 그것을 ENSIGN에서 MetaTrader 4로 가져올 수 있다면 그것은 놀라운 일이 될 것입니다. http://www.ensignsoftware.com/help/pesavento.htm 가격 패턴(가틀리, 나비, 박쥐,...) 고조파 거래 피보나치 수준: 신화 또는 currencyshmuck 2006.01.31 08:26 #67 안녕 다시 두 플랫폼에서 gartley 222 패턴에 대한 코드를 찾았습니다. 누군가 그것을 MetaTrade 4로 번역할 수 있다면 그것은 훌륭할 것입니다! 다음은 코드입니다. 1. Aaron Behle와 Mark Conway가 작성한 "Trading the Gartley 222"에서 찾은 Gartley 222 패턴에 대한 TradeStation 코드, p. 38: 입력: 길이(100), 힘(8), 공차(0.10), BullColor(파란색), BearColor(빨간색); 변수: F1(0.618), F2(0.786), F3(1.27), F4(1.618), P1바(-1), P2바(-1), T1바(-1), T2바(-1), P1(0.0), P2(0.0), T1(0.0), T2(0.0), PTValid(거짓), HLValid(거짓), 인존(거짓), GD(0.0), XA(0.0), AB(0.0), BC(0.0), CD(0.0), AD(0.0), C1(거짓), C2(거짓), C3(거짓), C4(거짓), ABdXA(0.0), BCdAB(0.0), CDDBC(0.0), ADDXA(0.0), TL1(-1), TL2(-1), TL3(-1), TL4(-1), TL5(-1), TL6(-1); P1Bar = SwingHighBar(1, 높음, 강도, 길이); P2Bar = SwingHighBar(2, 높음, 강도, 길이); T1Bar = SwingLowBar(1, 낮음, 강도, 길이); T2Bar = SwingLowBar(2, 낮음, 강도, 길이); P1Bar -1인 경우 P2Bar -1 및 T1Bar -1 및 T2Bar -1 그런 다음 시작 {강세 222 테스트} {저점 X는 T2} T2 = 낮음[T2Bar]; {피크 A는 P2} P2 = 높음[P2Bar]; {저물 B는 T1} T1 = 낮음[T1Bar]; {피크 C는 P1} P1 = 높음[P1Bar]; {D는 구매 포인트입니다} GD = 낮음 PTValid = P1Bar < T1Bar 및 T1Bar < P2Bar 및 P2Bar < T2Bar; HLValid = P1 T2 및 P1 > T1; InZone = GD T2 및 P2 >= 가장 높음(높음, T2Bar); PTValid 및 HLValid 및 InZone이면 시작 XA = P2 - T2; AB = P2 - T1; BC = P1 - T1; CD = P1 - GD; 광고 = P2 - GD; ABdXA = AB / XA; {AB는 XA의 61.8%여야 함} C1 = ABdXA > F1 - 허용 오차 및 ABdXA < F1 + 허용 오차; BCdAB = BC / AB; {BC는 AB의 61.8-78.6%여야 함} C2 = BCdAB > F1 - 공차 및 BCdAB < F2 + 공차; CDdBC = CD / BC; {CD는 BC의 127-161.8%여야 함} C3 = CDdBC > F3 - 허용 오차 및 CDdBC < F4 + 허용 오차; ADdXA = AD / XA; {AD는 XA의 78.6%여야 함} C4 = ADdXA > F2 - 공차 및 ADdXA < F2 + 공차; C1 및 C2 및 C3 및 C4 다음 시작 TL1 = TL_New(날짜[T2Bar], 시간[T2Bar], T2, 날짜[P2Bar], 시간[P2Bar], P2); TL1 >= 0이면 시작 TL_SetColor(TL1, BullColor); TL_SetStyle(TL1, 도구_솔리드); TL_SetSize(TL1, 2); 끝; TL2 = TL_New(날짜[P2Bar], 시간[P2Bar], P2, 날짜[T1Bar], 시간[T1Bar], T1); TL2 >= 0이면 시작 TL_SetColor(TL2, BullColor); TL_SetStyle(TL2, 도구_솔리드); TL_SetSize(TL2, 2); 끝; TL3 = TL_New(날짜[T1Bar], 시간[T1Bar], T1, 날짜[P1Bar], 시간[P1Bar], P1); TL3 >= 0이면 시작 TL_SetColor(TL3, BullColor); TL_SetStyle(TL3, 도구_솔리드); TL_SetSize(TL3, 2); 끝; TL4 = TL_New(날짜[P1Bar], 시간[P1Bar], P1, 날짜, 시간, GD); TL4 >= 0이면 시작 TL_SetColor(TL4, BullColor); TL_SetStyle(TL4, 도구_솔리드); TL_SetSize(TL4, 2); 끝; TL5 = TL_New(날짜[T1Bar], 시간[T1Bar], T1, 날짜, 시간, GD); TL5 >= 0이면 시작 TL_SetColor(TL5, BullColor); TL_SetStyle(TL5, 도구_점); 끝; TL6 = TL_New(날짜[T2Bar], 시간[T2Bar], T2, 날짜, 시간, GD); TL6 >= 0이면 시작 TL_SetColor(TL6, BullColor); TL_SetStyle(TL6, 도구_점선); 끝; 끝; 끝; {약세 222 테스트} {피크 X는 P2입니다} {통 A는 T2입니다} {피크 B는 P1} {저물 C는 T1} {GD는 숏포인트} GD = 높음; PTValid = T1Bar < P1Bar 및 P1Bar < T2Bar 및 T2Bar < P2Bar; HLValid = T1 > T2 및 P1 < P2 및 T1 < P1; InZone = GD > P1 및 GD < P2 및 T2 <= 최저(낮음, P2Bar); PTValid 및 HLValid 및 InZone이면 시작 XA = P2 - T2; AB = P1 - T2; BC = P1 - T1; CD = GD - T1; 광고 = GD - T2; ABdXA = AB / XA; {AB는 XA의 61.8%여야 함} C1 = ABdXA > F1 - 허용 오차 및 ABdXA < F1 + 허용 오차; BCdAB = BC / AB; {BC는 AB의 61.8-78.6%여야 함} C2 = BCdAB > F1 - 공차 및 BCdAB < F2 + 공차; CDdBC = CD / BC; {CD는 BC의 127-161.8%여야 함} C3 = CDdBC > F3 - 허용 오차 및 CDdBC < F4 + 허용 오차; ADdXA = AD / XA; {AD는 XA의 78.6%여야 함} C4 = ADdXA > F2 - 공차 및 ADdXA < F2 + 공차; C1 및 C2 및 C3 및 C4 다음 시작 TL1 = TL_New(날짜[P2Bar], 시간[P2Bar], P2, 날짜[T2Bar], 시간[T2Bar], T2); TL1 >= 0이면 시작 TL_SetColor(TL1, BearColor); TL_SetStyle(TL1, 도구_솔리드); TL_SetSize(TL1, 2); 끝; TL2 = TL_New(날짜[T2Bar], 시간[T2Bar], T2, 날짜[P1Bar], 시간[P1Bar], P1); TL2 >= 0이면 시작 TL_SetColor(TL2, BearColor); TL_SetStyle(TL2, 도구_솔리드); TL_SetSize(TL2, 2); 끝; TL3 = TL_New(날짜[P1Bar], 시간[P1Bar], P1, 날짜[T1Bar], 시간[T1Bar], T1); TL3 >= 0이면 시작 TL_SetColor(TL3, BearColor); TL_SetStyle(TL3, 도구_솔리드); TL_SetSize(TL3, 2); 끝; TL4 = TL_New(날짜[T1Bar], 시간[T1Bar], T1, 날짜, 시간, GD); TL4 >= 0이면 시작 TL_SetColor(TL4, BearColor); TL_SetStyle(TL4, 도구_솔리드); TL_SetSize(TL4, 2); 끝; TL5 = TL_New(날짜[P1Bar], 시간[P1Bar], P1, 날짜, 시간, GD); TL5 >= 0이면 시작 TL_SetColor(TL5, BearColor); TL_SetStyle(TL5, 도구_점); 끝; TL6 = TL_New(날짜[P2Bar], 시간[P2Bar], P2, 날짜, 시간, GD); TL6 >= 0이면 시작 TL_SetColor(TL6, 베어컬러); TL_SetStyle(TL6, 도구_점선); 끝; 끝; 끝; 끝; 2.Wealth-Lab 코드: 절차 Gartley222 ( VPFactor: 부동 소수점; 공차: 부동; 전환 확인: 정수; HoldBars: 정수; VolMin: 정수 ); 시작하다 var ATRValue, VP, Reversal: float; var F1, F2, F3, F4, P1, P2, T1, T2: 부동 소수점; var Bar, P1Bar, P2Bar, T1Bar, T2Bar, p: 정수; var XA, AB, BC, CD, AD, D, XD, DT, ABdXA, BCdAB, CDdBC, ADdXA: 부동 소수점; var PTValid, HLValid, InZone, C1, C2, C3, C4: 부울; var BT, BS, ST, SS: 부동 소수점; {피보나치 상수} F1 := 0.618; F2 := 0.786; F3 := 1.27; F4 := 1.618; InstallTimeBasedExit(HoldBars); for Bar := BarCount()에 대한 조회 - 1 do 시작하다 ApplyAutoStops(바); ATRValue := ATR(막대, 룩백); SetShareSize( 1000 * Int( 10 / ATRValue ) ); VP := 100 * ATRValue / PriceClose(바); {봉우리와 저점 찾기} 반전 := Int(VPFactor * VP); P1 := 피크(바, #높음, F1 * 반전); P1Bar := PeakBar(바, #높음, F1 * 반전); P2 := Peak(P1Bar, #High, Reversal); P2Bar := PeakBar(P1Bar, #High, Reversal); T1 := Trough(막대, #낮음, F1 * 반전); T1Bar := TroughBar(바, #낮음, F1 * 반전); T2 := Trough(T1Bar, #Low, Reversal); T2Bar := TroughBar(T1Bar, #낮음, 반전); {강세 222 테스트} {저점 X는 T2} {피크 A는 P2} {저물 B는 T1} {피크 C는 P1} {D는 구매 영역입니다} D := PriceLow(바); PTValid := (P1Bar > T1Bar) 및 (T1Bar > P2Bar) 및 (P2Bar > T2Bar); HLValid := (P1 T2) 및 (P1 > T1); 인존 := (D T2); if (MarketPosition = 0) 및 (SMA(Bar, #Volume, Lookback) >= VolMin) 및 (PTValid) 및 (HLValid) 및 (InZone) 시작하다 XA:= P2 - T2; AB := P2 - T1; BC := P1 - T1; XD := P2 - (F2 * XA); CD := P1 - XD; 광고 := P2 - XD; ABdXA := AB / XA; {AB는 XA의 61.8%여야 함} C1 := (ABdXA > F1 - 허용 오차) 및 (ABdXA < F1 + 허용 오차); BCdAB := BC / AB; {BC는 AB의 61.8-78.6%여야 함} C2 := (BCdAB > F1 - 허용 오차) 및 (BCdAB < F2 + 허용 오차); CDdBC := CD/BC; {CD는 BC의 127-161.8%여야 함} C3 := (CDdBC > F3 - 내성) 및 (CDdBC < F4 + 내성); ADdXA := AD / XA; {AD는 XA의 78.6%여야 함} C4 := (ADdXA > F2 - 허용오차) 및 (ADdXA < F2 + 허용오차); C1과 C2, C3과 C4라면 시작하다 DrawLine(P2Bar, P2, T2Bar, T2, 0, #Blue, #Solid); DrawLine(T1Bar, T1, P2Bar, P2, 0, #Blue, #Solid); DrawLine(P1Bar, P1, T1Bar, T1, 0, #Blue, #Solid); DrawLine(바, D, P1Bar, P1, 0, #파란색, #솔리드); DrawLine(막대, D, T1Bar, T1, 0, #파란색, #점선); DrawLine(막대, D, T2Bar, T2, 0, #파란색, #점선); AnnotateBar('B', Bar, True, #Blue, 10); BuyAtLimit(바, XD, 'G222 LE'); DT := F1 * CD; BT := XD + DT; BS := T2; 끝; 끝; {약세 222 테스트} {피크 X는 P2입니다} {통 A는 T2입니다} {피크 B는 P1} {저물 C는 T1} {D는 숏존} D := PriceHigh(바); PTValid := (T1Bar > P1Bar) 및 (P1Bar > T2Bar) 및 (T2Bar > P2Bar); HLValid := (T1 > T2) 및 (P1 < P2) 및 (T1 < P1); InZone := (D > P1) 및 (D < P2); if (MarketPosition = 0) 및 (PriceClose( Bar ) >= 5) 및 (SMA(Bar, #Volume, Lookback) >= VolMin) 및 (PTValid) 및 (HLValid) 및 (InZone) 시작하다 XA:= P2 - T2; AB := P1 - T2; BC := P1 - T1; XD := T2 + (F2 * XA); CD := XD - T1; AD := XD - T2; ABdXA := AB / XA; {AB는 XA의 61.8%여야 함} C1 := (ABdXA > F1 - 허용 오차) 및 (ABdXA < F1 + 허용 오차); BCdAB := BC / AB; {BC는 AB의 61.8-78.6%여야 함} C2 := (BCdAB > F1 - 허용 오차) 및 (BCdAB < F2 + 허용 오차); CDdBC := CD/BC; {CD는 BC의 127-161.8%여야 함} C3 := (CDdBC > F3 - 내성) 및 (CDdBC < F4 + 내성); ADdXA := AD / XA; {AD는 XA의 78.6%여야 함} C4 := (ADdXA > F2 - 허용오차) 및 (ADdXA < F2 + 허용오차); C1과 C2, C3과 C4라면 시작하다 DrawLine(T2Bar, T2, P2Bar, P2, 0, #빨간색, #솔리드); DrawLine(P1Bar, P1, T2Bar, T2, 0, #빨강, #솔리드); DrawLine(T1Bar, T1, P1Bar, P1, 0, #레드, #솔리드); DrawLine(바, D, T1Bar, T1, 0, #레드, #솔리드); DrawLine(막대, D, P1Bar, P1, 0, #빨간색, #점선); DrawLine(막대, D, P2Bar, P2, 0, #빨간색, #점선); AnnotateBar('S', Bar, False, #Red, 10); ShortAtLimit(바, XD, 'G222 SE'); DT := F1 * CD; ST := XD - DT; SS := P2; 끝; 끝; LastPositionActive이면 시작하다 MarketPosition = 1이면 시작 SellAtLimit(바+1, BT, #모두, 'G222 LX+'); SellAtStop(바+1, BS, #전체, 'G222 LX-'); 끝; MarketPosition = -1이면 시작 CoverAtLimit(막대+1, ST, #모두, 'G222 LX+'); CoverAtStop(바+1, SS, #All, 'G222 LX-'); 끝; 끝; 끝; 끝; Gartley222(2.0, 0.1, 20, 7, 2000000); 고조파 거래 Gartley 222 Ask! Zero_forex 2006.01.31 21:20 #68 SMCMA 및 WCMA 란 무엇입니까 ??? 누구든지 이 두 가지 MA에 대해 알고 있으며 Meta Trader 4용으로 가져와 사용할 수 있는 위치를 알고 있습니다. 1. SMCMA 2. WCMA 내가 알 수 있는 유일한 것은 이것이 MA의 일부 유형이라는 것입니다. ( 이동 평균 ) 하지만 어디서 얻을 수 있고 어떻게 사용합니까 ?? 안녕 Zero_Forex Willis11of12 2006.02.01 04:10 #69 EA에서 다른 통화 쌍 을 사용 중이신가요? 전문가 고문이 다른 통화 쌍 차트를 확인하여 매수 또는 매도 여부를 결정하는 방법을 아는 사람이 있습니까? 예를 들어, EA가 gbp-chf에서 구매 또는 판매할지 여부를 결정하는 기준의 일부로 usd-chf를 살펴보게 하려면 어떻게 해야 합니까? 지금까지 마음에 드는 EA가 있지만 다른 관련 쌍을 확인하기 위해 프로그램에 작성해도 된다면 더 좋을 것 같아요. Codersguru 또는 도움을 줄 수 있는 사람이 있으면 알려주십시오. 감사해요! '모두 닫기'/'열기' 도구 오버레이 표시기 에마 크로스! LGH 2006.02.16 16:31 #70 codersguru: 안녕 여러분, 코드의 일부를 도와달라는 개인적인 메시지를 많이 받았습니다. 여기에 MQL4와 관련된 질문을 게시할 수 있습니다. 최선을 다해 답변해 드리겠습니다. 안녕하세요 코더입니다. 경고음은 5분 바에 한 번만 울리게 할 수 있나요? 조건이 충족될 때 경고가 한 번만 울릴 수 있습니까? 그런 다음 전원을 끕니다. 그런 다음 다음 막대가 열리면 표시기를 새로 고치면 다시 울릴 준비가 됩니다. 그런 다음 0.0005의 조건이 다시 충족될 때까지 다시 한 번 스위치를 끕니다. 그런 다음 다시 켜고 등등...... 아래 표시기는 트리거될 때 막대당 많은 경고를 울릴 수 있습니다. 아래를 참조하십시오. //+----------------------------------------------- -------------------+ //| 주스.mq4 | //| Perky_z | //| http://fxovereasy.atspace.com/index | //+----------------------------------------------- -------------------+ #property copyright "perky" #속성 링크 "http://fxovereasy.atspace.com/index" //---- 표시기 설정 #속성 표시기_분리_창 #속성 표시기_버퍼 2 #property indicator_color1 라임그린 #property indicator_color2 FireBrick //---- 표시기 매개변수 extern bool DoAlerts = false; 외부 정수 AlertFromPips = 5; extern int Periyod=7; 외부 이중 레벨=5; extern bool JuiceLevelsVisible = true; 외부 정수 JuiceStartPips = 5; extern int JuiceStepPips = 5; 외부 정수 JuiceLevelsNumber = 4; 외부 색상 JuiceLevelColor = 은색; //---- 표시기 버퍼 이중 OsMAUpBuffer[]; 이중 OsMADownBuffer[]; 이중 OsMA값; 이중 currentJuiceLevel; //+----------------------------------------------- -------------------+ //| 커스텀 인디케이터 초기화 기능 | //+----------------------------------------------- -------------------+ 정수 초기화() { //---- 2개의 추가 버퍼가 계산에 사용됩니다. 표시기버퍼(2); //---- 그리기 설정 SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,2); SetIndexStyle(1,DRAW_HISTOGRAM,STYLE_SOLID,1); SetIndexDrawBegin(0,레벨); IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS)+2); //---- 2개의 인디케이터 버퍼 매핑 if(!SetIndexBuffer(0,OsMAUpBuffer) && !SetIndexBuffer(1,OsMADownBuffer)) Print("표시 버퍼를 설정할 수 없습니다!"); //---- DataWindow의 이름 및 표시기 하위 창 레이블 IndicatorShortName("Juice("+Periyod+","+Level+")"); //---- 초기화 완료 리턴(0); } int SetLevelLines() { 문자열 레벨 레이블; if(JuiceLevelsVisible) { SetLevelStyle(STYLE_DASH,1,JuiceLevelColor); for(int i=1; i<= JuiceLevelsNumber; i++) { currentJuiceLevel = (JuiceStartPips + (i-1)*JuiceStepPips)*포인트; SetLevelValue(i,currentJuiceLevel); levelLabel = "레벨 "+i+": "+currentJuiceLevel; SetIndexLabel(i,levelLabel); } }또 다른 { for(i=1; i<= JuiceLevelsNumber; i++) { SetLevelValue(i,0.0); } } } //+----------------------------------------------- -------------------+ //| 오실레이터의 이동 평균 | //+----------------------------------------------- -------------------+ 정수 시작() { //if ( 마침표 != 15) Alert("주스는 15분 차트에만 추천!!"); 정수 한계, i; int counted_bars=IndicatorCounted(); 더블 주스; 부울 TurnOnAlert = true; //---- 가능한 오류 확인 if(counted_bars<0) return(-1); //---- 마지막으로 계산된 막대가 다시 계산됩니다. if(counted_bars>0) counted_bars--; limit=막대-counted_bars; 레벨 = 레벨*포인트; if (Period()==5 ) 레벨=레벨/2; SetLevelLines(); //---- 메인 루프 for(i=0; i<한계; i++) { Juice=iStdDev(NULL,0,Periyod,MODE_EMA,0,PRICE_CLOSE,i)-레벨; if(주스>0){ OsMAUpBuffer=주스; OsMADownBuffer=0; }else if(주스<0){ OsMADownBuffer=주스; OsMAUpBuffer=0; }또 다른{ OsMAUpBuffer=0; OsMADownBuffer=0; } } if(DoAlerts) { if (주스 > AlertFromPips*포인트 && 기간() == 5) { if (TurnOnAlert) { Alert("주스 위의 ",AlertFromPips*Point," for ", Symbol()); PlaySound("Tick.wav"); TurnOnAlert = 거짓; } } 또 다른 { TurnOnAlert = 참; } } //---- 완료 리턴(0); } //+----------------------------------------------- -------------------+ 도움을 주시면 대단히 감사하겠습니다. 감사합니다. 리. Ask! Indicators with alerts/signal Lenar. Alert only once 1234567891011121314...182 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
안녕하세요, 저는 cci<-150
틱 단위로 틱으로 경고합니다. 촛불이 닫힐 때만 경고하도록 누구든지 수정할 수 있습니까?
이 경우 5m 촛불의 끝에서 cci가 < -150일 때만 경고를 받고 싶습니다.
미리 감사드립니다
좋아, 두 번째 질문, 나는 이것이 쉽다고 생각한다.
가격 종가가 MA를 넘을 때 알려주는 사용자 지표를 구축 중입니다.
iCustom을 사용하여 MA 표시기를 가져오고 있습니다.
그런 다음 가격 닫기를 사용하는 방법을 모르겠습니다. CLOSE 및 PRICE_CLOSE를 시도했지만 결과가 없었습니다.
if (닫기?>ma1)
adx값= -1;
만약 (PRICE_CLOSE?>ma1)
adx값= -1;
또한 경고가 5m 막대 끝에서만 울리고 틱 단위로 작동하지 않기를 원합니다. 다른 무엇을 변경해야합니까 (이 질문은 이전 게시물의 질문입니다)
감사해요
안녕하세요 Codersguru님,
Osma Color에 경고를 코딩하여 색상이 변경될 때 경고하도록 도와 주시겠습니까?
감사해요
던컨
//+----------------------------------------------- -------------------+
//| OsMA_color.mq4 |
//| 라파엘 |
//| marynarz15@wp.pl |
//+----------------------------------------------- -------------------+
#재산권 "라파엘"
#속성 링크 "marynarz15@wp.pl"
//---- 표시기 설정
#속성 표시기_분리_창
#속성 표시기_버퍼 2
#property indicator_color1 라임
#property indicator_color2 빨간색
//---- 표시기 매개변수
외부 int FastEMA=12;
extern int SlowEMA=26;
외부 정수 SignalSMA=9;
//---- 표시기 버퍼
이중 ind_buffer1a[];
이중 ind_buffer1b[];
이중 ind_buffer2[];
이중 ind_buffer3[];
//+----------------------------------------------- -------------------+
//| 커스텀 인디케이터 초기화 기능 |
//+----------------------------------------------- -------------------+
정수 초기화()
{
//---- 2개의 추가 버퍼가 계산에 사용됩니다.
표시기버퍼(4);
//---- 그리기 설정
SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,2);
SetIndexStyle(1,DRAW_HISTOGRAM,STYLE_SOLID,2);
SetIndexDrawBegin(0,SignalSMA);
SetIndexDrawBegin(1,SignalSMA);
IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS)+2);
//---- 3개의 인디케이터 버퍼 매핑
if(!SetIndexBuffer(0,ind_buffer1a) &&
!SetIndexBuffer(1,ind_buffer1b) &&
!SetIndexBuffer(2,ind_buffer2) &&
!SetIndexBuffer(3,ind_buffer3))
Print("표시 버퍼를 설정할 수 없습니다!");
//---- DataWindow의 이름 및 표시기 하위 창 레이블
IndicatorShortName("OsMA("+FastEMA+","+SlowEMA+","+SignalSMA+")");
//---- 초기화 완료
리턴(0);
}
//+----------------------------------------------- -------------------+
//| 오실레이터의 이동 평균 |
//+----------------------------------------------- -------------------+
정수 시작()
{
정수 제한;
int counted_bars=IndicatorCounted();
//---- 가능한 오류 확인
if(counted_bars<0) return(-1);
//---- 마지막으로 계산된 막대가 다시 계산됩니다.
if(counted_bars>0) counted_bars--;
limit=막대-counted_bars;
//---- 첫 번째 추가 버퍼에서 macd 계산
for(int i=0; i<limit; i++)
ind_buffer2=iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i)
-iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i);
//---- 2번째 추가 버퍼에서 카운트된 신호 라인
for(i=0; i<한계; i++)
ind_buffer3=iMAOnArray(ind_buffer2,막대,SignalSMA,0,MODE_SMA,i);
//---- 메인 루프
이중 값=0;
for(i=0; i<한계; i++)
{
ind_buffer1a=0.0;
ind_buffer1b=0.0;
값=ind_buffer2-ind_buffer3;
if (값>0) ind_buffer1a=값;
if (값<0) ind_buffer1b=값;
}
//---- 완료
반환(0);
}
//+----------------------------------------------- -------------------+
안녕
나는 나비 패턴을 인식할 수 있는 표시기가 있지만 MT3용으로 작성되었으며 누구든지 나에게 호의를 베풀고 MQL4로 변환할 수 있습니다.
패턴의 요지와 규칙이 언급된 2개의 pdf를 첨부했습니다.
안녕
안녕하세요 여러분,
당신은 모두 이 작가의 이름을 알고 있을 수 있지만 결코 그것을 알지 못했습니다
그의 방법은 소프트웨어로 코딩되었습니다.
Pesavento는 다른 사람들 사이에서 이 훌륭한 책을 썼습니다.
* 패턴 인식을 통한 피보나치 비율
* 주식 거래를 위한 수익성 있는 패턴
* Astro-Cycles : Traders Viewpoint
그런데 ENSIGN 소프트웨어에는 다음 링크에서 볼 수 있는 원래 Pesavento Patterns 학습 도구도 있다는 것을 알고 있습니다.
누군가가 그것을 ENSIGN에서 MetaTrader 4로 가져올 수 있다면 그것은 놀라운 일이 될 것입니다.
http://www.ensignsoftware.com/help/pesavento.htm
안녕 다시
두 플랫폼에서 gartley 222 패턴에 대한 코드를 찾았습니다.
누군가 그것을 MetaTrade 4로 번역할 수 있다면 그것은 훌륭할 것입니다!
다음은 코드입니다.
1. Aaron Behle와 Mark Conway가 작성한 "Trading the Gartley 222"에서 찾은 Gartley 222 패턴에 대한 TradeStation 코드, p. 38:
입력:
길이(100),
힘(8),
공차(0.10),
BullColor(파란색),
BearColor(빨간색);
변수:
F1(0.618),
F2(0.786),
F3(1.27),
F4(1.618),
P1바(-1),
P2바(-1),
T1바(-1),
T2바(-1),
P1(0.0),
P2(0.0),
T1(0.0),
T2(0.0),
PTValid(거짓),
HLValid(거짓),
인존(거짓),
GD(0.0),
XA(0.0),
AB(0.0),
BC(0.0),
CD(0.0),
AD(0.0),
C1(거짓),
C2(거짓),
C3(거짓),
C4(거짓),
ABdXA(0.0),
BCdAB(0.0),
CDDBC(0.0),
ADDXA(0.0),
TL1(-1),
TL2(-1),
TL3(-1),
TL4(-1),
TL5(-1),
TL6(-1);
P1Bar = SwingHighBar(1, 높음, 강도, 길이);
P2Bar = SwingHighBar(2, 높음, 강도, 길이);
T1Bar = SwingLowBar(1, 낮음, 강도, 길이);
T2Bar = SwingLowBar(2, 낮음, 강도, 길이);
P1Bar -1인 경우
P2Bar -1 및
T1Bar -1 및
T2Bar -1 그런 다음 시작
{강세 222 테스트}
{저점 X는 T2}
T2 = 낮음[T2Bar];
{피크 A는 P2}
P2 = 높음[P2Bar];
{저물 B는 T1}
T1 = 낮음[T1Bar];
{피크 C는 P1}
P1 = 높음[P1Bar];
{D는 구매 포인트입니다}
GD = 낮음
PTValid = P1Bar < T1Bar 및 T1Bar < P2Bar 및 P2Bar < T2Bar;
HLValid = P1 T2 및 P1 > T1;
InZone = GD T2 및 P2 >= 가장 높음(높음, T2Bar);
PTValid 및 HLValid 및 InZone이면 시작
XA = P2 - T2;
AB = P2 - T1;
BC = P1 - T1;
CD = P1 - GD;
광고 = P2 - GD;
ABdXA = AB / XA; {AB는 XA의 61.8%여야 함}
C1 = ABdXA > F1 - 허용 오차 및 ABdXA < F1 + 허용 오차;
BCdAB = BC / AB; {BC는 AB의 61.8-78.6%여야 함}
C2 = BCdAB > F1 - 공차 및 BCdAB < F2 + 공차;
CDdBC = CD / BC; {CD는 BC의 127-161.8%여야 함}
C3 = CDdBC > F3 - 허용 오차 및 CDdBC < F4 + 허용 오차;
ADdXA = AD / XA; {AD는 XA의 78.6%여야 함}
C4 = ADdXA > F2 - 공차 및 ADdXA < F2 + 공차;
C1 및 C2 및 C3 및 C4 다음 시작
TL1 = TL_New(날짜[T2Bar], 시간[T2Bar], T2, 날짜[P2Bar], 시간[P2Bar], P2);
TL1 >= 0이면 시작
TL_SetColor(TL1, BullColor);
TL_SetStyle(TL1, 도구_솔리드);
TL_SetSize(TL1, 2);
끝;
TL2 = TL_New(날짜[P2Bar], 시간[P2Bar], P2, 날짜[T1Bar], 시간[T1Bar], T1);
TL2 >= 0이면 시작
TL_SetColor(TL2, BullColor);
TL_SetStyle(TL2, 도구_솔리드);
TL_SetSize(TL2, 2);
끝;
TL3 = TL_New(날짜[T1Bar], 시간[T1Bar], T1, 날짜[P1Bar], 시간[P1Bar], P1);
TL3 >= 0이면 시작
TL_SetColor(TL3, BullColor);
TL_SetStyle(TL3, 도구_솔리드);
TL_SetSize(TL3, 2);
끝;
TL4 = TL_New(날짜[P1Bar], 시간[P1Bar], P1, 날짜, 시간, GD);
TL4 >= 0이면 시작
TL_SetColor(TL4, BullColor);
TL_SetStyle(TL4, 도구_솔리드);
TL_SetSize(TL4, 2);
끝;
TL5 = TL_New(날짜[T1Bar], 시간[T1Bar], T1, 날짜, 시간, GD);
TL5 >= 0이면 시작
TL_SetColor(TL5, BullColor);
TL_SetStyle(TL5, 도구_점);
끝;
TL6 = TL_New(날짜[T2Bar], 시간[T2Bar], T2, 날짜, 시간, GD);
TL6 >= 0이면 시작
TL_SetColor(TL6, BullColor);
TL_SetStyle(TL6, 도구_점선);
끝;
끝;
끝;
{약세 222 테스트}
{피크 X는 P2입니다}
{통 A는 T2입니다}
{피크 B는 P1}
{저물 C는 T1}
{GD는 숏포인트}
GD = 높음;
PTValid = T1Bar < P1Bar 및 P1Bar < T2Bar 및 T2Bar < P2Bar;
HLValid = T1 > T2 및 P1 < P2 및 T1 < P1;
InZone = GD > P1 및 GD < P2 및 T2 <= 최저(낮음, P2Bar);
PTValid 및 HLValid 및 InZone이면 시작
XA = P2 - T2;
AB = P1 - T2;
BC = P1 - T1;
CD = GD - T1;
광고 = GD - T2;
ABdXA = AB / XA; {AB는 XA의 61.8%여야 함}
C1 = ABdXA > F1 - 허용 오차 및 ABdXA < F1 + 허용 오차;
BCdAB = BC / AB; {BC는 AB의 61.8-78.6%여야 함}
C2 = BCdAB > F1 - 공차 및 BCdAB < F2 + 공차;
CDdBC = CD / BC; {CD는 BC의 127-161.8%여야 함}
C3 = CDdBC > F3 - 허용 오차 및 CDdBC < F4 + 허용 오차;
ADdXA = AD / XA; {AD는 XA의 78.6%여야 함}
C4 = ADdXA > F2 - 공차 및 ADdXA < F2 + 공차;
C1 및 C2 및 C3 및 C4 다음 시작
TL1 = TL_New(날짜[P2Bar], 시간[P2Bar], P2, 날짜[T2Bar], 시간[T2Bar], T2);
TL1 >= 0이면 시작
TL_SetColor(TL1, BearColor);
TL_SetStyle(TL1, 도구_솔리드);
TL_SetSize(TL1, 2);
끝;
TL2 = TL_New(날짜[T2Bar], 시간[T2Bar], T2, 날짜[P1Bar], 시간[P1Bar], P1);
TL2 >= 0이면 시작
TL_SetColor(TL2, BearColor);
TL_SetStyle(TL2, 도구_솔리드);
TL_SetSize(TL2, 2);
끝;
TL3 = TL_New(날짜[P1Bar], 시간[P1Bar], P1, 날짜[T1Bar], 시간[T1Bar], T1);
TL3 >= 0이면 시작
TL_SetColor(TL3, BearColor);
TL_SetStyle(TL3, 도구_솔리드);
TL_SetSize(TL3, 2);
끝;
TL4 = TL_New(날짜[T1Bar], 시간[T1Bar], T1, 날짜, 시간, GD);
TL4 >= 0이면 시작
TL_SetColor(TL4, BearColor);
TL_SetStyle(TL4, 도구_솔리드);
TL_SetSize(TL4, 2);
끝;
TL5 = TL_New(날짜[P1Bar], 시간[P1Bar], P1, 날짜, 시간, GD);
TL5 >= 0이면 시작
TL_SetColor(TL5, BearColor);
TL_SetStyle(TL5, 도구_점);
끝;
TL6 = TL_New(날짜[P2Bar], 시간[P2Bar], P2, 날짜, 시간, GD);
TL6 >= 0이면 시작
TL_SetColor(TL6, 베어컬러);
TL_SetStyle(TL6, 도구_점선);
끝;
끝;
끝;
끝;
2.Wealth-Lab 코드:
절차 Gartley222
(
VPFactor: 부동 소수점;
공차: 부동;
전환 확인: 정수;
HoldBars: 정수;
VolMin: 정수
);
시작하다
var ATRValue, VP, Reversal: float;
var F1, F2, F3, F4, P1, P2, T1, T2: 부동 소수점;
var Bar, P1Bar, P2Bar, T1Bar, T2Bar, p: 정수;
var XA, AB, BC, CD, AD, D, XD, DT, ABdXA, BCdAB, CDdBC, ADdXA: 부동 소수점;
var PTValid, HLValid, InZone, C1, C2, C3, C4: 부울;
var BT, BS, ST, SS: 부동 소수점;
{피보나치 상수}
F1 := 0.618;
F2 := 0.786;
F3 := 1.27;
F4 := 1.618;
InstallTimeBasedExit(HoldBars);
for Bar := BarCount()에 대한 조회 - 1 do
시작하다
ApplyAutoStops(바);
ATRValue := ATR(막대, 룩백);
SetShareSize( 1000 * Int( 10 / ATRValue ) );
VP := 100 * ATRValue / PriceClose(바);
{봉우리와 저점 찾기}
반전 := Int(VPFactor * VP);
P1 := 피크(바, #높음, F1 * 반전);
P1Bar := PeakBar(바, #높음, F1 * 반전);
P2 := Peak(P1Bar, #High, Reversal);
P2Bar := PeakBar(P1Bar, #High, Reversal);
T1 := Trough(막대, #낮음, F1 * 반전);
T1Bar := TroughBar(바, #낮음, F1 * 반전);
T2 := Trough(T1Bar, #Low, Reversal);
T2Bar := TroughBar(T1Bar, #낮음, 반전);
{강세 222 테스트}
{저점 X는 T2}
{피크 A는 P2}
{저물 B는 T1}
{피크 C는 P1}
{D는 구매 영역입니다}
D := PriceLow(바);
PTValid := (P1Bar > T1Bar) 및 (T1Bar > P2Bar) 및 (P2Bar > T2Bar);
HLValid := (P1 T2) 및 (P1 > T1);
인존 := (D T2);
if (MarketPosition = 0) 및
(SMA(Bar, #Volume, Lookback) >= VolMin) 및
(PTValid) 및 (HLValid) 및 (InZone)
시작하다
XA:= P2 - T2;
AB := P2 - T1;
BC := P1 - T1;
XD := P2 - (F2 * XA);
CD := P1 - XD;
광고 := P2 - XD;
ABdXA := AB / XA; {AB는 XA의 61.8%여야 함}
C1 := (ABdXA > F1 - 허용 오차) 및 (ABdXA < F1 + 허용 오차);
BCdAB := BC / AB; {BC는 AB의 61.8-78.6%여야 함}
C2 := (BCdAB > F1 - 허용 오차) 및 (BCdAB < F2 + 허용 오차);
CDdBC := CD/BC; {CD는 BC의 127-161.8%여야 함}
C3 := (CDdBC > F3 - 내성) 및 (CDdBC < F4 + 내성);
ADdXA := AD / XA; {AD는 XA의 78.6%여야 함}
C4 := (ADdXA > F2 - 허용오차) 및 (ADdXA < F2 + 허용오차);
C1과 C2, C3과 C4라면
시작하다
DrawLine(P2Bar, P2, T2Bar, T2, 0, #Blue, #Solid);
DrawLine(T1Bar, T1, P2Bar, P2, 0, #Blue, #Solid);
DrawLine(P1Bar, P1, T1Bar, T1, 0, #Blue, #Solid);
DrawLine(바, D, P1Bar, P1, 0, #파란색, #솔리드);
DrawLine(막대, D, T1Bar, T1, 0, #파란색, #점선);
DrawLine(막대, D, T2Bar, T2, 0, #파란색, #점선);
AnnotateBar('B', Bar, True, #Blue, 10);
BuyAtLimit(바, XD, 'G222 LE');
DT := F1 * CD;
BT := XD + DT;
BS := T2;
끝;
끝;
{약세 222 테스트}
{피크 X는 P2입니다}
{통 A는 T2입니다}
{피크 B는 P1}
{저물 C는 T1}
{D는 숏존}
D := PriceHigh(바);
PTValid := (T1Bar > P1Bar) 및 (P1Bar > T2Bar) 및 (T2Bar > P2Bar);
HLValid := (T1 > T2) 및 (P1 < P2) 및 (T1 < P1);
InZone := (D > P1) 및 (D < P2);
if (MarketPosition = 0) 및
(PriceClose( Bar ) >= 5) 및
(SMA(Bar, #Volume, Lookback) >= VolMin) 및
(PTValid) 및 (HLValid) 및 (InZone)
시작하다
XA:= P2 - T2;
AB := P1 - T2;
BC := P1 - T1;
XD := T2 + (F2 * XA);
CD := XD - T1;
AD := XD - T2;
ABdXA := AB / XA; {AB는 XA의 61.8%여야 함}
C1 := (ABdXA > F1 - 허용 오차) 및 (ABdXA < F1 + 허용 오차);
BCdAB := BC / AB; {BC는 AB의 61.8-78.6%여야 함}
C2 := (BCdAB > F1 - 허용 오차) 및 (BCdAB < F2 + 허용 오차);
CDdBC := CD/BC; {CD는 BC의 127-161.8%여야 함}
C3 := (CDdBC > F3 - 내성) 및 (CDdBC < F4 + 내성);
ADdXA := AD / XA; {AD는 XA의 78.6%여야 함}
C4 := (ADdXA > F2 - 허용오차) 및 (ADdXA < F2 + 허용오차);
C1과 C2, C3과 C4라면
시작하다
DrawLine(T2Bar, T2, P2Bar, P2, 0, #빨간색, #솔리드);
DrawLine(P1Bar, P1, T2Bar, T2, 0, #빨강, #솔리드);
DrawLine(T1Bar, T1, P1Bar, P1, 0, #레드, #솔리드);
DrawLine(바, D, T1Bar, T1, 0, #레드, #솔리드);
DrawLine(막대, D, P1Bar, P1, 0, #빨간색, #점선);
DrawLine(막대, D, P2Bar, P2, 0, #빨간색, #점선);
AnnotateBar('S', Bar, False, #Red, 10);
ShortAtLimit(바, XD, 'G222 SE');
DT := F1 * CD;
ST := XD - DT;
SS := P2;
끝;
끝;
LastPositionActive이면
시작하다
MarketPosition = 1이면 시작
SellAtLimit(바+1, BT, #모두, 'G222 LX+');
SellAtStop(바+1, BS, #전체, 'G222 LX-');
끝;
MarketPosition = -1이면 시작
CoverAtLimit(막대+1, ST, #모두, 'G222 LX+');
CoverAtStop(바+1, SS, #All, 'G222 LX-');
끝;
끝;
끝;
끝;
Gartley222(2.0, 0.1, 20, 7, 2000000);
SMCMA 및 WCMA 란 무엇입니까 ???
누구든지 이 두 가지 MA에 대해 알고 있으며 Meta Trader 4용으로 가져와 사용할 수 있는 위치를 알고 있습니다.
1. SMCMA
2. WCMA
내가 알 수 있는 유일한 것은 이것이 MA의 일부 유형이라는 것입니다.
( 이동 평균 ) 하지만 어디서 얻을 수 있고 어떻게 사용합니까 ??
안녕
Zero_Forex
EA에서 다른 통화 쌍 을 사용 중이신가요?
전문가 고문이 다른 통화 쌍 차트를 확인하여 매수 또는 매도 여부를 결정하는 방법을 아는 사람이 있습니까? 예를 들어, EA가 gbp-chf에서 구매 또는 판매할지 여부를 결정하는 기준의 일부로 usd-chf를 살펴보게 하려면 어떻게 해야 합니까? 지금까지 마음에 드는 EA가 있지만 다른 관련 쌍을 확인하기 위해 프로그램에 작성해도 된다면 더 좋을 것 같아요. Codersguru 또는 도움을 줄 수 있는 사람이 있으면 알려주십시오.
감사해요!
안녕 여러분,
코드의 일부를 도와달라는 개인적인 메시지를 많이 받았습니다.
여기에 MQL4와 관련된 질문을 게시할 수 있습니다. 최선을 다해 답변해 드리겠습니다.안녕하세요 코더입니다.
경고음은 5분 바에 한 번만 울리게 할 수 있나요?
조건이 충족될 때 경고가 한 번만 울릴 수 있습니까?
그런 다음 전원을 끕니다.
그런 다음 다음 막대가 열리면 표시기를 새로 고치면 다시 울릴 준비가 됩니다.
그런 다음 0.0005의 조건이 다시 충족될 때까지 다시 한 번 스위치를 끕니다.
그런 다음 다시 켜고 등등......
아래 표시기는 트리거될 때 막대당 많은 경고를 울릴 수 있습니다.
아래를 참조하십시오.
//+----------------------------------------------- -------------------+
//| 주스.mq4 |
//| Perky_z |
//| http://fxovereasy.atspace.com/index |
//+----------------------------------------------- -------------------+
#property copyright "perky"
#속성 링크 "http://fxovereasy.atspace.com/index"
//---- 표시기 설정
#속성 표시기_분리_창
#속성 표시기_버퍼 2
#property indicator_color1 라임그린
#property indicator_color2 FireBrick
//---- 표시기 매개변수
extern bool DoAlerts = false;
외부 정수 AlertFromPips = 5;
extern int Periyod=7;
외부 이중 레벨=5;
extern bool JuiceLevelsVisible = true;
외부 정수 JuiceStartPips = 5;
extern int JuiceStepPips = 5;
외부 정수 JuiceLevelsNumber = 4;
외부 색상 JuiceLevelColor = 은색;
//---- 표시기 버퍼
이중 OsMAUpBuffer[];
이중 OsMADownBuffer[];
이중 OsMA값;
이중 currentJuiceLevel;
//+----------------------------------------------- -------------------+
//| 커스텀 인디케이터 초기화 기능 |
//+----------------------------------------------- -------------------+
정수 초기화()
{
//---- 2개의 추가 버퍼가 계산에 사용됩니다.
표시기버퍼(2);
//---- 그리기 설정
SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,2);
SetIndexStyle(1,DRAW_HISTOGRAM,STYLE_SOLID,1);
SetIndexDrawBegin(0,레벨);
IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS)+2);
//---- 2개의 인디케이터 버퍼 매핑
if(!SetIndexBuffer(0,OsMAUpBuffer) &&
!SetIndexBuffer(1,OsMADownBuffer))
Print("표시 버퍼를 설정할 수 없습니다!");
//---- DataWindow의 이름 및 표시기 하위 창 레이블
IndicatorShortName("Juice("+Periyod+","+Level+")");
//---- 초기화 완료
리턴(0);
}
int SetLevelLines()
{
문자열 레벨 레이블;
if(JuiceLevelsVisible)
{
SetLevelStyle(STYLE_DASH,1,JuiceLevelColor);
for(int i=1; i<= JuiceLevelsNumber; i++)
{
currentJuiceLevel = (JuiceStartPips + (i-1)*JuiceStepPips)*포인트;
SetLevelValue(i,currentJuiceLevel);
levelLabel = "레벨 "+i+": "+currentJuiceLevel;
SetIndexLabel(i,levelLabel);
}
}또 다른
{
for(i=1; i<= JuiceLevelsNumber; i++)
{
SetLevelValue(i,0.0);
}
}
}
//+----------------------------------------------- -------------------+
//| 오실레이터의 이동 평균 |
//+----------------------------------------------- -------------------+
정수 시작()
{
//if ( 마침표 != 15) Alert("주스는 15분 차트에만 추천!!");
정수 한계, i;
int counted_bars=IndicatorCounted();
더블 주스;
부울 TurnOnAlert = true;
//---- 가능한 오류 확인
if(counted_bars<0) return(-1);
//---- 마지막으로 계산된 막대가 다시 계산됩니다.
if(counted_bars>0) counted_bars--;
limit=막대-counted_bars;
레벨 = 레벨*포인트;
if (Period()==5 ) 레벨=레벨/2;
SetLevelLines();
//---- 메인 루프
for(i=0; i<한계; i++)
{
Juice=iStdDev(NULL,0,Periyod,MODE_EMA,0,PRICE_CLOSE,i)-레벨;
if(주스>0){
OsMAUpBuffer=주스;
OsMADownBuffer=0;
}else if(주스<0){
OsMADownBuffer=주스;
OsMAUpBuffer=0;
}또 다른{
OsMAUpBuffer=0;
OsMADownBuffer=0;
}
}
if(DoAlerts)
{
if (주스 > AlertFromPips*포인트 && 기간() == 5)
{
if (TurnOnAlert)
{
Alert("주스 위의 ",AlertFromPips*Point," for ", Symbol());
PlaySound("Tick.wav");
TurnOnAlert = 거짓;
}
}
또 다른
{
TurnOnAlert = 참;
}
}
//---- 완료
리턴(0);
}
//+----------------------------------------------- -------------------+
도움을 주시면 대단히 감사하겠습니다.
감사합니다.
리.