커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

문의

스톡캐스틱 이중바닥 더블딥에서 매수하고싶어요
프로필 이미지
엉덩공주
2025-03-05
338
글번호 188786
시스템
답변완료

수식 수정 의뢰 드립니다.

매매에 도움을 받고자 문의 드립니다. 아래는 ATR 관련 수식입니다. 혹시 시스템식이나 지표식으로 예스로 변환이 가능할까요? _SECTION_BEGIN("Price"); SetChartOptions(0,chartShowArrows|chartShowDates); _N(Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) {{VALUES}}", O, H, L, C, S electedValue( ROC( C, 1 ) ) )); SD = StochD(8, 3, 3); MH = MACD(8, 21) - Signal(8, 21, 5); trendup = IIf(MH > 0 OR (MH > 0 AND MH > Ref(MH, -1)) AND RSI(3) >50 AND SD < 80 AND SD > Ref(SD, -1) AND ValueWhen(C,O<C), colorBlue, colorWhite); trendcolor = IIf(MH < 0 OR (MH < 0 AND MH < Ref(MH, -1)) AND RSI(3) <50 AND SD > 20 AND SD < Ref(SD, -1) AND ValueWhen(C,O>C), colorRed, trendup); Plot( C, "Close", trendcolor, styleCandle | styleThick ); _SECTION_END(); no=Param( "Swing", 5, 1, 55 ); res=HHV(H,no); sup=LLV(L,no); tsl=IIf(ValueWhen(IIf(C>Ref(res,-1),1,IIf(C<Ref(sup,-1),-1,0))!=0,IIf(C>Ref(res,-1),1,IIf(C<Ref(sup,-1),-1,0)),1)==1,sup,res); Plot(tsl, _DEFAULT_NAME(), colorBlue, styleStaircase); Buy = Cross(C,res) ; Sell = Cross(sup,C) ; _SECTION_END(); a=C; g=(EMA(Close,3) * (2 / 4 - 1)-EMA(Close,5) * (2 / 6 - 1)) / (2 /4- 2 /6); e=Ref(tsl,-1); Buy = Cross(C,tsl) ; Sell = Cross(tsl,C) ; SellPrice=ValueWhen(Sell,e,1); BuyPrice=ValueWhen(Buy,e,1); Long=Flip(Buy,Sell); Shrt=Flip(Sell,Buy ); Filter=Buy OR Sell; Buy = Cross(C,tsl) ; Sell = Cross(tsl,C) ; shape = Buy * shapeUpArrow + Sell * shapeDownArrow; PlotShapes( shape, IIf( Buy, colorGreen, colorRed ),0, IIf( Buy, Low, High ) ); a1=Ref(tsl,-1); dist = 0.8*ATR(1); //0.8 dist1 = 1.8*ATR(1); //1.2 for( i = 0; i < BarCount; i++ ) { if( Buy[i] ) { PlotText( "Buy:" + L[ i ] + "₩nTgt: " + (a1[i]*1.005) + "₩nSL: " + (tsl[i]*0.9975), i, L[ i ]-dist[i], colorLime); } if( Sell[i] ) { PlotText( "Sell:" + H[ i ] + "₩nT: " + (a1[i]*0.995) + "₩nSL: " + (tsl[i]*1.0025), i, H[ i ]+dist1[i], colorBlack); } }
프로필 이미지
qha71
2025-03-05
787
글번호 188785
시스템
답변완료

종목검색식 추가 부탁합니다.

우선 많은 수고에 감사드립니다. 다음과 같은 수식이 있습니다. 아래수식에서 키움 지표수식 MACD(12,26)-eavg(MACD(12,26),9) Oscillator가 전봉에서 기준선0보다 높을경 매수조건을 덧붙여 주시면 고맙겠습니다. A=RSI(14); RSI저점=ValueWhen(1,CrossUp(A,30),O); input : 배분1(0.236),배분2(1.02),DN(1.05); var : 중최고가(0),중최저가(0),경계(0),경계1(False),경계2(False); var : 기준봉(0),기준봉1(False),기준봉2(False),결과기준(0),결과기준1(false),결과기준2(false); var : value(0); 중최고가=Highest(H,20); 중최저가=Lowest(L,20); 경계=(중최고가+중최저가)/2-(중최고가-중최저가)*배분1; 경계1=CROSSUP(C,경계)&&C>O*배분2; 경계2=CROSSDOWN(C,경계); if 경계1 OR 경계2 Then 기준봉 = O; 기준봉1=CROSSUP(c,기준봉); 기준봉2=CROSSDOWN(c,기준봉); if 기준봉1 OR 기준봉2 Then 결과기준 = O; 결과기준1=CROSSUP(c,결과기준); 결과기준2=CROSSDOWN(c,결과기준); if 결과기준1 OR 결과기준2 Then value = O; if value < value[1] and value >= value[1]*0.85 and C <= O*1.01 Then Find(1);
프로필 이미지
고릴라
2025-03-04
405
글번호 188784
종목검색
답변완료

수식문의드립니다.

input : N(120); var : hh(0),hhindex(0),hc(0),ho(0),hv(0),hl(0); #Highest if Index >= N-1 Then { hh = h; ll = l; For cnt = 0 to N-1 { if h[cnt] > hh Then { hh = h[cnt]; hhindex=Index[cnt]; hc=c[cnt]; ho=o[cnt]; hv=v[cnt]; } } } 기간내 highest를 구하는 수식입니다. 이수식을 변경하여 highest가 발생한 이후(hhindex)부터 현재봉까지 lowest봉에 대해 아래의 정보를 추가적으로 얻고자 합니다. Lindex=Index[cnt]; Lc=c[cnt]; Lo=o[cnt]; Lv=v[cnt]; 항상 감사드립니다. ^^
프로필 이미지
hyon707
2025-03-04
365
글번호 188783
지표
답변완료

문의드립니다

금년이 아닌 전년도의 피보나치를 구할수 있을까요? 고가 0.236 0.382 0.5 0.618 0.764 저가 감사합니다
프로필 이미지
러블리
2025-03-04
330
글번호 188782
지표
답변완료

Valuewhen(2, 조건, 표시가격) 을 예스로 변환

키움의 Valuewhen(2, 조건, 표시가격) 을 예스로 변환할때 그동안 if 조건 Then var1 = 표시가격; 으로 작성해 왔는데.. 위 처럼 뒤로 2번째로 조건에 맞는 표시 가격의 값을 표시할때는 어떻게 해야 하는지요? 답변 미리 감사 드립니다
프로필 이미지
시나브로
2025-03-04
312
글번호 188781
종목검색
답변완료

시스템식 요청드립니다.

방금 밑에 수식 요청드렸었는데 수정하셧던 식을 적용하였더니 그림 1과 같이 나오게 되었습니다. 그래서 일부 수정하여 그림 2와 같이 나오게 되었는데 궁금한점은 1~6차 까지 매수하면서 4~6차의 경우 매수매도가 반복 되면서 평단이 밑으로 많이 내려갔을것 같은데 정확히 평단이 얼마인지는 알수 없나요?? 그리고 아래의 시스템식으로 적용 하면 내려간 평단에서 3% 가 되었을때 익절이 되는게 맞는건지 궁금합니다. ----------------------------------------------------------- 안녕하세요 예스스탁입니다. bx청산은 평단가가 기준입니다. 일부수량이 청산되면 평단가도 변하게 됩니다. bx를 3차진입까지의 평단가로 수정해 드립니다. input : N(14),금액(2000000); input : 시작날짜 (20250109); Input : 기준선기간(120); Var : 기준선(0); var : cntt(0),H1(0),L1(0); var : cnt(0),sum(0),mav(0),DD(0); var : AP(0),TT(0),entry(False); var : LL(0),RR(0),rate(0); var : 저항(0), B1(0) ; Var : day(0),EntryDay(0),ddd(0),ED(0); var : sum1(0),sum2(0),sum3(0),avg4(0); #------------------------------------- if sDate >= 시작날짜 Then { if Bdate != Bdate[1] Then { entry = true; day = day+1; dd = dd+1; } } if TotalTrades > TotalTrades[1] Then entry = False; #------------------------------------- #------------------------------------- sum = 0; For cnt = 0 to N-1 { sum = sum + DayClose(cnt); } mav = (sum/N); #------------------------------------- #--------------------------------------- if (MarketPosition == 0) and (entry == true) and L > mav Then Buy("1차매수",AtLimit,mav,Floor(금액/min(NextBarOpen,mav))); if MarketPosition == 1 and (LatestEntryName(0) == "1차매수") and L > LatestEntryPrice(0)*0.95 Then Buy("2차매수",AtLimit,LatestEntryPrice(0)*0.95,Floor(금액*1.15/min(NextBarOpen,mav))); if MarketPosition == 1 and (LatestEntryName(0) == "2차매수") and L > LatestEntryPrice(0)*0.95 Then Buy("3차매수",AtLimit,LatestEntryPrice(0)*0.95,Floor(금액*1.2/min(NextBarOpen,mav))); if MarketPosition == 1 and (LatestEntryName(0) == "3차매수") and L > LatestEntryPrice(0)*0.95 Then Buy("4차매수",AtLimit,LatestEntryPrice(0)*0.95,Floor(금액*1.25/min(NextBarOpen,mav))); if MarketPosition == 1 and (LatestEntryName(0) == "4차매수") and L > LatestEntryPrice(0)*0.95 Then Buy("5차매수",AtLimit,LatestEntryPrice(0)*0.95,Floor(금액*1.3/min(NextBarOpen,mav))); if MarketPosition == 1 and (LatestEntryName(0) == "5차매수") and L > LatestEntryPrice(0)*0.95 Then Buy("6차매수",AtLimit,LatestEntryPrice(0)*0.95,Floor(금액*1.35/min(NextBarOpen,mav))); #----------------------------------- if MarketPosition == 1 Then { #전봉대비 수량 감소(일부 청산발생을 위미) if CurrentContracts < CurrentContracts[1] Then { #청산가 저장 var1 = LatestExitPrice(0); if LatestExitName(0) == "3%익절" or LatestExitName(0) == "3-D%익절" or LatestExitName(0) == "3-E%익절" Then Condition1 = true; if LatestExitName(0) == "4%익절" or LatestExitName(0) == "4-D%익절" or LatestExitName(0) == "4-E%익절" Then Condition2 = true; if LatestExitName(0) == "5%익절" or LatestExitName(0) == "5-D%익절" or LatestExitName(0) == "5-E%익절" Then Condition3 = true; if LatestExitName(0) == "7%익절" or LatestExitName(0) == "7-D%익절" Then Condition4 = true; } #전봉대비 수량 증가(추가 진입발생을 의미) if CurrentContracts > CurrentContracts[1] AND ((LatestEntryName(0) == "1차매수") OR (LatestEntryName(0) == "2차매수") or (LatestEntryName(0) == "3차매수") ) Then { #현재수량 저장 Var3 = CurrentContracts; Var4 = AvgEntryPrice; Condition1 = False; Condition2 = False; Condition3 = False; Condition4 = False; } if CurrentContracts > CurrentContracts[1] AND ((LatestEntryName(0) == "4차매수")) Then { #현재수량 저장 Var3 = CurrentContracts; Var4 = AvgEntryPrice; Condition1 = False; Condition2 = False; Condition3 = False; Condition4 = False; } if CurrentContracts > CurrentContracts[1] AND ((LatestEntryName(0) == "6차매수") or (LatestEntryName(0) == "5차매수")) Then { #현재수량 저장 Var3 = CurrentContracts; Var4 = AvgEntryPrice; Condition1 = False; Condition2 = False; Condition3 = False; Condition4 = False; } if CurrentEntries <= 3 Then { var98 = LatestEntryPrice(0); var99 = AvgEntryPrice; } if var98 > 0 and C < Var99 then ExitLong("bx"); if Condition1 == False AND ((LatestEntryName(0) == "1차매수") OR (LatestEntryName(0) == "2차매수") or (LatestEntryName(0) == "3차매수") )Then ExitLong("3%익절",AtLimit,Var4*1.03,"",Floor(Var3*0.2),1); if Condition2 == False AND ((LatestEntryName(0) == "1차매수") OR (LatestEntryName(0) == "2차매수") or (LatestEntryName(0) == "3차매수") ) Then ExitLong("4%익절",AtLimit,Var4*1.04,"",Floor(Var3*0.3),1); if Condition3 == False AND ((LatestEntryName(0) == "1차매수") OR (LatestEntryName(0) == "2차매수") or (LatestEntryName(0) == "3차매수") ) Then ExitLong("5%익절",AtLimit,Var4*1.05,"",Floor(Var3*0.4),1); if Condition4 == False AND ((LatestEntryName(0) == "1차매수") OR (LatestEntryName(0) == "2차매수") or (LatestEntryName(0) == "3차매수") ) Then ExitLong("7%익절",AtLimit,Var4*1.07,"",Floor(Var3*0.1),1); ExitLong("10%익절",AtLimit,Var4*1.10); //4차 이상 진입 if CurrentEntries >= 4 Then { //4차 이후의 평듄 if CurrentContracts > CurrentContracts[1] Then { sum1 = sum1 + C*(CurrentContracts-CurrentContracts[1]); sum2 = sum2 + (CurrentContracts-CurrentContracts[1]); avg4 = sum1/sum2; } if CurrentEntries >= 4 Then ExitLong("4차이후익절4",AtLimit,avg4*1.04,"4차매수"); if CurrentEntries >= 5 Then ExitLong("4차이후익절5",AtLimit,avg4*1.04,"5차매수"); if CurrentEntries >= 6 Then ExitLong("4차이후익절6",AtLimit,avg4*1.04,"6차매수"); } Else { sum1 = 0; sum2 = 0; avg4 = 0; } } Else#매수진입중이 아니면 { #변수 0으로 초기화 var1 = 0; Var2 = 0; }
프로필 이미지
맴맴잉
2025-03-05
387
글번호 188780
시스템
답변완료

수식 요청합니다

항상 감사드립니다. 일봉에서 월봉의 5봉중 최고(월봉중) 거래량을 표현하고 싶습니다.
프로필 이미지
이루
2025-03-04
320
글번호 188778
지표
답변완료

종목검색식 부탁드립니다.

다음 수식을 예스 종목검색식으로 부탁드립니다. (1) 음봉=C<O; Mp=ma(C, Period); 음봉(2) && 음봉(1) && C(2)>C(1) && O(2)>O(1) && O(2)>C(1)*(1+비율/100) && CrossUp(C, Mp) && L<C)1) && C>O(2) (지표변수) Period: 20 / 비율: 5 (2) 오분선=((predayhigh()+predaylow()+predayclose())/3+predayhigh()-predaylow(); 첫봉신호= V>=수량 && C>O*상승률 && C>predayhigh() && Rsi(기간)>=기준선 && CrossUp(C, 오분선); cnt=Countsince(date!=date(1), 첫봉신호); cnt==1 && cnt(1)==0 (지표변수) 수량: 70000 / 상승률: 1.01 / 기준선: 60
프로필 이미지
비밀통로
2025-03-04
364
글번호 188777
종목검색
답변완료

예스트레이딩 수식으로 부탁드립니다.

예스 종목 검색식으로 변환 부탁드립니다. (1) A=H-L; B=Max(C, O)-L; 조건=A/B>2 && H/C(1)>(1+15/100); 기준가=Valuewhen(1, 조건, H); CrossUp(C, 기준가) (2) A=H-L; B=Max(C, O)-L; 조건=A/B>2 && H/C(1)>(1+15/100); 기준가=Valuewhen(1, 조건, H); Dv=Valuewhen(1, 조건, V); CrossUp(C, 기준가) && V>Dv (3) A=H-L; B=Max(C, O)-L; 조건=A/B>2 && H/C(1)>(1+15/100); 기준가=Valuewhen(1, 조건, H); Dv=Valuewhen(1, 조건, V); 봉갯수=BarsSince(조건): CrossUp(C, 기준가) && 봉갯수<10 (4) S=sum(V); A=H-L; B=Max(C, O)-L; 조건=A/B>2 && H/C(1)>(1+15/100); 기준가=Valuewhen(1, 조건, H); 누적Dv=S-Valuewhen(1, 조건, S(1))-V; C>기준가 && CrossUp(V, 누적Dv)
프로필 이미지
비밀통로
2025-03-04
370
글번호 188776
종목검색