커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

문의드립니다

첨부파일에 수식에서 buy , sell 다음에 문자형 내부변수("b", "s")가 하는 역할이 무엇인가요? 시스템 수식자체는 buy ,sell 만으로도 작동하지않나요? 문자형 내부변수가 수식들 내에서 어떨때 사용되는지 정확히 알고 싶습니다
프로필 이미지
kns
2023-05-08
1156
글번호 168756
시스템
답변완료

해외선물 지표수식 부탁드립니다.

안녕하세요. 선행스팬1,선행스팬2의 종가 돌파상승라인과 종가돌파하강라인을 구현하고 종가돌파된 현위치에 ▲,▼을 표시하고자 합니다.도움부탁드립니다. 키움수식을 참조바랍니다. 수식1: 선행스팬1= (highest(high,shortPeriod)+lowest(low,shortPeriod)+highest(high,midPeriod)+lowest(low,midPeriod))/4; valuewhen(1,crossup(c,선행스팬1),close) 수식2:선행스팬2=(highest(high,longPeriod)+lowest(low,longPeriod))/2; valuewhen(1,crossdown(c,선행스팬2),close);
프로필 이미지
렉스턴
2023-05-07
1392
글번호 168755
지표
답변완료

문의드립니다

if A ==12 and o <= aver Then { Buy("A",AtLimit,aver,3); A = 122; } 다음과 같은 문장에서 A ==12 조건과 o <= aver라는 조건이 충족되면 BUY 하고 a=112를 넣어라 인데 조건이 충족되었는데, BUY하지 않고 a=112를 넣는 현상이 발생하더라구요. Buy,sell,exitlong,exitshot의 체결 여부를 확인할 수 있는 리턴할 수 있는 방법이 있나요? 혹시 IF A ==12 then Buy("A",AtLimit,aver,3); 그리고나서 BUY가 체결되면 A = 122를 넣어라 라는 식으로 어떻게 바꿀 수 있을까요? 조건이 충족하여 BUY하면~ Sell 하면~ ~~해라 이런식을 만들 수 있을까요? 그리고 시스템에서 내 계좌에 체결된 종목의 평균단가를 실시간으로 불러올 수 있나요? 계속 수식에 평균을 내서 계산하려니까 에러가 생기네요 ㅠ
프로필 이미지
sline166
2023-05-07
1310
글번호 168754
시스템
답변완료

질문 드립니다.

키움 수식을 예스로 변환하면 차트에 적용이 안되는 이유가 뭘까요? 위의 1번파일은 영웅문에 표시되는데 2번파일은 예스차트입니다. 아무리 생각해도 이유를 모르겠기에 답변을 기대하며 항상 건강 하세요. ★키움수식:highest(v,n) == v 을 ※ 예스수식:if highest(v,n) == v Then Buy(); 으로 변환함 ★이수식만 적용 안되는게 아니고 몇개의 수식도 안되는 경우가 있습니다.
프로필 이미지
사냥꾼
2023-05-07
1515
글번호 168753
시스템

sline166 님에 의해서 삭제되었습니다.

프로필 이미지
sline166
2023-05-07
2
글번호 168752
시스템

sline166 님에 의해서 삭제되었습니다.

프로필 이미지
sline166
2023-05-07
6
글번호 168751
사용자 함수
답변완료

RSI교차식

안녕하세요!!! 도움 청합니다 RSI크로스 할때마다 3전캔들의 가격을 저장하여 표시하고자 합니다. 아래의 식으로는 다른곳을 표시 합니다. 수고 부탁드리 겠습니다. Input : Period(9), maPeriod(14); var : RSI_V(0), MARSI(0); RSI_V = RSI(Period); MARSI = Ma(RSI_V,maPeriod); //RSI_V > MARSI and RSI_V[1] < MARSI[1] if RSI_V > MARSI and RSI_V[1] < MARSI[1] then { Var1 = L[3]; } if RSI_V < MARSI and RSI_V[1] > MARSI[1] then { Var2 = H[3]; } PlotBaseLine1(Var1, "Lrsi"); PlotBaseLine2(Var2, "HRsi");
프로필 이미지
불스아이
2023-05-07
1391
글번호 168750
지표
답변완료

수식작성 부탁드립니다.

안녕하세요. 운영자님 아래와 같은 트레이딩뷰 수식을 예스트레이더 수식으로 변환 꼭 좀 부탁드립니다. 감사합니다. 안녕하세요. 운영자님 아래와 같은 트레이딩뷰 수식을 예스트레이더 수식으로 변환 부탁드립니다. 감사합니다. // === INPUTS === // rsi rsiSource = input(defval = open, title = "RSI Source") rsiLength = input(defval = 8, title = "RSI Length", minval = 1) // sma maLength = input(defval = 34, title = "MA Period", minval = 1) // invert trade direction tradeInvert = input(defval = false, title = "Invert Trade Direction?") // risk management useStop = input(defval = false, title = "Use Initial Stop Loss?") slPoints = input(defval = 25, title = "Initial Stop Loss Points", minval = 1) useTS = input(defval = true, title = "Use Trailing Stop?") tslPoints = input(defval = 120, title = "Trail Points", minval = 1) useTSO = input(defval = false, title = "Use Offset For Trailing Stop?") tslOffset = input(defval = 20, title = "Trail Offset Points", minval = 1) // === /INPUTS === // === BASE FUNCTIONS === // delay for direction change actions switchDelay(exp, len) => average = len >= 2 ? sum(exp, len) / len : exp[1] up = exp > average down = exp < average state = up ? true : down ? false : up[1] // === /BASE FUNCTIONS === // === SERIES and VAR === // rsi shunt = rsiSource == open ? 0 : 1 rsiUp = rma(max(change(rsiSource[shunt]), 0), rsiLength) rsiDown = rma(-min(change(rsiSource[shunt]), 0), rsiLength) rsi = (rsiDown == 0 ? 100 : rsiUp == 0 ? 0 : 100 - (100 / (1 + rsiUp / rsiDown))) - 50 // shifted 50 points to make 0 median // sma of rsi rsiMa = sma(rsi, maLength) // self explanatory.. tradeDirection = tradeInvert ? 0 <= rsiMa ? true : false : 0 >= rsiMa ? true : false // === /SERIES === // === PLOTTING === barcolor(color = tradeDirection ? green : red, title = "Bar Colours") // hlines medianLine = hline(0, title = 'Median', color = #996600, linestyle = dotted, linewidth = 1) limitUp = hline(25, title = 'Limit Up', color = silver, linestyle = dotted, linewidth = 1) limitDown = hline(-25, title = 'Limit Down', color = silver, linestyle = dotted, linewidth = 1) // rsi and ma rsiLine = plot(rsi, title = 'RSI', color = purple, linewidth = 2, style = line, transp = 50) areaLine = plot(rsiMa, title = 'Area MA', color = silver, linewidth = 1, style = area, transp = 70) // === /PLOTTING === goLong() => not tradeDirection[1] and tradeDirection killLong() => tradeDirection[1] and not tradeDirection strategy.entry(id = "Buy", long = true, when = goLong()) strategy.close(id = "Buy", when = killLong()) goShort() => tradeDirection[1] and not tradeDirection killShort() => not tradeDirection[1] and tradeDirection strategy.entry(id = "Sell", long = false, when = goShort()) strategy.close(id = "Sell", when = killShort()) if (useStop) strategy.exit("XSL", from_entry = "Buy", loss = slPoints) strategy.exit("XSS", from_entry = "Sell", loss = slPoints) // if we're using the trailing stop if (useTS and useTSO) // with offset strategy.exit("XSL", from_entry = "Buy", trail_points = tslPoints, trail_offset = tslOffset) strategy.exit("XSS", from_entry = "Sell", trail_points = tslPoints, trail_offset = tslOffset) if (useTS and not useTSO) // without offset strategy.exit("XSL", from_entry = "Buy", trail_points = tslPoints) strategy.exit("XSS", from_entry = "Sell", trail_points = tslPoints)
프로필 이미지
고박사122
2023-05-07
1463
글번호 168749
시스템
답변완료

이건 왜 매매체결이 안되는지 봐도 잘 모르겠습니다 ㅠㅠ

Input : shortPeriod(12), longPeriod(26), Period(9); Var : MACDv(0), MACDsig(0),macdosc(0); MACDv = MACD(shortPeriod, longPeriod); if ATr(14)[1]>ATr(14) and macdv < 0 Then Sell(); macd 가 -이고 atr이 전봉 atr보다 줄어들면 매도하려는데 매수일때는 일단 거래가 체결은 됐었는데 매도로 가면 거래자체가 성사되지않는데 무엇이 문제인지 모르겠습니다
프로필 이미지
초심자의행운
2023-05-07
1298
글번호 168748
시스템
답변완료

막대그래프 표현식

안녕하세요 아래 지표식을 이용해서 첨부 그림처럼 종가가 상승시 저[1,1]이 기준선(PlotBaseLine?),RED막대, 반대로 종가가 하락시 고[1,1]이 기준선,BLUE막대로 표현되는 지표식 부탁드립니다 감사합니다 Input:length(10),종가사용여부(0),파동선두께(2),수치표시(1); Var:j(0),jj(0),HH(0),LL(0),최종고가(0),최종저가(0),최종꼭지점(""),처리구분(""), TL1(0),Text1(0); Array:고[10,4](0),저[10,4](0); // 1:가격,2:Index,3:sDate,4:sTime #==========================================# HH = IFF(종가사용여부==1,C,H); LL = IFF(종가사용여부==1,C,L); If Index == 0 Then { 고[1,1] = HH; 저[1,1] = LL; } Condition1 = Highest(HH,length) == HH and 최종고가 <> HH; Condition2 = Lowest (LL,length) == LL and 최종저가 <> LL; 처리구분 = ""; If Condition1 and Condition2 Then // 기간고점과 기간저점 동시 발생 { If 최종꼭지점 == "저점" Then { If 저[1,1] > LL Then 처리구분 = "저점처리"; Else 처리구분 = "고점처리"; } Else If 최종꼭지점 == "고점" Then { If 고[1,1] < HH Then 처리구분 = "고점처리"; Else 처리구분 = "저점처리"; } } Else If Condition1 Then 처리구분 = "고점처리"; Else If Condition2 Then 처리구분 = "저점처리"; #==========================================# If 처리구분 == "고점처리" Then { 최종고가 = HH; // 신규고점을 체크하기 위해 저장 If 최종꼭지점 == "저점" Then { For j = 10 DownTo 2 { For jj = 1 To 4 { 고[j,jj] = 고[j-1,jj]; } } 고[1,1] = HH; 고[1,2] = Index; 고[1,3] = sDate; 고[1,4] = sTime; TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]); If 수치표시 == 1 Then { Text1 = Text_New(고[1,3],고[1,4],고[1,1],NumToStr(고[1,1],2)); Text_SetStyle(Text1, 2, 1); } TL_SetSize(TL1,파동선두께); TL_SetColor(TL1,RED); } Else If 고[1,1] < HH Then // 1번 고점보다 높은 고가 출현 { 고[1,1] = HH; 고[1,2] = Index; 고[1,3] = sDate; 고[1,4] = sTime; TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]); // 시작점은 변동없고 끝점의 위치가 현재 봉으로 연장된 것임 If 수치표시 == 1 Then { Text_SetLocation(Text1,고[1,3],고[1,4],고[1,1]); Text_SetString(Text1,NumToStr(고[1,1],2)); } } 최종꼭지점 = "고점"; } #==========================================# If 처리구분 == "저점처리" Then { 최종저가 = LL; If 최종꼭지점 == "고점" then { For j = 10 DownTo 2 { For jj = 1 To 4 { 저[j,jj] = 저[j-1,jj]; } } 저[1,1] = LL; 저[1,2] = Index; 저[1,3] = sDate; 저[1,4] = sTime; TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]); If 수치표시 == 1 Then { Text1 = Text_New(저[1,3],저[1,4],저[1,1],NumToStr(저[1,1],2)); Text_SetStyle(Text1, 2, 0); } TL_SetSize(TL1,파동선두께); TL_SetColor(TL1,BLUE); } Else If 저[1,1] > LL then { 저[1,1] = LL; 저[1,2] = Index; 저[1,3] = sDate; 저[1,4] = sTime; TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]); If 수치표시 == 1 Then { Text_SetLocation(Text1,저[1,3],저[1,4],저[1,1]); Text_SetString(Text1,NumToStr(저[1,1],2)); } } 최종꼭지점 = "저점"; }
프로필 이미지
bestkim
2023-05-07
1473
글번호 168747
지표