커뮤니티

예스랭귀지 Q&A

글쓰기

푸앵카레 님에 의해서 삭제되었습니다.

프로필 이미지
푸앵카레
2024-01-06
22
글번호 175486
시스템
답변완료

ADX, +DI 및 -DI 지표 문의 드립니다

안녕하세요. 항상 도움을 받고 있습니다. ADX, +DI 및 -DI 지표 관련해서 아래와 같은 예스랭귀지 수식을 찾았습니다. 이 수식을 바탕으로 자바스크립트로 변환해 보았습니다만, ADX가 잘 구현되었는지 궁금합니다. 시스템식에 ADX >30으로 해 놨는데, 신호가 발생 하는게 하나도 없네요. 자바스크립트 수식 검토 부탁합니다. ==============예스랭귀지=================== input : Period(14); var : PDI(0),MDI(0),ADXv(0); PDI = ema(iff(H-H[1]>0 && H-H[1]>L[1]-L,H-H[1],0),Period)/ ema(max(max(H-L,abs(C[1]-H)),abs(C[1]-L)),Period)*100; MDI = ema(iff(L[1]-L>0 && H-H[1]<L[1]-L,L[1]-L,0),Period)/ ema(max(max(H-L,abs(C[1]-H)),abs(C[1]-L)),Period)*100; ADXV = ema(abs(PDI-MDI)/(PDI+MDI),period)*100; plot1(ADXv); plot2(PDI); plot3(MDI); ==============자바스크립트=================== var DMplus, DMminus, TR, ATR, DMplus_avg, DMminus_avg, PDI, MDI, DX, ADX, PeriodADX, PeriodDI; // ADX(Average Directional Movement Index) var TR1 = []; var TR2 = []; var TR3 = []; var TR = []; var DMplus = []; var DMminus = []; var PeriodADX = 11; var PeriodDI = 28; var DMplusCnt = 0; var DMminusCnt = 0; for (var i = PeriodADX; i >= 0; i--) { TR1[i] = MKT.High(i+1) - MKT.Low(i+1); TR2[i] = Math.abs(MKT.Close(i+2) - MKT.High(i+1)); TR3[i] = Math.abs(MKT.Close(i+2) - MKT.Low(i+1)); TR[i] = Math.max(TR1[i], TR2[i], TR3[i]); if(((MKT.High(i+1) > MKT.High(i+2)) && (MKT.High(i+1) - MKT.High(i+2)) > (MKT.Low(i+2) - MKT.Low(i+1)))) { DMplus[i] = (MKT.High(i+1) - MKT.High(i+2)); } else DMplus[i] = 0; if(((MKT.Low(i+2) > MKT.Low(i+1)) && (MKT.High(i+1) - MKT.High(i+2)) < (MKT.Low(i+2) - MKT.Low(i+1)))) { DMminus[i] = (MKT.Low(i+2) - MKT.Low(i+1)); } else DMminus[i] = 0; } var ATR = 0; for (var i = 0; i < TR.length; i++) ATR += TR[i]; ATR = ATR/(TR.length); var DMplus_avg = 0; for (var i = 0; i < DMplus.length; i++) DMplus_avg += DMplus[i]; DMplus_avg = DMplus_avg/(DMplus.length); var DMminus_avg = 0; for (var i = 0; i < DMminus.length; i++) DMminus_avg += DMminus[i]; DMminus_avg = DMminus_avg/(DMminus.length); PDI = DMplus_avg / ATR * 100; MDI = DMminus_avg / ATR * 100; DX = Math.abs(PDI-MDI) / (PDI+MDI); ADX = DX / (PeriodADX+1) * 100;
프로필 이미지
아름다운사람들
2024-01-05
1025
글번호 175485
지표
답변완료

수식 부탁드립니다.

1. 기준봉: 1봉전기준으로 최근 5봉중 음봉이 4개이상 발생되면서 연속3회음봉발생되어야 하며, 1봉전은 음봉이고 0봉전은 양봉인 경우의 이 양봉을 기준봉이라고 설정함 2. 이 기준봉이 발생된후에 계속적으로 양봉이 나오던 바로 음봉이 나오던간에 음봉이 출현하다가 양봉("음양패턴")이 처음 출현시의 매수신호수식. 단 기준봉의 양봉시가보다 음양패턴의 양봉시가가 낮아야 한다. 3. 음양패턴이 나왔지만 이때의 양봉시가가 기준봉 양봉의 시가보다 높은 경우에는 무시되다가 낮은 음양패턴이 나올때에 매수신호수식이 적용된다. *부연설명-기준봉 발생후 첫 음양패턴의 양봉시가는 기준봉 양봉의 시가보다 낮아야 하고 첫 음양패턴이 만족조건이 안되면 두번째의 음양패턴의 양봉시가는 기준봉 양봉시가보다 낮거나 첫음양패턴의 양봉시가보다 낮으면 된다. 세번째이후 음양패턴도 동일적용함 4. 2와 3의 내용으로 신호수식이 발생 또는 없다가 1번조건의 기준봉이 다시 발생되면 이에따라 다시 2와3의 조건이 적용되어야 한다. 여기서 새롭게 발생된 1번조건의 기준봉 양봉이 2와 3의 조건을 만족한다면 매수신호가 주어져야 하면서 동시에 새로 시작하는 기준봉이 되어야 한다는 의미임
프로필 이미지
해피오
2024-01-05
989
글번호 175475
검색
답변완료

array

안녕하세요? 알려주신 수식을 아래처럼 평균값을 출력하면 '0' 입니다 PLOT1(mav, "O",Blue); PLOT2(mav*1000, "O",red); PLOT3(mav*10000, "O",Black); 고맙습니다~ > 예스스탁 님이 쓴 글입니다. > 제목 : Re : array > 안녕하세요 예스스탁입니다. input : N(20); input : StartTime(100000),EndTime(120000); var : cnt(0),Op(0),HH(0),LL(0),Tcond(False); var : sum(0),mav(0),SumSqrt(0),stdv(0); Array : HLR[50](-1); if (sdate != sdate[1] and stime >= EndTime) or (sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then { Tcond = False; } if (sdate != sdate[1] and stime >= StartTime) or (sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then { Tcond = true; Op = O; HH = H; LL = L; For cnt = 49 DownTo 1 { HLR[cnt] = HLR[cnt-1]; } } if Tcond == true Then { if HH > 0 and H > HH Then HH = H; if LL > 0 and L < LL Then LL = L; HLR[0] = (HH-LL)/Op; } if HLR[N] >= 0 Then { #평균 sum = 0; for cnt = 1 to N { sum = sum + HLR[cnt]; } mav = sum/N; #표준편차 SumSqrt = 0; For cnt = 1 To N { SumSqrt = SumSqrt + (HLR[cnt] - mav)^2; } Stdv = SquareRoot(SumSqrt / N); } 즐거운 하루되세요 > 코퍼 님이 쓴 글입니다. > 제목 : array > 안녕하세요? 혼자 응용하려니 어렵습니다 1. 5분봉 차트에서 매일 10시~12 중 발생하는 값 Op : 10시 시가 H : 최고가 L : 최저가 HLR : (H - L)/Op 2. 오늘을 제외한 어제부터 과거로 20일간 어레이에 HLR을 저장하고 어레이를 이용해서 평균과 표준편차를 구하고 싶습니다. 새해 복 많이 받으시고 고맙습니다!
프로필 이미지
코퍼
2024-01-05
855
글번호 175473
지표

목마와숙녀 님에 의해서 삭제되었습니다.

프로필 이미지
목마와숙녀
2024-01-05
2
글번호 175464
시스템
답변완료

시스템식 부탁드립니다.

항상 도움 주셔서 감사합니다. 종목 : 해외선물 요청사항 : 아래식은 매수인 경우 가격이 하락 할때마다 추가 매수가 들어가는 로직입니다. 추가 매수가 들어갈 때마다 해당 매수가격을 수평라인으로 표시하고 싶습니다. 청산되면 매수 라인을 지우고 싶습니다. 시스템식 수정 부탁드립니다. input : Pst(1); // 매수,매도 input : gap(10), pt(20), multi(0.7); var : vol(0),v1(0),T(0); value1 = gap/PointValue; //최초 진입간격 value2 = pt/PointValue; if pst == 1 Then { if MarketPosition == 0 and TotalTrades == TotalTrades[1] Then { vol = 1; Buy("b",OnClose,Def,vol); } if MarketPosition == 1 Then { if CurrentContracts > CurrentContracts[1] Then { v1 = CurrentContracts-CurrentContracts[1]; if MaxEntries == 1 Then T = value1; Else T = T+Round(T*0.5,0); MessageLog("%.2f",T); } vol = Round(v1+v1*multi,0); Buy("bb",AtLimit,EntryPrice(0)-PriceScale*T,vol); ExitLong("bp",AtLimit,AvgEntryPrice+PriceScale*Value2); } } 감사합니다.
프로필 이미지
양치기
2024-01-05
941
글번호 175462
시스템
답변완료

수식부탁드려요

var : dm(0); if sDate != sDate[1] Then { dM = 0; } dm = dm+m/v; 분봉상에서 전 봉의 dm 값을 알고싶어요. 한봉전의 dm 값구하는 수식 부탁드려요
프로필 이미지
아무다
2024-01-05
835
글번호 175460
종목검색
답변완료

거래량을 표시

거래량 6개중 젤 많은 거래량을 표시하는 수식을 알고 싶어요
프로필 이미지
마천
2024-01-05
700
글번호 175459
지표
답변완료

지표수식 부탁 드려봅니다

중최고가=최고값(고가,20); 중최저가=최저값(저가,20); 경계=(중최고가+중최저가)/2-(중최고가-중최저가)*배분1; 경계1=crossup(종가, 경계)&& 종가>시가*배분2; 경계2=crossdown(c, 경계); 기준봉=valuewhen(1, 경계1 or 경계2, 시가); 기준봉1=crossup(종가, 기준봉); 기준봉2=crossdown(종가, 기준봉); 결과기준=valuewhen(1, 기준봉1 or 기준봉2, 시가); 결과기준1=crossup(종가, 결과기준); 결과기준2=crossdown(종가, 결과기준); valuewhen(1, 결과기준1 or 결과기준2, 시가) 조건 배분1 0.236 배분2 1.02
프로필 이미지
비리번
2024-01-05
706
글번호 175458
지표
답변완료

지표좀 부탁 드립니다(강조)

* 새해 복많이 받으십시요. * 매본 도움에 감사 합니다. * 요청 사항 : 강조 수식을 이용하여 20일 이평선 기준으로 봉(C[1])이 고가~저가 사이가 20일 이평선 에 걸려 있으면 블루 봉(C[1])이 고가~저가 사이가 20일 이평선 보다 크면 빨강 봉(C[1])이 고가~저가 사이가 20일 이평선 보다 작으면 그린 부탁 좀 드립니다.
프로필 이미지
요타
2024-01-05
732
글번호 175457
강조