커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

신호검색 부탁드립니다

Hu = WMa(WMa(c,Period/2)*2 - WMa(c, Period), floor(sqrt(Period))); T = LRL(C,Period)+LRS(C,Period); 조건Up=CrossUp(Hu,T) && Hu>Hu(1) && T>T(1); 조건Dn=CrossDown(Hu,T) && Hu<Hu(1) && T<T(1); 최종=C>Hu && C>T && O<Hu && O<T && Hu>Hu(1) && T>T(1); bs=BarsSince(조건up); cnt=CountSince(조건Up,조건Dn)==1; bs<봉수 && cnt(1) && 최종 Period=20 봉수=20
프로필 이미지
삼손감자
2025-07-30
145
글번호 192867
검색
답변완료

예스스팟 스튜디오

처음 실행하다 보니 오류가 뜨네요. 도움 주시면 감사하겠습니다. 에러는 줄번호15, 17에서 SyntaxError이라고 뜹니다. var timer5 = 2; // 2초 var 매수금 = 100000; var 손절 = 0.95; var 익절 = 1.05; var OrderList = []; var MKList = []; var req; ? // 종목 제한 수 (변수로 설정) var 종목제한수 = 10; ? function Main_OnStart() { // 1번 타이머, 1초 Main.SetTimer(1, timer5 * 1000); ? // 오늘 매수한 종목 관리 배열 초기화 MKList = []; } ? function Main_OnTimer(nEventID) { var d = new Date(); YYYYMMDD = d.getFullYear() * 10000 + (d.getMonth() + 1) * 100 + d.getDate(); HHMMSS = d.getHours() * 10000 + d.getMinutes() * 100 + d.getSeconds(); ? if (nEventID == 1 && HHMMSS > 090000 && HHMMSS < 100000) { // 종목검색 수행 Main.ReqPowerSearch("변동성 돌파전략"); } ? if (nEventID == 2) { Main.ReqMarketData(OrderList[req]); } } ? function Main_OnRcvItemList(aItemList, nCount) { Main.KillTimer(1); ? OrderList = []; ? if (nCount >= 1) { if (MKList.length == 0) { OrderList = aItemList.slice(0, 종목제한수); // 한정된 수만 가져오기 } else { for (var a = 0; a < nCount; a++) { var Add = true; for (var b = 0; b < MKList.length; b++) { if (aItemList[a] == MKList[b].code) { Add = false; } } ? if (Add == true && !IsStockInAccount(aItemList[a])) { OrderList.push(aItemList[a]); // 제한 수를 넘는 경우 break if (OrderList.length >= 종목제한수) { break; } } } } ? if (OrderList.length == 0) { Main.SetTimer(1, timer5 * 1000); } else { req = 0; Main.ReqMarketData(OrderList[req]); } } } ? function Main_OnRcvMarketData(MarketData) { if (MarketData.code == OrderList[req]) { MKList.push(MarketData); ? // 계좌에 같은 종목이 있는지 확인 if (!IsStockInAccount(MarketData.code)) { // 계좌에 없는 경우에만 매수 Account1.OrderBuy(MarketData.code, 1, 0, 1); //Account1.OrderBuy(MarketData.code, Math.floor(매수금 / MarketData.Ask(1)), 0, 1); //Account1.OrderBuy(MarketData.code, Math.floor(매수금 / MarketData.Ask(1)), MarketData.Ask(1), 0); ? // 지정가로 주문하고자 하시면 주문함수 내용을 위와 같이 변경하시면 됩니다. Main.MessageList(MarketData.code + " 주식을 매수합니다."); } else { Main.MessageList(MarketData.code + " 주식은 이미 계좌에 있으므로 매수하지 않습니다."); } ? req = req + 1; ? if (req < OrderList.length) { var aa = Main.ReqMarketData(OrderList[req]); if (aa == -1) { Main.SetTimer(2, 15000); } } else { Main.SetTimer(1, timer5 * 1000); } } } ? function IsStockInAccount(stockCode) { // 계좌에 해당 종목이 있는지 확인하는 함수 var numberOfBalances = Account1.GetTheNumberOfBalances(); ? for (var i = 0; i < numberOfBalances; i++) { Account1.SetBalance(i); if (stockCode == Account1.Balance.code) { return true; // 계좌에 같은 종목이 있으면 true 반환 } } ? return false; // 계좌에 같은 종목이 없으면 false 반환 }
프로필 이미지
제너리
2025-07-30
162
글번호 192865
시스템
답변완료

검색식 부탁드립니다. _(_ _)_

항상 도와주심에감사드립니다. _(__)_ 이동평균선이 480 240 120 60 20 5에서 배열에 상관없이 한번에 이 모든 이평선을 돌파한 종목 검색식을 부탁드립니다.
프로필 이미지
한칼부르스
2025-07-30
157
글번호 192861
종목검색
답변완료

수퍼트랜드

수퍼트랜드 지표식부탁합니다
프로필 이미지
leehy
2025-07-29
148
글번호 192860
지표
답변완료

검색식 부탁드립니다.

안녕하세요. 아래수식으로 검색식 부탁드립니다. EMA1=eavg(C,기간1); EMA2=eavg(EMA1,기간1); EMA3=eavg(EMA2,기간1); B=3*EMA1-3*EMA2+EMA3; // 테마선 E24=eavg(C,기간2); W24=wavg(C,기간2); A5=(C+nPreWC(1)+nPreWC(2)+nPreWC(3)+nPreWC(4))/5; C>=W24 and C>=A5 and crossup(B,E24) 지표변수 기간1:20 기간2:224 주봉함수:nPreWC(n)------- n주전종가 현재가가 W24보다 크거나 같고 현재가가 5주이평(A5)보다 크거나 같을때 테마선(B)이 E24를 돌파
프로필 이미지
딸바보07
2025-07-29
150
글번호 192859
종목검색

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

프로필 이미지
ujkl
2025-07-30
8
글번호 192858
지표
답변완료

간단식 부탁드립니다

거의 수동매식 인데요. 아래와 같은 식이 가능한지요? -지정가를 변수로 처리하고,차트를 보다가 숫자를 수동으로 입력하면 -가격이 하락하다가 지정가 위에 일정틱에서 즉시주문이 나가도록 하고 싶습니다 -가령 변수로 설정해놓은 지정가를 1로 입력하면 가격이 하락해서 1.04 도달(atlimit)할 때 즉시매수 -아래와 같은 식으로 시뮬레이션 해보면 신호가 발생하는 데, 가격이 상승중일 때 신호가 발생하거나,장초반 그냥 신호발생, 두번째 이후 신호에서 1이하 0.1,0.3 이런 신호가 발생합니다. 수정부탁합니다. -당일 매매 조건을 추가해주시면 감사 INPUT:횟수(10),지정가(0),진입틱(0.04),LOSS(30); var : ii(0),entry(0),T1(0); if Bdate != Bdate[1] Then ii = 0; if Bdate != Bdate[1] Then T1 = TotalTrades; if MarketPosition == 0 Then entry = TotalTrades-T1; Else entry = TotalTrades-T1+1; if MarketPosition==0 and entry< 횟수 Then// { Buy("nowb",AtLimit,지정가+PriceScale*진입틱); } SetStopLoss(LOSS,PercentStop); SetStopEndofday(151500);
프로필 이미지
피카2
2025-07-29
125
글번호 192857
시스템
답변완료

변환 부탁드립니다.

트레이팅 뷰 수식입니다. 적용가능하도록 부탁 드립니다. indicator("RSI Shift Zone [ChartPrime]", overlay = false, max_labels_count = 500) // --------------------------------------------------------------------------------------------------------------------{ rsi_len = input.int(14, "RSI length") upper_level = input.int(70, "Upper RSI Level", minval = 50) lower_level = input.int(30, "Lower RSI Level", maxval = 50) min_channel_len = input.int(15, "Minimal bars length of the channel") display_rsi_val = input.bool(false, "Display RSI Values at the Zones") upper_col = input.color(#21c997, "↑", inline = "colors") lower_col = input.color(#cc24e2, "↓", inline = "colors") var start = int(na) var trigger = false var float upper = na var float lower = na var channel_color = color(na) color bar_color = na // --------------------------------------------------------------------------------------------------------------------{ rsi = ta.rsi(close, rsi_len) channel_upper = ta.crossover(rsi, 70) and not trigger channel_lower = ta.crossunder(rsi, 30) and not trigger rsi_color = color.from_gradient(rsi, 30, 70, lower_col, upper_col) if channel_upper label.new(bar_index, rsi, style = label.style_circle, size = size.tiny, color = color.new(rsi_color, 45)) label.new(bar_index, rsi, str.tostring(upper_level), style = label.style_label_center, size = size.small, color = color.new(rsi_color, 100)) start := bar_index trigger := true upper := high lower := low channel_color := rsi_color bar_color := rsi_color if display_rsi_val label.new(bar_index, hl2, "RSI: " + str.tostring(upper_level), style = label.style_label_right, color = color.new(rsi_color, 100), textcolor = chart.fg_color, force_overlay = true) if channel_lower label.new(bar_index, rsi, style = label.style_circle, size = size.tiny, color = color.new(rsi_color, 45)) label.new(bar_index, rsi, str.tostring(lower_level), style = label.style_label_center, size = size.small, color = color.new(rsi_color, 100)) start := bar_index trigger := true upper := high lower := low channel_color := rsi_color bar_color := rsi_color if display_rsi_val label.new(bar_index, hl2, "RSI: " + str.tostring(lower_level), style = label.style_label_right, color = color.new(rsi_color, 100), textcolor = chart.fg_color, force_overlay = true) if bar_index-start >= min_channel_len trigger := false trigger_change = channel_upper != channel_upper[1] or channel_lower != channel_lower[1] // --------------------------------------------------------------------------------------------------------------------} // &#128204; &#120401;&#120388;&#120398;&#120400;&#120380;&#120391;&#120388;&#120405;&#120380;&#120399;&#120388;&#120394;&#120393; // --------------------------------------------------------------------------------------------------------------------{ barcolor(bar_color) prsi = plot(rsi, "RSI", color = rsi_color, linewidth = 2) p50 = plot(50, color = color.gray, editable = false) plower = plot(lower_level, "Lower RSI Level", color = bar_index % 3 == 0 ? na : color.gray) pupper = plot(upper_level, "Upper RSI Level", color = bar_index % 3 == 0 ? na : color.gray) fill(prsi, pupper, rsi >= upper_level ? color.new(rsi_color, 80) : na) fill(prsi, plower, rsi <= lower_level ? color.new(rsi_color, 80) : na) plot(trigger_change ? float(na) : upper, force_overlay = true, style = plot.style_linebr, offset = -1, color = channel_color, editable = false) plot(trigger_change ? float(na) : lower, force_overlay = true, style = plot.style_linebr, offset = -1, color = channel_color, editable = false) p1 = plot(trigger_change ? float(na) : upper, force_overlay = true, style = plot.style_linebr, color = color.new(channel_color, 70), linewidth = 3, editable = false) p2 = plot(trigger_change ? float(na) : lower, force_overlay = true, style = plot.style_linebr, color = color.new(channel_color, 70), linewidth = 3, editable = false) fill(p1, p2, color.new(channel_color, 90)) plot(trigger_change ? float(na) : math.avg(upper, lower), force_overlay = true, style = plot.style_linebr, offset = -1, color = color.gray, editable = false) plot(trigger_change ? float(na) : math.avg(upper, lower), force_overlay = true, style = plot.style_linebr, color = color.gray, editable = false) // --------------------------------------------------------------------------------------------------------------------}
프로필 이미지
다올
2025-07-29
187
글번호 192856
지표
답변완료

문의

수고 하십니다. 수식 문의 합니다 1 신 고가 10 첫 신 고가 에서만 진입하고 0.2 포인터 하락 시마다 5번 진입 합니다 (첫 신호 이후에 2.3.4.5....나오는 신호는 모두 무시합니다 - 첫 신호만 적용 합니다) 2 신 저가 10 첫 신 저가 에서만 진입하고 0.2 포인터 상승 시마다 5번 진입 합니다 (첫 신호 이후에 2.3.4.5....나오는 신호는 모두 무시합니다 - 첫 신호만 적용 합니다) 3 첫 신호만 적용하는 식 부탁합니다
프로필 이미지
이광복
2025-07-29
141
글번호 192855
시스템
답변완료

질문 부탁드립니다

수고하십니다 아래식에서 aa[y] 조건이 최초로 만족했을때만 var1 에 저장하려고 하면 아래와 같이 작성하면 되나요? 최초 만족했을때 for loop 를 중단하려고 합니다 이런경우 처럼 중첩 for문에서는 x, y 모두에 하나 더 큰 값을 주면 되는지 아니면 y에만 하면 되는가요? 그리고 수식 처음에 var1=0; 으로 초기화를 했는데 밑에서 if var1==0 and 라고 조건에 명시해야 하나요?? var1==0 조건을 안넣게 되면 어떻게 달라지나요?? 감사합니다 var : x(0) , y(0); var1=0; for x = 0 to 5 { for y= 0 to 4+(x*5) { if var1 ==0 and aa[y] >= aa[x] *2 then { var1= aa[y]; y=4+(x*5) + 1; x=6; } } }
프로필 이미지
yamu
2025-07-29
133
글번호 192854
지표