커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

수식 문의드립니다.

당일 1분봉으로 10억 이상 거래량이 두 번 발생한 종목을 검색하고자 합니다. 아래와 같이 검색을 하면 10억 이상 거래된 봉이 2개 이상인 종목들도 함께 검색이 되는데, 어느 부분을 수정하면 될까요? if sDate != sDate[1] Then var1 = 0; if M > 1000000000 Then var1 = var1 + 1; if var1 == 2 Then Find(var1);
프로필 이미지
huhhh
2020-10-19
637
글번호 143189
종목검색
답변완료

수정 부탁드립니다.

안녕하세요? 수정하고 싶은 부분이 있어 문의 드립니다. 아래수식의 진입은 현재, 정배열에서 음봉에 매도(진입음봉 몸통길이 틱수 변수) 역배열에서 양봉에 매수(진입양봉 몸통길이 틱수 변수) 이것을 다음과 같이 수정하고 싶습니다. 정배열에서 양봉+음봉+음봉 (진입음봉 몸통길이 틱수 변수) 이 연달아 나올시 매도. 역배열에서 음봉+양봉+양봉 (진입양봉 몸통길이 틱수 변수) 이 연달아 나올시 매수. 부탁드립니다. 감사합니다. input : P1(5),P2(20),n(3),양봉틱수(3),음봉틱수(3); var : entry(0); if Bdate != Bdate[1] Then entry = 0; var1 = ma(C,P1); var2 = ma(C,P2); if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or (MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then entry = entry+1; if entry < n Then { if MarketPosition == 0 and C == O+양봉틱수*PriceScale and var1 < Var2 then Buy(); if MarketPosition == 0 and C == O-음봉틱수*PriceScale and var1 > Var2 then Sell(); } input : 익절틱수(50),손절틱수(50); SetStopProfittarget(PriceScale*익절틱수,PointStop); SetStopLoss(PriceScale*손절틱수,PointStop);
프로필 이미지
대구어린울프
2020-10-19
575
글번호 143186
시스템
답변완료

변환 문의

안녕하세요? 항상 감사드립니다. 분봉의 시스템에서 주봉의 Aroon과 MACD 변환 부탁드립니다. 다른건 코딩할만한데 타주기값만 스스로 해보면 잘 안되네요. data2 로 검증하기가 너무 어렵습니다. ##MACD 분봉에서 주봉값 변환 부탁드립니다. Input : shortPeriod(12), longPeriod(26), Period(9); Var : value(0) , macdosc(0) ; value = MACD(shortPeriod, longPeriod); valu2 = ema(value,Period); ##AROON 아룬은 지난번에 일봉값으로 해주셨는데요. WeekLow 이런 값은 없을까요.. 주봉값 변환 부탁드립니다. input : PeriodAR(10); var : cnt(0), Lowval(0), Highval(0); var : DownVel(0),UpVel(0), DnAroon(0),UpAroon(0) ; Lowval = DayLow; Highval = DayHigh; for cnt = 0 to PeriodAR{ if DayLow(cnt) < LowVal Then LowVal = DayLow(cnt); if DayHigh(cnt) > Highval Then Highval = DayHigh(cnt); } For cnt= 0 To PeriodAR { If dayLow(cnt) == Lowval Then DownVel = cnt; If DayHigh(cnt) == highval Then UpVel = cnt; } DnAroon = 100*(PeriodAR-DownVel)/PeriodAR; UpAroon = 100*(PeriodAR-UpVel)/PeriodAR;
프로필 이미지
롬롬7
2020-10-18
705
글번호 143185
시스템
답변완료

수식작성 부탁드립니다.

안녕하세요. 운영자님. 제가 이번에 부탁드릴 내용은, 아래는 Price Channel 을 육안상으로 보기 편하게 만들어진 수식입니다. INPUT : LENGTH(17); VAR : TCHAN1(0), BCHAN1(0), TCHAN2(0), BCHAN2(0); TCHAN1 = HIGHEST(HIGH+PriceScale*10, LENGTH)[0]; TCHAN2 = HIGHEST(HIGH+PriceScale*10, LENGTH)[0]; BCHAN1 = LOWEST(LOW-PriceScale*10, LENGTH)[0]; BCHAN2 = LOWEST(LOW-PriceScale*10, LENGTH)[0]; PLOT1(TCHAN1, "TOP1"); PLOT2(TCHAN1-PriceScale*20, "TOP2"); PLOT3(BCHAN1, "BOT2"); PLOT4(BCHAN1+PriceScale*20, "BOT1"); PLOT5((TCHAN1+BCHAN1)/2, "중심선"); 위의 수식에서 매수/청산조건: PLOT1/PLOT2 이 우하향으로 내려오다가 상향반전하고, 현재 캔들이 5일선 밑 / 20일선이 상향 중일때 양봉에서 2계약 매수하고,손절은 X틱, 익절은 1계약은 Y틱, 나머지 1계약은 PLOT3/PLOT4 이 하향반전 또는 매수가격 터치 시 청산 매도/청산조건: PLOT3/PLOT4 이 우상향으로 올라가다가 하향반전하고, 현재 캔들이 5일선 밑 / 20일선이 하향 중일때 음봉에서 2계약 매도하고,손절은 X틱, 익절은 1계약은 Y틱, 나머지 1계약은 PLOT1/PLOT2 이 상향반전 또는 매도가격 터치 시 청산 감사합니다.
프로필 이미지
고박사122
2020-10-18
807
글번호 143184
시스템
답변완료

문의

1)은 buy 수식 2)는 sell 수식입니다. 서로 반대 개념이며, 진입수식에는 문제가 없습니다. sell수식으로 buy 수식의 exitlong 수식을 작성했고 buy 수식으로 sell 수식의 exitshot 수식을 작성했는데...시뮬레이션 결과에 변화가 없습니다. exit 수식 살펴주세요. ************************************************************************************** 1) buy 수식 Input : up(3000),out(4000); input : 시간1(090000),시간2(143000); var : C2(0,data2),entry(false,data2); C2 = data2(C); if data2(Bdate != Bdate[1]) Then entry = false; if data2(stime >= 시간1 and stime < 시간2) then{ if entry == false and data2(Bdate == Bdate[1] and HighD(0) > HighD(0)[1] and HighD(0)-LowD(0) >= up) Then{ entry = true; buy(""); } } if MarketPosition == 1 Then { if entry == false and data2(Bdate == Bdate[1] and Lowd(0) < LowD(0)[1] and HighD(0)-LowD(0) >= out) Then{ entry = true; ExitLong(""); } } 2) sell 수식 Input : dn(3000),out(4000); input : 시간1(090000),시간2(143000); var : C2(0,data2),entry(false,data2); C2 = data2(C); if data2(Bdate != Bdate[1]) Then entry = false; if data2(stime >= 시간1 and stime < 시간2) then{ if entry == false and data2(Bdate == Bdate[1] and Lowd(0) < LowD(0)[1] and HighD(0)-LowD(0) >= dn) Then{ entry = true; sell(""); } } if MarketPosition == -1 Then { if entry == false and data2(Bdate == Bdate[1] and HighD(0) > HighD(0)[1] and HighD(0)-LowD(0) >= out) Then{ entry = true; ExitShort(""); } }
프로필 이미지
좌오비우오비
2020-10-19
794
글번호 143183
시스템
답변완료

FixPlotShirt가 작동되지 않습니다. 어떻게 해야하나요?

SwingHigh와 SwingLow를 찾아서 그 해당봉에 대한 BarIndex를 그 해당봉위치에 표현하려고 하는데 FixPlotShift함수를 써도 위치가 변하지 않습니다. 참고로 예스랭귀지 Edit창에서 FixPlotShift가 빨간색으로 표현되지 않고 있습니다. Input : Strength(9); Variables : shb(0), slb(0); If BarIndex >= 2*Strength Then { shb = SwingHighBar(1, High, Strength, Strength, 2*Strength + 1); slb = SwingLowBar(1, Low, Strength, Strength, 2*Strength + 1); If (shb != -1 ) || (slb != -1) Then { Plot1(BarIndex-Strength); FixPlotShift(1, -9); } }
프로필 이미지
김수찬
2020-10-18
777
글번호 143182
지표

와우리 님에 의해서 삭제되었습니다.

프로필 이미지
와우리
2024-09-13
710
글번호 143181
지표
답변완료

부탁드립니다

아래 as8282님 질문 66689 (작성일 : 2020-03-26 오후 3:01:22)를 돌려보니 "선언되지 않은 이름 'IndiDivergence'가 사용되었씁니다" 라는 에러가 뜨는데 올려주신 ChgRateZigZag.yfu와 같이 Function 파일이 필요한것 같습니다 한번 확인 부탁 드립니다. 감사합니다 > as8282 님이 쓴 글입니다. > 제목 : 문의드립니다. > 아래식은 지난 선배님의 수식인데... 에러가나서 어떻게 해결할지 못해 문의드립니다. Input:Rate(3), kind(1); // 1:일반다이버전스,2:히든다이버전스,3:과장된다이버전스,4:3중다이버전스 Var:j(0),jj(0),iValue(0), 고저구분(0), // 1: 고점, 2: 저점 신규여부(0); // 1: 신규, 2: 연장 Array:HH[10,4](0),LL[10,4](0), // 1:가격, 2:Index, 3:sDate, 4:sTime IH[10,4](0),IL[10,4](0), // 지표의 고,저점을 관리 TL[10](0), BeginIndex[4](0); var : tx1(0),tx2(0); #==========================================# iValue = RSI(9); // 지표값은 아래와 같이 다양하게 변경 가능 // iValue = StochasticsK(10,5); // iValue = StochasticsD(5,3,3); // iValue = MACD(12,26); // iValue = MACD_OSC(12,26,9); // iValue = CCI(9); // iValue = LRS(C,14); // iValue = Volume; Plot1(iValue); #==========================================# // 주가 차트에 대한 파동선 고저구분 = ChgRateZigZag(Rate,0,HH,LL,신규여부); // 최소변동률지그재그 If 고저구분 == 1 Then { // 고점 If 신규여부 == 1 Then { TL[0] = TL_New(LL[1,3],LL[1,4],LL[1,1],HH[1,3],HH[1,4],HH[1,1]); } If 신규여부 == 2 Then // 고점 연장 { TL_SetEnd(TL[0],HH[1,3],HH[1,4],HH[1,1]); } } Else If 고저구분 == -1 Then { // 저점 If 신규여부 == 1 Then { TL[0] = TL_New(HH[1,3],HH[1,4],HH[1,1],LL[1,3],LL[1,4],LL[1,1]); } If 신규여부 == 2 Then // 저점 연장 { TL_SetEnd(TL[0],LL[1,3],LL[1,4],LL[1,1]); } } TL_SetSize(TL[0],1); TL_SetColor(TL[0],PINK); if 고저구분 == 1 Then { if 고저구분[1] != 1 Then { tx1 = Text_New(HH[1,3],HH[1,4],HH[1,1],NumToStr(HH[1,1],2)); Text_SetStyle(tx1,2,1); } Else { Text_SetString(tx1,NumToStr(HH[1,1],2)); Text_SetLocation(tx1,HH[1,3],HH[1,4],HH[1,1]); } } if 고저구분 == -1 Then { if 고저구분[1] != -1 Then { tx1 = Text_New(LL[1,3],LL[1,4],LL[1,1],NumToStr(LL[1,1],2)); Text_SetStyle(tx1,2,0); } Else { Text_SetString(tx1,NumToStr(LL[1,1],2)); Text_SetLocation(tx1,LL[1,3],LL[1,4],LL[1,1]); } } #==========================================# // 보조지표에 대한 파동선 Value1 = IndiDivergence(고저구분,신규여부,iValue,IH,IL); // 주가의 지그재그파동 결과를 입력 // 결과값이 1이면 정상, 0이면 오류 If Value1 == 1 Then { If 고저구분 == 1 Then { // 고점 If 신규여부 == 1 Then // 주가 파동에 신규 고점 발생 { TL[1] = TL_New_Self(IL[1,3],IL[1,4],IL[1,1],IH[1,3],IH[1,4],IH[1,1]); tx2 = Text_New_Self(IH[1,3],IH[1,4],IH[1,1],NumToStr(IH[1,1],2)); Text_SetStyle(tx2,2,1); } Else // 주가의 꼭지점이 그대로라도 지표는 변하므로 매봉마다 연장처리 { TL_SetEnd(TL[1],IH[1,3],IH[1,4],IH[1,1]); Text_SetString(tx2,NumToStr(IH[1,1],2)); Text_SetLocation(tx2,IH[1,3],IH[1,4],IH[1,1]); } } Else If 고저구분 == -1 Then { // 저점 If 신규여부 == 1 Then // 주가 파동에 신규 저점 발생 { TL[1] = TL_New_Self(IH[1,3],IH[1,4],IH[1,1],IL[1,3],IL[1,4],IL[1,1]); tx2 = Text_New_Self(IL[1,3],IL[1,4],IL[1,1],NumToStr(IL[1,1],2)); Text_SetStyle(tx2,2,0); } Else { TL_SetEnd(TL[1],IL[1,3],IL[1,4],IL[1,1]); Text_SetString(tx2,NumToStr(IL[1,1],2)); Text_SetLocation(tx2,IL[1,3],IL[1,4],IL[1,1]); } } TL_SetSize(TL[1],1); TL_SetColor(TL[1],BLUE); } #==========================================# // 다이버전스 표시 If (kind == 1 and HH[2,1] < HH[1,1] and IH[2,1] > IH[1,1]) or // 일반 약세 다이버전스 : 주가 고점 상승, 보조지표 고점 하락 (kind == 2 and HH[2,1] > HH[1,1] and IH[2,1] < IH[1,1]) or // 히든 약세 다이버전스 : 주가 고점 하락, 보조지표 고점 상승 (kind == 3 and abs(HH[2,1] - HH[1,1]) <= 2 * PriceScale and IH[2,1] > IH[1,1]) Then { // 과장된 약세 다이버전스 : 주가 고점의 차이가 2틱 이내이고 보조지표 고점 하락 Value2 = (HH[1,1]-HH[2,1])/(HH[1,2]-HH[2,2])*(Index-HH[2,2])+HH[2,1]; Value3 = (IH[1,1]-IH[2,1])/(IH[1,2]-IH[2,2])*(Index-IH[2,2])+IH[2,1]; If BeginIndex[0] == HH[2,2] Then { // 다이버전스를 나타내는 추세선의 시작점이 변함이 없으면 추세선 끝점만 연장 TL_SetEnd(TL[2],sDate,sTime,Value2); TL_SetEnd(TL[3],sDate,sTime,Value3); } Else { TL[2] = TL_New(HH[2,3],HH[2,4],HH[2,1],sDate,sTime,Value2); TL[3] = TL_New_Self(IH[2,3],IH[2,4],IH[2,1],sDate,sTime,Value3); BeginIndex[0] = HH[2,2]; // 추세선 시작점인 2번 고점의 index 값을 저장 } TL_SetSize(TL[2],3); TL_SetSize(TL[3],3); TL_SetColor(TL[2],LGREEN); TL_SetColor(TL[3],LGREEN); } If (kind == 1 and LL[2,1] > LL[1,1] and IL[2,1] < IL[1,1]) or // 일반 강세 다이버전스 : 주가 저점 하락, 보조지표 저점 상승 (kind == 2 and LL[2,1] < LL[1,1] and IL[2,1] > IL[1,1]) or // 히든 강세 다이버전스 : 주가 저점 상승, 보조지표 저점 하락 (kind == 3 and abs(LL[2,1] - LL[1,1]) <= 2 * PriceScale and IL[2,1] < IL[1,1]) Then { // 과장된 강세 다이버전스 : 주가 저점의 차이가 2틱 이내, 보조지표 저점 상승 Value4 = (LL[1,1]-LL[2,1])/(LL[1,2]-LL[2,2])*(Index-LL[2,2])+LL[2,1]; Value5 = (IL[1,1]-IL[2,1])/(IL[1,2]-IL[2,2])*(Index-IL[2,2])+IL[2,1]; If BeginIndex[1] == LL[2,2] Then { TL_SetEnd(TL[4],sDate,sTime,Value4); TL_SetEnd(TL[5],sDate,sTime,Value5); } Else { TL[4] = TL_New(LL[2,3],LL[2,4],LL[2,1],sDate,sTime,Value4); TL[5] = TL_New_Self(IL[2,3],IL[2,4],IL[2,1],sDate,sTime,Value5); BeginIndex[1] = LL[2,2]; } TL_SetSize(TL[4],3); TL_SetSize(TL[5],3); TL_SetColor(TL[4],MAGENTA); TL_SetColor(TL[5],MAGENTA); } If kind == 4 and HH[3,1] < HH[1,1] and // 주가 고점 상승 (HH[1,1]-HH[3,1])/(HH[1,2]-HH[3,2])*(HH[2,2]-HH[3,2])+HH[3,1] > HH[2,1] and // 2번 고점은 1번과 3번 고점을 잇는 선보다 밑에 위치 IH[3,1] > IH[1,1] and // 보조지표 고점 하락 (IH[1,1]-IH[3,1])/(IH[1,2]-IH[3,2])*(IH[2,2]-IH[3,2])+IH[3,1] > IH[2,1] Then { // 2번 고점은 1번과 3번 고점을 잇는 선보다 밑에 위치 Value2 = (HH[1,1]-HH[3,1])/(HH[1,2]-HH[3,2])*(Index-HH[3,2])+HH[3,1]; Value3 = (IH[1,1]-IH[3,1])/(IH[1,2]-IH[3,2])*(Index-IH[3,2])+IH[3,1]; If BeginIndex[0] == HH[3,2] Then { TL_SetEnd(TL[2],sDate,sTime,Value2); TL_SetEnd(TL[3],sDate,sTime,Value3); } Else { TL[2] = TL_New(HH[3,3],HH[3,4],HH[3,1],sDate,sTime,Value2); TL[3] = TL_New_Self(IH[3,3],IH[3,4],IH[3,1],sDate,sTime,Value3); BeginIndex[0] = HH[3,2]; } TL_SetSize(TL[2],3); TL_SetSize(TL[3],3); TL_SetColor(TL[2],LGREEN); TL_SetColor(TL[3],LGREEN); } If kind == 4 and LL[3,1] > LL[1,1] and // 주가 저점 하락 (LL[1,1]-LL[3,1])/(LL[1,2]-LL[3,2])*(LL[2,2]-LL[3,2])+LL[3,1] < LL[2,1] and // 2번 저점이 1번,3번 저점을 잇는 선보다 위에 위치 IL[3,1] < IL[1,1] and // 보조지표 저점 상승 (IL[1,1]-IL[3,1])/(IL[1,2]-IL[3,2])*(IL[2,2]-IL[3,2])+IL[3,1] < IL[2,1] Then { Value4 = (LL[1,1]-LL[3,1])/(LL[1,2]-LL[3,2])*(Index-LL[3,2])+LL[3,1]; Value5 = (IL[1,1]-IL[3,1])/(IL[1,2]-IL[3,2])*(Index-IL[3,2])+IL[3,1]; If BeginIndex[1] == LL[3,2] Then { TL_SetEnd(TL[4],sDate,sTime,Value4); TL_SetEnd(TL[5],sDate,sTime,Value5); } Else { TL[4] = TL_New(LL[3,3],LL[3,4],LL[3,1],sDate,sTime,Value4); TL[5] = TL_New_Self(IL[3,3],IL[3,4],IL[3,1],sDate,sTime,Value5); BeginIndex[1] = LL[3,2]; } TL_SetSize(TL[4],3); TL_SetSize(TL[5],3); TL_SetColor(TL[4],MAGENTA); TL_SetColor(TL[5],MAGENTA); }
프로필 이미지
bigman
2020-10-18
964
글번호 143180
지표
답변완료

수식 문의 드립니다.

이동평균선 5일선이 500일선 돌파시 3봉째종가에서 매수진입후 999호가 상승시 자동청산되고 5일선이 500일선 이탈시 2봉째종가에서 자동청산되도록 시스템식 좀 부탁드립니다.
프로필 이미지
알러뷰
2020-10-17
678
글번호 143179
시스템
답변완료

문의

안녕하세요 밑에수식은macd다이버전스식입니다 이식을 macd에서 Volume Power OBV지표로수정부탁합니다 감사합니다 Input : short(12), long(26), signal(9); Var : MACDV(0) , MACDS(0), T(0); var : Hi(0),Hc(0),Hi1(0),Hc1(0); MACDV = MACD(short, long); MACDS = ema(MACDV,signal); if crossup(MACDV,MACDS) Then { T = 1; Hi = macdv; Hc = c; Hi1 = hi[1]; Hc1 = hc[1]; } if CrossDown(MACDV,MACDS) Then { T = -1; if hi < hi1 and hc > hc1 and hc1 > 0 Then sell(); } if T == 1 Then { if macdv > hi Then { hi = macdv; hc = c; } }
프로필 이미지
질갱이
2020-10-19
677
글번호 143178
시스템