커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

문의드립니다

렌코차트식 검색하다 발견한 지표식인데요 주봉에 적용하니까 이상하게 나옵니다 (오류) 그리고 upperline, lowline 등은 아예 표시도 안되네요 수정 좀 부탁합니다 감사합니다 input:renkoSize(0.5),length(10),NumATRs(1.5); var:j(0),k(0),renkoCnt(0),gubun(0),Sum(0),trSum(0),atrV(0),time1(0),filename("renko3.txt"),printOK(False); array:OO[50](0),HH[50](0),LL[50](0),CC[50](0), TR[50](0), //True Range upperLine[50](0), //상단채널 lowerLine[50](0), //하단채널 maV[50](0); //이평선 if stime >= 180000 or stime < 090000 then{ If index == 0 or (stime == 180000) or (stime > 180000 and stime[1] < 180000) Then { //break on session에 해당, 즉 일자가 바뀌면 새로 계산 gubun = 0; //방향을 초기화한다. 이후 형성되는 가격에 의해 방향이 계산 For j = 49 DownTo 1 { //금일 시가봉을 신규 추가 OO[j] = OO[j-1]; HH[j] = HH[j-1]; LL[j] = LL[j-1]; CC[j] = CC[j-1]; TR[j] = TR[j-1]; maV[j] = maV[j-1]; upperLine[j] = upperLine[j-1]; lowerLine[j] = lowerLine[j-1]; } OO[0] = C; //분봉의 종가를 기반으로 계산하기 때문에 당일 시초가 아니다 HH[0] = C; LL[0] = C; CC[0] = C; } Else { If gubun == 0 and CC[0] > 0 Then { //일 첫봉이 완성되지 않은 시점 If OO[0] - renkoSize >= C Then { gubun = -1; //하락 방향 CC[0] = OO[0] - renkoSize; //음봉 HH[0] = OO[0]; LL[0] = CC[0]; TR[0] = max(CC[1],HH[0]) - min(CC[1],LL[0]); //true range 계산식 참조 //macd 계산 당시와 마찬가지로 sum 값이 있을 때만 처리 If sum > 0 Then { sum = sum + CC[0] - CC[length]; //이평선 계산 원리 그대로, 현재가를 더하고 n봉전 가격 뺌 trSum = trSum + TR[0] - TR[length]; //true range의 합을 계산 maV[0] = Sum / length; //n개의 종가 합을 n으로 나누어 이동평균 계산 atrV = trSum / length; //ATR 계산식 참조 upperLine[0] = maV[0] + atrV * NumATRs; //상단 밴드 계산 lowerLine[0] = maV[0] - atrV * NumATRs; //하단 밴드 계산 } j = 0; if printOK then print(filename,"1=>,%.0f,%.0f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f",j,gubun,OO[j],HH[j],LL[j],CC[j]); } Else If OO[0] + renkoSize <= C Then { gubun = 1; //상승 방향 CC[0] = OO[0] + renkoSize; //양봉 HH[0] = CC[0]; LL[0] = OO[0]; TR[0] = max(CC[1],HH[0]) - min(CC[1],LL[0]); If sum > 0 Then { //계속 반복되는 공통 루틴이므로 if문 바깥으로 뺄까도 했으나 sum = sum + CC[0] - CC[length]; //더 복잡해지므로 copy & paste로 처리 trSum = trSum + TR[0] - TR[length]; maV[0] = Sum / length; atrV = trSum / length; upperLine[0] = maV[0] + atrV * NumATRs; lowerLine[0] = maV[0] - atrV * NumATRs; } j = 0; if printOK then print(filename,"2=>,%.0f,%.0f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f",j,gubun,OO[j],HH[j],LL[j],CC[j]); } } If LL[0] - renkoSize >= C Then { gubun = -1; renkoCnt = Int(Round((LL[0]-C)/renkoSize,9)); if renkoCnt > 49 then renkoCnt = 49; For j = 49 DownTo renkoCnt { OO[j] = OO[j-renkoCnt]; HH[j] = HH[j-renkoCnt]; LL[j] = LL[j-renkoCnt]; CC[j] = CC[j-renkoCnt]; TR[j] = TR[j-renkoCnt]; maV[j] = maV[j-renkoCnt]; upperLine[j] = upperLine[j-renkoCnt]; lowerLine[j] = lowerLine[j-renkoCnt]; } For j = renkoCnt-1 DownTo 0 { OO[j] = LL[j+1]; CC[j] = LL[j+1] - renkoSize; HH[j] = OO[j]; LL[j] = CC[j]; TR[j] = max(CC[j+1],HH[j]) - min(CC[j+1],LL[j]); If sum > 0 Then { sum = sum + CC[j] - CC[j+length]; trSum = trSum + TR[j] - TR[j+length]; maV[j] = Sum / length; atrV = trSum / length; upperLine[j] = maV[j] + atrV * NumATRs; lowerLine[j] = maV[j] - atrV * NumATRs; } if printOK then print(filename,"3=>,%.0f,%.0f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f",j,gubun,OO[j],HH[j],LL[j],CC[j]); } } Else If HH[0] + renkoSize <= C Then { gubun = 1; renkoCnt = Int(Round((C-HH[0])/renkoSize,9)); if renkoCnt > 49 then renkoCnt = 49; For j = 49 DownTo renkoCnt { OO[j] = OO[j-renkoCnt]; HH[j] = HH[j-renkoCnt]; LL[j] = LL[j-renkoCnt]; CC[j] = CC[j-renkoCnt]; TR[j] = TR[j-renkoCnt]; maV[j] = maV[j-renkoCnt]; upperLine[j] = upperLine[j-renkoCnt]; lowerLine[j] = lowerLine[j-renkoCnt]; } For j = renkoCnt-1 DownTo 0 { OO[j] = HH[j+1]; CC[j] = HH[j+1] + renkoSize; HH[j] = CC[j]; LL[j] = OO[j]; TR[j] = max(CC[j+1],HH[j]) - min(CC[j+1],LL[j]); If sum > 0 Then { sum = sum + CC[j] - CC[j+length]; trSum = trSum + TR[j] - TR[j+length]; maV[j] = Sum / length; atrV = trSum / length; upperLine[j] = maV[j] + atrV * NumATRs; lowerLine[j] = maV[j] - atrV * NumATRs; } if printOK then print(filename,"4=>,%.0f,%.0f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f",j,gubun,OO[j],HH[j],LL[j],CC[j]); } } Else If sTime >= 45500 and stime < 090000 Then { //당일 종가봉에서 For j = 49 DownTo 1 { OO[j] = OO[j-1]; HH[j] = HH[j-1]; LL[j] = LL[j-1]; CC[j] = CC[j-1]; TR[j] = TR[j-1]; maV[j] = maV[j-1]; upperLine[j] = upperLine[j-1]; lowerLine[j] = lowerLine[j-1]; } If LL[1] > C Then { //종가가 이전 봉보다 아래 형성 OO[0] = LL[1]; CC[0] = C; HH[0] = OO[0]; LL[0] = CC[0]; TR[0] = max(CC[1],HH[0]) - min(CC[1],LL[0]); } Else If HH[1] < C Then { //종가가 이전 봉보다 위에 형성 OO[0] = HH[1]; CC[0] = C; HH[0] = CC[0]; LL[0] = OO[0]; TR[0] = max(CC[1],HH[0]) - min(CC[1],LL[0]); } Else { //종가가 이전 봉의 중간에 형성 OO[0] = C; CC[0] = C; HH[0] = C; LL[0] = C; TR[0] = max(CC[1],HH[0]) - min(CC[1],LL[0]); } If sum > 0 Then { sum = sum + CC[0] - CC[length]; trSum = trSum + TR[0] - TR[length]; maV[0] = Sum / length; atrV = trSum / length; upperLine[0] = maV[0] + atrV * NumATRs; lowerLine[0] = maV[0] - atrV * NumATRs; } j = 0; //채널 값을 새로이 계산 if printOK then print(filename,"5=>,%.0f,%.0f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f",j,gubun,OO[j],HH[j],LL[j],CC[j]); } } if sum == 0 and CC[length] > 0 then { for j = 0 to length - 1 { sum = sum + CC[j]; trsum = trsum + max(CC[j+1],HH[j]) - min(CC[j+1],LL[j]); } } } If OO[0] > 0 Then Plot1(OO[0],"OO",iff(OO[0] > CC[0],black,MAGENTA)); //지표속성 -> 차트표시 -> 채우기 -> OO < CC 면 빨강 추가 If CC[0] > 0 Then Plot2(CC[0],"CC"); // OO > CC 면 파랑 추가 if upperLine[0] > 100 then plot3(upperLine[0],"UpperBand"); if lowerLine[0] > 100 then plot4(lowerLine[0],"LowerBand"); if maV[0] > 100 then plot5(maV[0],"MidLine");
프로필 이미지
러블리
2024-01-21
1092
글번호 175936
지표
답변완료

안녕하세요 수식문의 부탁드립니다^^

안녕하세요 언제나 친절한 답변에 감사드립니다.^^ 현재 아래 수식에서 20일 이평선 상승중인 수식과 (예를들면 이전이평선값보다 현재이평선값이 높을때) 1이평,20일,240일 세가지이평선의 이격률을 설정하고 싶은데요 (예를들면 1이평과 20이평과 이격도 20이평과 240이평이 이격도 이런식으로요) 그리고 기간내 100억원이상 거래대금이 터진캔들이 출현했을때 입니다 (예를들면 30일 이내에 거래대금이 100억원이 캔들이 발생했을경우 검색) 잘부탁드리겠습니다^^ input : 단기(20),중기(60),장기(120),Period(20); var : p(0),k(0),q(0),x(0),y(0),z(0),mav(0); p = (highest(high,단기)+lowest(low,단기))/2; k = (highest(high,중기)+lowest(low,중기))/2; q = (p+k)/2; x = (highest(high,장기)+lowest(low,장기))/2; y = (highest(high,장기)+lowest(low,장기))/2; z = (x+y)/2; var1 = (q-z)/q*100; mav = ma(c,Period); if var1 >= 0 and C >= mav Then find(1);
프로필 이미지
고래상어의꿈
2024-01-22
1003
글번호 175935
종목검색
답변완료

문의드립니다

1. input : obLevel(70); input : osLevel(30); input : length(14); var : src(0),ep(0),auc(0),adc(0),x1(0),ub(0),x2(0),lb(0); src=close; ep = 2 * length - 1; auc = ema( max( src - src[1], 0 ), ep ); adc = ema( max( src[1] - src, 0 ), ep ); x1 = (length - 1) * ( adc * obLevel / (100-obLevel) - auc); ub = iff( x1 >= 0, src + x1, src + x1 * (100-obLevel)/obLevel ); x2 = (length - 1) * ( adc * osLevel / (100-osLevel) - auc); lb = iff( x2 >= 0, src + x2, src + x2 * (100-osLevel)/osLevel ); plot1(ub, "Resistance", red); plot2(lb, "Support", green); plot3(avg(ub, lb), "RSI Midline",gray); 2. Input : Period(9),sig(10); var : Relative(0),signal(0); Relative = RSI(Period); signal = ma(Relative,sig); Plot1(Relative, "RSI"); Plot2(signal, "시그널"); PlotBaseLine1(30, "기준선 30"); PlotBaseLine2(70, "기준선 70"); ...................................................................................................... 1. 첫번째 시스템식을 구하고자 합니다 상기 1번식에서 plot2의 그린색이 캔들과 만나고 (and로 연결) 2번식에서 rsi가 시그널선을 하향 돌파 했을때 두조건이 모두 충족 되었을때 매도 신호를 둘중 하나라도 이탈 되면 청산신호를 반대로 상기 1번식에서 plot1 레드선이 캔들과 만나고 2번식에서 rsi가 시그널선을 상향 돌파했을때 두조건이 모두 충족되었을때 매수 신호를 둘중 하나라도 이탈되면 청산신호를 해주세요 2. 두번째 이렇게 만들어진 시스템식을 바탕화면에 색깔로 입히고 싶습니다 (이건 지표로 구현해 주세요) 즉 매수신호때는 빨간색 바탕화면으로,매도신호때는 파란색 바탕화면으로 ...................................................................................................................................... 3. 주챠트 2분봉의 캔들이 2분봉 볼밴하단에 부딪힐때, 데이타2 10분봉 역시 10분봉의 볼밴 하단 수치에 부딪힌다면 그때 주챠트 2분봉 캔들에 검색식으로 빨간색 점을 찍어 주세요 (예를 들어 오전 10시에 주챠트 2분봉 캔들은 주챠트 2분봉 볼밴하단에 부딪히고, 데이타2 10분봉의 캔들이 10분봉 볼밴하단에 부딪히면, 주챠트 10시봉(2분봉)에 빨간색 점을 찍어 주세요) 만약 반대로 주챠트 2분봉의 캔들이 볼밴 상단에 부딪힐때 같은 시각 데이타2 10분봉도 10분봉의 볼밴 상단 수치에 부딪힌다면 그때 그 캔들에 검색식으로 파란색 점을 찍어 주세요 4. input : P1(7),P2(14),P3(21); var : R1(0),R2(0),R3(0),TX(0); R1 = RSI(P1); R2 = RSI(P2); R3 = RSI(P3); Plot1(R1, "RSI1"); Plot2(R2, "RSI2"); Plot3(R3, "RSI3"); PlotBaseLine1(30, "기준선 30"); PlotBaseLine2(50, "기준선 50"); PlotBaseLine3(70, "기준선 70"); PlotBaseLine4(40, "기준선 40"); PlotBaseLine5(60, "기준선 60"); Condition1 = R1 > R2 and R2 > R3; Condition2 = R1 < R2 and R2 < R3; if Condition1 == true and Condition1 != Condition1[1] Then { TX = Text_New_Self(sDate,sTime,R3,"▲"); Text_SetStyle(TX,2,0); Text_SetColor(TX,Red); } if Condition2 == true and Condition2 != Condition2[1] Then { TX = Text_New_Self(sDate,sTime,R3,"▼"); Text_SetStyle(TX,2,1); Text_SetColor(TX,Blue); } 상기 4번식을 plot1 rsi1이 기준선 60을 하향돌파하면 매도 신호를 plot1 rsi1이 기준선 40을 상향돌파하면 매수 신호를 나타내는 시스템으로 구현하고 싶습니다 한번에 여러개를 질문 드려 죄송합니다 감사합니다
프로필 이미지
zmfha
2024-01-23
1302
글번호 175934
지표
답변완료

[]와 () 설명 부탁드립니다

문의) 1. 어디에서 []를 쓰고 어디에서 ()쓰는지 2. ()쓰면 오류가 나는 이유 3. ()가 적용되지 않는 함수는 4. 오류없이 ()정상사용 시 0은 정상, 1은 엉뚱한 값으로 표시되는 이유
프로필 이미지
와글이
2024-01-21
1026
글번호 175933
시스템
답변완료

수식 수정요청

아래 수식은 5분봉 단타신호용입니다. 여기에 다음 사항만 추가하여 검색코자 하니 수정부탁드립니다. -신호발생봉 앞 120봉 이내(120봉전 ~ 1봉전)에서 저가가 900봉 최저가인 경우 *** 혹시 아래 수식 및 위 요청과는 별도로 "1봉전 저가가 5분봉 900봉의 최저가"인 경우 를 검색할 수식이 가능할까요?*** ============================================================================== input : short(5),mid(20),long(60),percent(3),Multiple(1.5),midperiod(78); var : 조건(False); var1 = ma(C,short); Var2 = ma(C,mid); Var3 = ma(c,long); var4 = Highest(H[1],5); var5 = ma(V,5); var6 = (highest(high,midPeriod)+lowest(low,midPeriod))/2; var7 = ma(c,60); Var8 = BollBandUp(20,2); 조건 = max(var1,Var2,Var3) < min(var1,Var2,Var3) * (1+Percent/100) && C > Var4[1] and Var5 >= 5000 and V > V[1] * Multiple and C > var6 and C > Var7 and CrossUp(C,Var8) and O*1.025 <= H; if 조건==true Then Find(1);
프로필 이미지
ksks
2024-01-21
1110
글번호 175932
종목검색
답변완료

수식부탁드립니다.

수고하십니다. 늘 가정의 평안을 기원하며. 두가지의 수식을 부탁드립니다. <첫번째> 볼린저밴드(20,2) 매도잔량이평(1) -->당일 고가 돌파시 마다 볼린저밴드 하단선 하락 AND 매도잔량이평 상승시 표시 <두번째> 매도잔량이평(1) 호가잔량비율(1) -> 당일 고가 돌파시 마다 매도잔량이평이 상승시 호가잔량비율은 하락 OR 매도잔량이평이 하락시 호가잔량비율은 상승 표시 감사합니다.
프로필 이미지
데이남
2024-01-20
946
글번호 175931
검색
답변완료

시스템식 부탁드립니다.

항상 도움주셔서 감사합니다. 종목 : 해외선물 차트 : 60분봉 요청식) 아래 시스템에서 가격이 상승시 물타기와 같은 배수 같은 간격으로 불타기를 하고 싶습니다. 물타기 진입과 청산은 기존과 동일하고 불타기의 청산은 가격이 불타기 평균가격+20$를 아래로 하락할때 청산하고 싶습니다. 포지션 진입이후 가격이 20$ 이상 상승하지 않고 진입가격 아래로 하락하면 물타기 진행합니다. - 불타기, 물타기 첫번째 진입간격은 20$ 입니다. 그리고 포지션 평균가격 및 청산가격(예상가격)을 라인으로 표시하고 싶습니다. #------------------------------------ input : Pst(1); input : gap(20), gapmulti(0.7), multi(0.7), pt(20), sl(200); var : vol(0),v1(0),t(0); var : line1(0), line2(0); value1 = gap/PointValue; value2 = pt/PointValue; value3 = sl/PointValue; line1 = ma(c,10) ; line2 = ma(c,20) ; 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*gapmulti,0); } vol = Round(v1+v1*multi,0); Buy("bb",AtLimit,EntryPrice(0)-PriceScale*(value1*MaxEntries),vol); ExitLong("bp",AtLimit,AvgEntryPrice+PriceScale*Value2); } } if pst == -1 Then { if MarketPosition == 0 and TotalTrades == TotalTrades[1] Then { vol = 1; Sell("s",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*gapmulti,0); } vol = Round(v1+v1*multi,0); Sell("ss",AtLimit,EntryPrice(0)+PriceScale*(value1*MaxEntries),vol); ExitShort("sp",AtLimit,AvgEntryPrice-PriceScale*Value2); } } 감사합니다.
프로필 이미지
양치기
2024-01-22
836
글번호 175930
시스템
답변완료

부탁 드립니다

도움에 감사 드립니다... 아래와 같은 방법으로 그림과 같은 위치에 표시 되도록 부탁 드립니다. var : tx(0); Text_Delete(tx); tx = text_new(NextBarSdate,NextBarStime,c,NumToStr((DayHigh-DayLow)/PriceScale,0)+"틱"); Text_SetStyle(tx,0,1);
프로필 이미지
yes
2024-01-20
873
글번호 175929
지표
답변완료

문의 드립니다

안녕하세요 1. 시가+(전일고가-저일저점)*0.5 라인을 만들고자합니다. 감사합니다
프로필 이미지
만강
2024-01-20
785
글번호 175928
지표
답변완료

지표 질문입니다

9개 캔들 조합이 음+양양양양양양양+음 일 때 이후 추가 21양봉 고가를 표시한다 9개 캔들 조합이 양+음음음음음음음+양 일 때 이후 추가 21음봉 저가를 표시한다 6개 캔들 조합이 음+양양양양+음 일 때 이후 추가 7양봉 고가를 표시한다 6개 캔들 조합이 양+음음음음+양 일 때 이후 추가 7음봉 저가를 표시한다 5개 캔들 조합이 음+양양양+음 일 때 이후 연속 4양봉 출현하면 4번째 양봉 저가를 표시 5개 캔들 조합이 양+음음음+양 일 때 이후 연속 4음봉 출현하면 4번째 음봉 고가를 표시 4개 캔들 조합이 음+양양+음 일 때 이후 연속 3양봉 출현하면 3번째 양봉 저가를 표시 4개 캔들 조합이 양+음음+양 일 때 이후 연속 3음봉 출현하면 3번째 음봉 고가를 표시 감사합니다
프로필 이미지
para
2024-01-20
650
글번호 175927
지표