커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내

안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
프로필 이미지
예스스탁
2026-02-27
3189
글번호 230811
지표
답변완료

수정부탁드립니다

간단하게 수정부탁드리니다. 메모리부족현상 나타남 Input:af(0.06),maxAF(0.25); Var:오늘(0),극대(0),극저(0),가속(0),내일(0),추세(0),상승(1),하락(-1); //--------------------------------------------------------------------------------- Var1 = Ema(C,1); if Var1 > 0 and 극대 == 0 and 극저 == 0 then { 극대 = Var1; 극저 = Var1; } if Var1 > 0 and 오늘[1] == 0 then { if 추세[1] == 0 then { if Var1[1] < Var1 then 추세 = 상승; if Var1[1] > Var1 then 추세 = 하락; } if 추세[1] == 상승 and Var1[1] > Var1 then { 추세 = 하락; 오늘 = 극대[1]; 가속 = af; } if 추세[1] == 하락 and Var1[1] < Var1 then { 추세 = 상승; 오늘 = 극저[1]; 가속 = af; } 극저 = min(Var1,극저); 극대 = max(Var1,극대); } if 오늘[1] > 0 then { if 추세[1] == 상승 then { if Var1 > 내일[1] then { 오늘 = 내일[1]; 극저 = 0; if Var1 > 극대[1] then { 극대 = Var1; 가속 = min(maxAF,가속+af); } } else { 추세 = 하락; 오늘 = 극대[1]; 극대 = 0; 극저 = Var1; 가속 = af; } } if 추세[1] == 하락 then { if Var1 < 내일[1] then { 오늘 = 내일[1]; 극대 = 0; if Var1 < 극저[1] then { 극저 = Var1; 가속 = min(maxAF,가속+af); } } else { 추세 = 상승; 오늘 = 극저[1]; 극저 = 0; 극대 = Var1; 가속 = af; } } } 내일 = (max(극대,극저) - 오늘) * 가속 + 오늘; //Plot1(오늘); if var1 >= C Then Plot1(var1, "오늘",cyan); if var1 <= C Then Plot1(var1, "오늘",tomato); //--------------------------------------------------------------------------------- var2 = Ema(C,2); if var2 > 0 and 극대 == 0 and 극저 == 0 then { 극대 = var2; 극저 = var2; } if var2 > 0 and 오늘[1] == 0 then { if 추세[1] == 0 then { if var2[1] < var2 then 추세 = 상승; if var2[1] > var2 then 추세 = 하락; } if 추세[1] == 상승 and var2[1] > var2 then { 추세 = 하락; 오늘 = 극대[1]; 가속 = af; } if 추세[1] == 하락 and var2[1] < var2 then { 추세 = 상승; 오늘 = 극저[1]; 가속 = af; } 극저 = min(var2,극저); 극대 = max(var2,극대); } if 오늘[1] > 0 then { if 추세[1] == 상승 then { if var2 > 내일[1] then { 오늘 = 내일[1]; 극저 = 0; if var2 > 극대[1] then { 극대 = var2; 가속 = min(maxAF,가속+af); } } else { 추세 = 하락; 오늘 = 극대[1]; 극대 = 0; 극저 = var2; 가속 = af; } } if 추세[1] == 하락 then { if var2 < 내일[1] then { 오늘 = 내일[1]; 극대 = 0; if var2 < 극저[1] then { 극저 = var2; 가속 = min(maxAF,가속+af); } } else { 추세 = 상승; 오늘 = 극저[1]; 극저 = 0; 극대 = var2; 가속 = af; } } } 내일 = (max(극대,극저) - 오늘) * 가속 + 오늘; //Plot1(오늘); if var2 >= C Then Plot2(var2, "오늘",cyan); if var2 <= C Then Plot2(var2, "오늘",tomato); //--------------------------------------------------------------------------------- var3 = Ema(C,4); if var3 > 0 and 극대 == 0 and 극저 == 0 then { 극대 = var3; 극저 = var3; } if var3 > 0 and 오늘[1] == 0 then { if 추세[1] == 0 then { if var3[1] < var3 then 추세 = 상승; if var3[1] > var3 then 추세 = 하락; } if 추세[1] == 상승 and var3[1] > var3 then { 추세 = 하락; 오늘 = 극대[1]; 가속 = af; } if 추세[1] == 하락 and var3[1] < var3 then { 추세 = 상승; 오늘 = 극저[1]; 가속 = af; } 극저 = min(var3,극저); 극대 = max(var3,극대); } if 오늘[1] > 0 then { if 추세[1] == 상승 then { if var3 > 내일[1] then { 오늘 = 내일[1]; 극저 = 0; if var3 > 극대[1] then { 극대 = var3; 가속 = min(maxAF,가속+af); } } else { 추세 = 하락; 오늘 = 극대[1]; 극대 = 0; 극저 = var3; 가속 = af; } } if 추세[1] == 하락 then { if var3 < 내일[1] then { 오늘 = 내일[1]; 극대 = 0; if var3 < 극저[1] then { 극저 = var3; 가속 = min(maxAF,가속+af); } } else { 추세 = 상승; 오늘 = 극저[1]; 극저 = 0; 극대 = var3; 가속 = af; } } } 내일 = (max(극대,극저) - 오늘) * 가속 + 오늘; //Plot1(오늘); if var3 >= C Then Plot3(var3, "오늘",cyan); if var3 <= C Then Plot3(var3, "오늘",tomato); //--------------------------------------------------------------------------------- var4 = Ema(C,6); if var4 > 0 and 극대 == 0 and 극저 == 0 then { 극대 = var4; 극저 = var4; } if var4 > 0 and 오늘[1] == 0 then { if 추세[1] == 0 then { if var4[1] < var4 then 추세 = 상승; if var4[1] > var4 then 추세 = 하락; } if 추세[1] == 상승 and var4[1] > var4 then { 추세 = 하락; 오늘 = 극대[1]; 가속 = af; } if 추세[1] == 하락 and var4[1] < var4 then { 추세 = 상승; 오늘 = 극저[1]; 가속 = af; } 극저 = min(var4,극저); 극대 = max(var4,극대); } if 오늘[1] > 0 then { if 추세[1] == 상승 then { if var4 > 내일[1] then { 오늘 = 내일[1]; 극저 = 0; if var4 > 극대[1] then { 극대 = var4; 가속 = min(maxAF,가속+af); } } else { 추세 = 하락; 오늘 = 극대[1]; 극대 = 0; 극저 = var4; 가속 = af; } } if 추세[1] == 하락 then { if var4 < 내일[1] then { 오늘 = 내일[1]; 극대 = 0; if var4 < 극저[1] then { 극저 = var4; 가속 = min(maxAF,가속+af); } } else { 추세 = 상승; 오늘 = 극저[1]; 극저 = 0; 극대 = var4; 가속 = af; } } } 내일 = (max(극대,극저) - 오늘) * 가속 + 오늘; //Plot1(오늘); if var4 >= C Then Plot4(var4, "오늘",cyan); if var4 <= C Then Plot4(var4, "오늘",tomato); //--------------------------------------------------------------------------------- var5 = Ema(C,8); if var5 > 0 and 극대 == 0 and 극저 == 0 then { 극대 = var5; 극저 = var5; } if var5 > 0 and 오늘[1] == 0 then { if 추세[1] == 0 then { if var5[1] < var5 then 추세 = 상승; if var5[1] > var5 then 추세 = 하락; } if 추세[1] == 상승 and var5[1] > var5 then { 추세 = 하락; 오늘 = 극대[1]; 가속 = af; } if 추세[1] == 하락 and var5[1] < var5 then { 추세 = 상승; 오늘 = 극저[1]; 가속 = af; } 극저 = min(var5,극저); 극대 = max(var5,극대); } if 오늘[1] > 0 then { if 추세[1] == 상승 then { if var5 > 내일[1] then { 오늘 = 내일[1]; 극저 = 0; if var5 > 극대[1] then { 극대 = var5; 가속 = min(maxAF,가속+af); } } else { 추세 = 하락; 오늘 = 극대[1]; 극대 = 0; 극저 = var5; 가속 = af; } } if 추세[1] == 하락 then { if var5 < 내일[1] then { 오늘 = 내일[1]; 극대 = 0; if var5 < 극저[1] then { 극저 = var5; 가속 = min(maxAF,가속+af); } } else { 추세 = 상승; 오늘 = 극저[1]; 극저 = 0; 극대 = var5; 가속 = af; } } } 내일 = (max(극대,극저) - 오늘) * 가속 + 오늘; //Plot1(오늘); if var5 >= C Then Plot5(var5, "오늘",cyan); if var5 <= C Then Plot5(var5, "오늘",tomato); //--------------------------------------------------------------------------------- var6 = Ema(C,10); if var6 > 0 and 극대 == 0 and 극저 == 0 then { 극대 = var6; 극저 = var6; } if var6 > 0 and 오늘[1] == 0 then { if 추세[1] == 0 then { if var6[1] < var6 then 추세 = 상승; if var6[1] > var6 then 추세 = 하락; } if 추세[1] == 상승 and var6[1] > var6 then { 추세 = 하락; 오늘 = 극대[1]; 가속 = af; } if 추세[1] == 하락 and var6[1] < var6 then { 추세 = 상승; 오늘 = 극저[1]; 가속 = af; } 극저 = min(var6,극저); 극대 = max(var6,극대); } if 오늘[1] > 0 then { if 추세[1] == 상승 then { if var6 > 내일[1] then { 오늘 = 내일[1]; 극저 = 0; if var6 > 극대[1] then { 극대 = var6; 가속 = min(maxAF,가속+af); } } else { 추세 = 하락; 오늘 = 극대[1]; 극대 = 0; 극저 = var6; 가속 = af; } } if 추세[1] == 하락 then { if var6 < 내일[1] then { 오늘 = 내일[1]; 극대 = 0; if var6 < 극저[1] then { 극저 = var6; 가속 = min(maxAF,가속+af); } } else { 추세 = 상승; 오늘 = 극저[1]; 극저 = 0; 극대 = var6; 가속 = af; } } } 내일 = (max(극대,극저) - 오늘) * 가속 + 오늘; //Plot1(오늘); if var6 >= C Then Plot6(var6, "오늘",cyan); if var6 <= C Then Plot6(var6, "오늘",tomato); 시스템식부탁드립니다. input :Peod(10),색상두께(50); Var:하락색a(Red), 상승색a(Blue); Var:jr(0),gT(0); Var: 고11(0),고12(0),시간11(0),시간12(0),선TL1(0),선TL(0), 고21(0),고22(0),시간21(0),시간22(0),Vlue11(0),Vlue12(0), 고31(0),고32(0),시간31(0),시간32(0); Array:고Val[20](0),저val[20](0),고Bar[20](0),저Bar[20](0); Array:dr[7](0),dfr[7](0); var : dbox(0),dbox1(0); dr[0] = 0; dr[1] = 2; dr[2] = 3.; dr[3] = -1; dr[4] = -2.; dr[5] = 1; dr[6] = 0.5; For jr = 0 To 19 { 고Bar[jr] = 고Bar[jr] + 1; 저Bar[jr] = 저Bar[jr] + 1; } if crossup(c,highest(H,Peod)[1]) Then gT = 1; if CrossDown(c,Lowest(L,Peod)[1]) Then gT = -1; If gT == -1 Then { If gT[1] != -1 Then { For jr = 18 DownTo 0 { 저val[jr+1] = 저val[jr]; 저Bar[jr+1] = 저Bar[jr]; //ZZ[j+1] = ZZ[j]; } 저val[0] = L; 저Bar[0] = 0; //ZZ[0] = L; 고11 = Date[고Bar[0]]; 시간11 = stime[고Bar[0]]; Vlue11 = 고Val[0]; 고12 = Date[저Bar[0]]; 시간12 = stime[저Bar[0]]; Vlue12 = 저val[0]; 고21 = Date[고Bar[0]]; 시간21 = stime[고Bar[0]]; 고22 = Date[0]; 시간22 = stime[0]; for jr = 0 to 6 { dfr[jr] = 저val[1] + ((고Val[0] - 저val[1]) * dr[jr]); } Box_SetEnd(dbox,고11,시간11,Vlue11); dbox = box_new(고11,시간11,Vlue11,고12,시간12,Vlue12); Box_SetColor(dbox,상승색a); Box_SetFill(dbox,true,색상두께); } If 저val[0] > L Then { 저val[0] = L; 저Bar[0] = 0; //ZZ[0] = L; 고12 = Date[저Bar[0]]; 시간12 = stime[저Bar[0]]; Vlue12 = 저val[0]; 고22 = Date[0]; 시간22 = stime[0]; } Box_SetEnd(dbox,NextBarSdate,NextBarStime,Vlue12); } If gT == 1 Then { If gT[1] != 1 Then { For jr = 18 DownTo 0 { 고Val[jr+1] = 고Val[jr]; 고Bar[jr+1] = 고Bar[jr]; //ZZ[j+1] = ZZ[j]; } 고Val[0] = H; 고Bar[0] = 0; //ZZ[0] = H; 고11 = Date[저Bar[0]]; 시간11 = stime[저Bar[0]]; Vlue11 = 저val[0]; 고12 = Date[고Bar[0]]; 시간12 = stime[고Bar[0]]; Vlue12 = 고Val[0]; 고31 = Date[저Bar[0]]; 시간31 = stime[저Bar[0]]; 고32 = Date[0]; 시간32 = stime[0]; for jr = 0 to 5 { dfr[jr] = 저val[0] + ((고Val[1] - 저val[0]) * dr[jr]); } Box_SetEnd(dbox,고11,시간11,Vlue11); dbox = box_new(고11,시간11,Vlue11,고12,시간12,Vlue12); Box_SetColor(dbox,하락색a); Box_SetFill(dbox,true,색상두께); } If 고Val[0] < H Then { 고Val[0] = H; 고Bar[0] = 0; //ZZ[0] = H; 고12 = Date[고Bar[0]]; 시간12 = stime[고Bar[0]]; Vlue12 = 고Val[0]; 고32 = Date[0]; 시간32 = stime[0]; } Box_SetEnd(dbox,NextBarSdate,NextBarStime,Vlue12); }
프로필 이미지
외국인
2022-12-17
1363
글번호 164665
지표
답변완료

문의드립니다.

첫번째 전체종가상승률이 25%가 넘는 3캔들(AA) 출현시 첫캔들의 시가를 OA로 하고 두번째 전체종가상승률이 25%가 넘는 3캔들(BB) 출현시 첫캔들의 시가를 OB로 했을 때 AA캔들이후 저가로 OA를 데드크로스한 이후에 BB캔들이 발생하고 이후 저가로 OB를 데드크로스한 이후 20%이상의 장대양봉이 나온 종목검색식을 부탁드립니다. AA의 인덱스와 BB의 인덱스 사이에 데드크로스가 일어나고 BB인덱스 뒤에 데드크로스가 또 일어나야 하는데 순서대로 발생해야 해서 수식작성이 어려웠습니다. 주석도 부탁드립니다. 추가를 많이 해야 해서. 항상 친절한 답변을 해 주셔서 감사드립니다.
프로필 이미지
이심전심
2022-12-18
1093
글번호 164664
종목검색
답변완료

지표수식 변환 요청드립니다

수식변환 요청드립니다. 아래수식은 트레이딩뷰 지표식인데 이미지파일 그림처럼 캔들로 구현하지 못하더라도 HARSI 바디 시가 종가 고가 저가 를 선으로 출력되어도 됩니다 ##=======// //@version=5 //@author=JayRogers indicator('Heikin Ashi RSI Oscillator', 'HARSI &#8226;', false, format.price, 2) string TT_HARSI = 'Period for the RSI calculations used to generate the' + 'candles. This seperate from the RSI plot/histogram length.' string TT_PBIAS = 'Smoothing feature for the OPEN of the HARSI candles.' + ' Increases bias toward the prior open value which can' + ' help provide better visualisation of trend strength.' + ' ** By changing the Open values, High and Low can also' + ' be distorted - however Close will remain unchanged.' string TT_SMRSI = 'This option smoothes the RSI in a manner similar to HA' + ' open, but uses the realtime rsi rather than the prior' + ' close value.' /////////////////////////////////////////////////////////////////////// // // // ====== INPUTS ====== // // // //////////////////////////////////////////////////////////////////////////////// // -- Candle config string GROUP_CAND = 'Config&#8195;&#187;&#8195;HARSI Candles' i_lenHARSI = input.int(14, 'Length', group=GROUP_CAND, minval=1, tooltip=TT_HARSI) i_smoothing = input.int(7, 'Open Smoothing', group=GROUP_CAND, minval=1, maxval=100, tooltip=TT_PBIAS) string INLINE_COL = 'Colour Pallette' i_colUp = input.color(color.red, 'Colour Pallette&#8195;&#8195;', group=GROUP_CAND, inline=INLINE_COL) i_colDown = input.color(color.teal, ' ', group=GROUP_CAND, inline=INLINE_COL) i_colWick = input.color(color.gray, ' ', group=GROUP_CAND, inline=INLINE_COL) // -- RSI plot config string GROUP_PLOT = 'Config&#8195;&#187;&#8195;RSI Plot' i_source = input.source(ohlc4, 'Source', group=GROUP_PLOT) i_lenRSI = input.int(7, 'Length', group=GROUP_PLOT, minval=1) i_mode = input.bool(true, 'Smoothed Mode RSI?', group=GROUP_PLOT, tooltip=TT_SMRSI) //////////////////////////////////////////////////////////////////////////////// // // // ====== FUNCTIONS ====== // // // //////////////////////////////////////////////////////////////////////////////// // zero median rsi helper function, just subtracts 50. f_zrsi(_source, _length) => ta.rsi(_source, _length) - 50 // mode 셀렉타블 rsi function for standard, or smoothed output f_rsi(_source, _length, _mode) => // get base rsi float _zrsi = f_zrsi(_source, _length) // smoothing in a manner similar to HA open, but rather using the realtime // rsi in place of the prior close value. var float _smoothed = na _smoothed := na(_smoothed[1]) ? _zrsi : (_smoothed[1] + _zrsi) / 2 // return the requested mode _mode ? _smoothed : _zrsi // RSI Heikin-Ashi generation function f_rsiHeikinAshi(_length) => // get close rsi float _closeRSI = f_zrsi(close, _length) // emulate "open" simply by taking the previous close rsi value float _openRSI = nz(_closeRSI[1], _closeRSI) // the high and low are tricky, because unlike "high" and "low" by // themselves, the RSI results can overlap each other. So first we just go // ahead and get the raw results for high and low, and then.. float _highRSI_raw = f_zrsi(high, _length) float _lowRSI_raw = f_zrsi(low, _length) // ..make sure we use the highest for high, and lowest for low float _highRSI = math.max(_highRSI_raw, _lowRSI_raw) float _lowRSI = math.min(_highRSI_raw, _lowRSI_raw) // ha calculation for close float _close = (_openRSI + _highRSI + _lowRSI + _closeRSI) / 4 // ha calculation for open, standard, and smoothed/lagged var float _open = na _open := na(_open[i_smoothing]) ? (_openRSI + _closeRSI) / 2 : (_open[1] * i_smoothing + _close[1]) / (i_smoothing + 1) // ha high and low min-max 섹렉션 float _high = math.max(_highRSI, math.max(_open, _close)) float _low = math.min(_lowRSI, math.min(_open, _close)) // return the OHLC values [_open, _high, _low, _close] //////////////////////////////////////////////////////////////////////////////// // // // ====== SERIES, LINES and LABELS ====== // // // //////////////////////////////////////////////////////////////////////////////// // standard, or ha smoothed rsi for the line plot and/or histogram float RSI = f_rsi(i_source, i_lenRSI, i_mode) // get OHLC values to use in the plotcandle() [O, H, L, C] = f_rsiHeikinAshi(i_lenHARSI) // candle body colouring color bodyColour = C > O ? i_colUp : i_colDown color wickColour = i_colWick // make our HA rsi candles plotcandle(O, H, L, C, 'HARSI', bodyColour, wickColour, bordercolor=bodyColour)
프로필 이미지
당일선물
2022-12-18
1726
글번호 164663
지표
답변완료

지표문의에요.

아래 키움수식을 예스수식으로 변환부탁드려요,, 라인 색이랑 두께도 지정 가능하게 부탁드려요,, 미리 감사드립니다. (__) 지표1 선행중심선(상단지표) 수식1 a=Highest(H,period1); b=LowEst(L,period1); N=(A+B)/2; shift(N,26) 수식2 a=Highest(H,period2); b=LowEst(L,period2); N=(A+B)/2; shift(N,26) 수식3 a=Highest(H,period3); b=LowEst(L,period3); N=(A+B)/2; shift(N,26) 수식4 a=Highest(H,period4); b=LowEst(L,period4); N=(A+B)/2; shift(N,26) 수식5 a=Highest(H,period5); b=LowEst(L,period5); N=(A+B)/2; shift(N,26) 지표조건 period1 333 period2 555 period3 777 period4 888 period5 999 지표2 볼벤중심선(하단지표) 수식1 BBandsUp(Period1,D1) 수식2 BBandsUp(Period2,D1) 수식3 BBandsUp(Period3,D1) 수식4 a=Highest(H,period4); b=LowEst(L,period4); N=(A+B)/2; shift(N,26) 수식5 MA(c, 기간6, 이평종류) 지표조건 period1 999 period2 777 period3 555 period4 333 D1 2 기간6 1 이평종류 지수
프로필 이미지
vhvh
2022-12-17
1108
글번호 164662
지표
답변완료

문의드립니다

input : signal(10); var1 = OBV; Var2 = Ema(var1,signal); Plot1(Var1); plot2(Var2); 수고 많으십니다 여전에 만들어주신 지표입니다 부탁드릴 수식은 1) Plot1이 Plot2보다 위면 빨간색 아래면 파란색 으로 표시돼게 나오도록 부탁드립니다 색깔 변경 가능하도록 부탁드리겠습니다 2) 위 지표를 시스템으로 부탁드리겠습니다
프로필 이미지
cjfdk
2022-12-16
1124
글번호 164660
지표
답변완료

수정부탁드립니다

색상을 실시간 으로 표시부탁드립니다. input : vPeriod(120),선두께(2),N(0),rtt(20),상승색a(magenta),하락색a(lime),색상두께(20),글씨대(20); Var:상승색(Magenta), 하락색(Cyan); input : 틱1(0),틱2(1); Var:vj(0),vT(0),txx(0),txxx(0); Var: date11(0),date12(0),time11(0),time12(0),sTL1(0),sTL(0), date21(0),date22(0),time21(0),time22(0), date31(0),date32(0),time31(0),time32(0),stx(0),stx1(0),stl4(0),sTL9(0),dboxx(0); Array:HiVal[20](0),LoVal[20](0),HiBar[20](0),LoBar[20](0); Array:r[7](0),fr[7](0); var : xClose(0),xOpen(0),xHigh(0),xLow(0); #Heiken Ashi 시고저종 if index == 0 then { xOpen = open; xClose = (O+H+L+C)/4; xHigh = MaxList( high, xOpen, xClose); xLow = MinList( low, xOpen,xClose); } else { xClose = (O+H+L+C)/4; xOpen = (xOpen [1] + xClose [1])/2 ; xHigh = MaxList(High, xOpen, xClose) ; xLow = MinList(Low, xOpen, xClose) ; } if XClose > Xopen Then PlotPaintBar(h,l,"강조",Red); else if XClose < Xopen Then PlotPaintBar(h,l,"강조",Blue); else PlotPaintBar(h,l,"강조",GREEN); r[0] = 0; r[1] = 2; r[2] = 3.; r[3] = -1; r[4] = -2.; r[5] = 1; r[6] = 0.5; For vj = 0 To 19 { HiBar[vj] = HiBar[vj] + 1; LoBar[vj] = LoBar[vj] + 1; } if crossup(xClose,highest(xHigh,vPeriod)[1]) Then vT = 1; if CrossDown(xClose,Lowest(xLow,vPeriod)[1]) Then vT = -1; If vT == -1 Then { If vT[1] != -1 Then { For vj = 18 DownTo 0 { LoVal[vj+1] = LoVal[vj]; LoBar[vj+1] = LoBar[vj]; } LoVal[0] = xLow; LoBar[0] = 0; date11 = date[HiBar[0]+N]; time11 = stime[HiBar[0]+N]; Value11 = HiVal[0]; date12 = date[LoBar[0]+N]; time12 = stime[LoBar[0]+N]; Value12 = LoVal[0]; Text_Delete(txx); TL_Delete(stl); sTL = TL_New(sdate,stime,Value12,NextBarSdate,NextBarStime,NextBarOpen); sTL1 = TL_New(date11,time11,Value11,date12,time12,Value12); TL_SetColor(sTL1,하락색); date21 = date[HiBar[0]+N]; time21 = stime[HiBar[0]+N]; date22 = date[0]; time22 = stime[0]; for vj = 0 to 6 { fr[vj] = LoVal[1] + ((HiVal[0] - LoVal[1]) * r[vj]); } // Condition99 = True; Txx = Text_New(date11,time11,Value11+PriceScale*7,"●"+NewLine+NewLine+NewLine); Text_SetColor(Txx,Blue); Text_SetStyle(Txx,2,2); Text_SetSize(txx,rtt); dboxx = box_new(Date11,Time11,xHigh,NextBarSdate,NextBarStime,xLow); Box_SetColor(dboxx,하락색a); Box_SetFill(dboxx,true,색상두께); Box_SetExtFill(dboxx,true); if Condition99 == true and Loval[0] <= loval[1]-PriceScale*틱2 Then { Condition99 = False; Text_Delete(txx); } if abs(value11[1]-value12[1]) < 1 Then Text_Delete(txxx); Else { Text_SetColor(Txxx,magenta); Text_SetSize(txxx,글씨대); } txxx = Text_New(date11,time11,Value11,NumToStr(abs(value11-value12),2)); Text_SetStyle(txxx,2,1); Text_SetBold(txxx,1); } If LoVal[0] > xLow Then { LoVal[0] = xLow; LoBar[0] = 0; date12 = date[LoBar[0]+N]; time12 = stime[LoBar[0]+N]; Value12 = LoVal[0]; TL_SetEnd(sTL1, date12,time12,Value12); date22 = date[0+N]; time22 = stime[0+N]; if Condition99 == true and Loval[0] <= loval[1]-PriceScale*틱2 Then // PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav"); { Condition99 = False; Text_Delete(txx); } Text_SetString(txxx,NumToStr(abs(value11-value12),2)); if abs(value11-value12) < 1 Then { Text_SetColor(Txxx,Blue); Text_SetSize(txxx,글씨대); } Else { Text_SetColor(Txxx,Blue); Text_SetSize(txxx,15); } Box_SetEnd(dboxx,NextBarSdate,NextBarStime,L); } } If vT == 1 Then { If vT[1] != 1 Then { For vj = 18 DownTo 0 { HiVal[vj+1] = HiVal[vj]; HiBar[vj+1] = HiBar[vj]; } HiVal[0] = xHigh; HiBar[0] = 0; date11 = date[LoBar[0]+N]; time11 = stime[LoBar[0]+N]; Value11 = LoVal[0]; date12 = date[HiBar[0]+N]; time12 = stime[HiBar[0]+N]; Value12 = HiVal[0]; Text_Delete(txx); TL_Delete(stl); sTL = TL_New(sdate,stime,Value12,NextBarSdate,NextBarStime,NextBarOpen); sTL1 = TL_New(date11,time11,Value11,date12,time12,Value12); TL_SetColor(sTL1,상승색); date31 = date[LoBar[0]+N]; time31 = stime[LoBar[0]+N]; date32 = date[0]; time32 = stime[0]; for vj = 0 to 5 { fr[vj] = LoVal[0] + ((HiVal[1] - LoVal[0]) * r[vj]); } //Condition1 = False; Txx = Text_New(date11,time11,Value11+PriceScale*7,NewLine+NewLine+NewLine+"●"); // Condition99 = True; Text_SetColor(Txx,magenta); Text_SetStyle(Txx,2,2); Text_SetSize(txx,rtt); dboxx = box_new(Date11,Time11,xHigh,NextBarSdate,NextBarStime,xLow); Box_SetColor(dboxx,상승색a); Box_SetFill(dboxx,true,색상두께); Box_SetExtFill(dboxx,true); if Condition99 == true and Loval[0] >= Loval[1]-PriceScale*틱1 Then { Condition99 = False; Text_Delete(txx); } if abs(value11[1]-value12[1]) < 1 Then Text_Delete(txxx); Else { Text_SetColor(Txxx,Blue); Text_SetSize(txxx,글씨대); } txxx = Text_New(date11,time11,Value11,NumToStr(abs(value11-value12),2)); Text_SetStyle(txxx,2,3); Text_SetBold(txxx,1); } If HiVal[0] < xhigh Then { HiVal[0] = xHigh; HiBar[0] = 0; date12 = date[HiBar[0]+N]; time12 = stime[HiBar[0]+N]; Value12 = HiVal[0]; TL_SetEnd(sTL1, date12,time12,Value12); date32 = date[0+N]; time32 = stime[0+N]; if Condition99 == true and HiVal[0] <= HiVal[1]-PriceScale*틱2 Then // PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav"); { Condition99 = False; Text_Delete(txx); } Text_SetString(txxx,NumToStr(abs(value11-value12),2)); if abs(value11-value12) < 1 Then { Text_SetColor(Txxx,magenta); Text_SetSize(txxx,글씨대); } Else { Text_SetColor(Txxx,magenta); Text_SetSize(txxx,15); } Box_SetEnd(dboxx,NextBarSdate,NextBarStime,xlow); } } TL_SetSize(sTL1,선두께); 사각박스지표 선행지표 부탁드립니다. 선행지표 Input:a(9),b(26),d(52); var : 전환선(0),기준선(0),후행스팬(0),선행스팬1(0),선행스팬2(0),선행스팬3(0),선행스팬4(0); 전환선 = (highest(H,1)+lowest(L,1))/2; 기준선 = (highest(H,b)+lowest(L,b))/2; 후행스팬 = C; 선행스팬1 = (전환선+기준선)/2; 선행스팬2 = (highest(H,d)+lowest(L,d))/2; if 전환선 >= C then Plot1(전환선, "전환선",blue); Else Plot1(전환선, "전환선",RED); if 기준선 >= C then Plot2(기준선, "기준선",BLUE); Else Plot2(기준선, "기준선",red); Plot3(후행스팬, "후행스팬"); if 선행스팬1 >= C then Plot4(선행스팬1, "선행스팬1",BLUE); Else Plot4(선행스팬1, "선행스팬1",RED); if 선행스팬2 >= C then Plot5(선행스팬2, "선행스팬2",BLUE); Else Plot5(선행스팬2, "선행스팬2",RED);
프로필 이미지
외국인
2022-12-17
992
글번호 164659
지표

흑수돌 님에 의해서 삭제되었습니다.

프로필 이미지
흑수돌
2022-12-16
9
글번호 164658
시스템

흑수돌 님에 의해서 삭제되었습니다.

프로필 이미지
흑수돌
2022-12-16
14
글번호 164657
시스템
답변완료

수식 문의

아래의 강조 수식을 시그널로 변환하되 음봉이 연속해서 n회 출현하면 매도, 양봉이 연속해서 n회 출현하면 매수 하는 조건을 추가하고 싶습니다. 감사합니다. input : gamma(0); var : OSeries(0),ol0(0),ol1(0),ol2(0),ol3(0),ol(0); var : CSeries(0),cl0(0),cl1(0),cl2(0),cl3(0),cl(0); OSeries = Open; IF BarIndex == 0 THEN { OL = OSeries; ol0 = OSeries; ol1 = OSeries; ol2 = OSeries; ol3 = OSeries; } ELSE { ol0 = (1 - gamma) * OSeries + gamma * ol0; ol1 = -gamma * ol0 + ol0 + gamma * ol1; ol2 = -gamma * ol1 + ol1 + gamma * ol2; ol3 = -gamma * ol2 + ol2 + gamma * ol3; OL = (ol0 + 2 * ol1 + 2 * ol2 + ol3) / 6; } CSeries = c; IF BarIndex == 0 THEN { CL = CSeries; cl0 = CSeries; cl1 = CSeries; cl2 = CSeries; cl3 = CSeries; } ELSE { cl0 = (1 - gamma) * CSeries + gamma * cl0; cl1 = -gamma * cl0 + cl0 + gamma * cl1; cl2 = -gamma * cl1 + cl1 + gamma * cl2; cl3 = -gamma * cl2 + cl2 + gamma * cl3; CL = (cl0 + 2 * cl1 + 2 * cl2 + cl3) / 6; } #PlotPaintBar(h,l,ol,cl,"강조",IFf(cl>ol,RGB(255,130,36),RGB(126,210,255))); PlotPaintBar(h,l,"강조",IFf(cl>ol,RGB(255,130,36),RGB(126,210,255)));
프로필 이미지
부똘이
2022-12-19
1124
글번호 164656
시스템