커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

일목균형표 색상

안녕하십니까. 항상 감사드립니다. 그림과 같이 기준선, 전환선, 선행스팬1, 선행스팬2를 상승/하락시 색상을 구분해서 현시될 수 있도록 하려고 하는데 선행스팬과 후행스팬이 선행과 후행으로 현시되질 않습니다. 잘못된곳 수정 부탁 드립니다(후행스팬은 상승/하락 색상 제외) 색상은 임의대로 하시면 제가 수정해서 사용하겠습니다. Inputs: TurnLen(9), StdLen(26), PrdLen(52); Variables: 기준선(0), 전환선(0),후행스팬(0), 선행스팬1(0), 선행스팬2(0),c1(0),c2(0),c3(0),c4(0); 전환선 = (Highest(High, TurnLen) + Lowest(Low, TurnLen)) / 2; 기준선 = (Highest(High, StdLen) + Lowest(Low, StdLen)) / 2; 후행스팬 = Close ; 선행스팬1 = (전환선 + 기준선) / 2 ; 선행스팬2 = (Highest(High, PrdLen) + Lowest(Low, PrdLen)) / 2; if 전환선 > 전환선[1] Then c1 = Magenta; if 전환선 < 전환선[1] Then c1 = Lime; if 기준선 > 기준선[1] Then c2 = Red; if 기준선 < 기준선[1] Then c2 = Blue; if 선행스팬1 > 선행스팬1[1] Then c3 = Magenta; if 선행스팬1 < 선행스팬1[1] Then c3 = Lime; if 선행스팬2 >선행스팬2[1] Then c4 = Red; if 선행스팬2 < 선행스팬2[1] Then c4 = Blue; Plot1(전환선,"전환선",C1) ; Plot2(기준선,"기준선",C2) ; Plot3(선행스팬1,"선행스팬1",C3) ; Plot4(선행스팬2,"선행스팬2",C4) ; Plot5(후행스팬,"후행스팬") ; 수고하세요.
프로필 이미지
나도부자1
2025-05-11
257
글번호 190716
지표
답변완료

수식 질문입니다

1 아래식을 간단히 작성할수있을까요 30봉 60봉 90봉 120봉 (M[0]) > (M[1]+M[2]+M[3]+M[4]+M[5]+M[6]+M[7]+M[8]+M[9]+M[10] +M[11]+M[12]+M[13]+M[14]+M[15]+M[16]+M[17]+M[18]+M[19]+M[20] +M[21]+M[22]+M[23]+M[24]+M[25]+M[26]+M[27]+M[28]+M[29]+M[30]) (M[0]+M[1]) > (M[2]+M[3]+M[4]+M[5]+M[6]+M[7]+M[8]+M[9]+M[10] +M[11]+M[12]+M[13]+M[14]+M[15]+M[16]+M[17]+M[18]+M[19]+M[20] +M[21]+M[22]+M[23]+M[24]+M[25]+M[26]+M[27]+M[28]+M[29]+M[30]) 2 진입식에 따른 다른PT값을 설정하고싶습니다 A 진입 A 타겟포인트PT 3% B 진입 B 타겟포인트PT 5% 감사합니다
프로필 이미지
여름가을
2025-05-11
235
글번호 190715
지표

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

프로필 이미지
우유
2025-05-11
54
글번호 190714
시스템

윤호석 님에 의해서 삭제되었습니다.

프로필 이미지
윤호석
2025-05-10
0
글번호 190713
지표
답변완료

보완해주세요

input: 기준배율(1.8), 익절비율(1.01), 손절비율(0.995), 진입선색(cyan), 익절선색(green), 손절선색(red); var: 기준거래량(0), 중심선(0), 제곱합(0), 분산(0), 표준편차(0), BB상단(0), ma5(0), ma20(0), 진입가(0), 익절선(0), 손절선(0), 신호발생(false), 매도출력(false), ID_진입선(0), ID_익절선(0), ID_손절선(0), ID_txt(0); // === 기준 계산 === 기준거래량 = average(volume, 20); 중심선 = average(Close, 20); 제곱합 = average(Close * Close, 20); 분산 = 제곱합 - 중심선 * 중심선; 표준편차 = SquareRoot(분산); BB상단 = 중심선 + 표준편차 * 2; ma5 = average(Close, 5); ma20 = average(Close, 20); // === 매수 신호 === if (신호발생 = false) and (volume > 기준거래량 * 기준배율) and (Close > BB상단) and (Close > Open) and ((Close - Open) > (High - Low) * 0.6) and (ma5 > ma20) then begin // 기존 선 삭제 if ID_진입선 <> 0 then TL_Delete(ID_진입선); if ID_익절선 <> 0 then TL_Delete(ID_익절선); if ID_손절선 <> 0 then TL_Delete(ID_손절선); 진입가 = Close; 익절선 = 진입가 * 익절비율; 손절선 = 진입가 * 손절비율; // 진입선 ID_진입선 = TL_New(date, time, 진입가, date, time + 1, 진입가); TL_SetColor(ID_진입선, 진입선색); TL_SetSize(ID_진입선, 2); // 익절선 ID_익절선 = TL_New(date, time, 익절선, date, time + 1, 익절선); TL_SetColor(ID_익절선, 익절선색); TL_SetSize(ID_익절선, 2); // 손절선 ID_손절선 = TL_New(date, time, 손절선, date, time + 1, 손절선); TL_SetColor(ID_손절선, 손절선색); TL_SetSize(ID_손절선, 2); 신호발생 = true; 매도출력 = false; end; // === 매도 신호 === if (신호발생 = true) and (매도출력 = false) then begin if (Close >= 익절선) or (Close <= 손절선) then begin ID_txt = Text_New(date, time, High, "SELL"); Text_SetColor(ID_txt, red); 매도출력 = true; end; end; // === 상태 초기화 === if (매도출력 = true) and ((Close > 진입가 * 1.2) or (Close < 진입가 * 0.9)) then begin 신호발생 = false; 매도출력 = false; end; 적용이안됩니다 이유가뭘까요 예스트레이더에 적용되게 부탁드립니다
프로필 이미지
윤호석
2025-05-10
300
글번호 190712
지표
답변완료

Plot 함수 문의

안녕하세요? 첨부와 같은 파인스크립트의 Plot종류인 Stepline과 유사한 함수가 예스랭귀지에 있나요? 없다면 최대한 유사하게 구현할 수 있는 스크립트 좀 부탁드립니다. 감사합니다.
프로필 이미지
착한이
2025-05-10
226
글번호 190711
사용자 함수
답변완료

문의 드립니다.

수고 많으십니다. 앞전 15개 봉(일 또는 캔들) 안에서 아래의 저점신호 A = StochasticsSlow(12,5); B = eavg(A,5); CrossUp(A, B) and A <= 30 발생 후 현재가에서 아래의 1000% 이상 대량 매수량 Sv = sum(V); V1 = ValueWhen(1,date!=date(1), Sv(1)); V2 = ValueWhen(2,date!=date(1), Sv(1)); 당일 = Sv - V1; 전일 = V1 - V2; Tot = 당일/전일 *100; if(Tot>1000, Tot, 0) 발생한 종목 검색식 부탁드립니다. 감사합니다.
프로필 이미지
ikksoo
2025-05-10
222
글번호 190710
검색
답변완료

질문 부탁드립니다

수고가 많으십니다 한가지 여쭤보고 싶은데요, 아래 식에서 aa[0]배열값을 비교하는 조건을 만들고 싶습니다 비교조건은 "다음 만족봉의 aa가 이전 aa보다 15% 이상 크거나, 30% 이상 작다" 입니다 만약 다음봉이 크거나 작지 않으면 조건이 만족할때까지 비교를 하려고 하는데, 다음봉에 나오는 aa 값을 누적해서 평균을 한뒤에 그 다음봉과 비교하려고 합니다 예를들어서 aa1 aa2 aa3 aa4 순서로 다음봉들이 나온다면 aa2가 aa1보다 크거나 작지 않으면 aa2는 건너뛰고 aa1+aa2 값을 평균을 내서 aa3 와 비교를 해서 부합할때만 특정값을 저장하려고 하는데 조건 작성이 가능한지 궁금합니다. 만약에 aa3도 아니라면 건너뛰고(aa1+aa2+aa3)/3 한 값과 aa4 를 비교하려고 합니다 매번 감사드립니다 var : cnt(0), sum1(0), sumi1(0),summ(0),tt(0),hh(0),ll(0),tl(0),tl1(0),n(0); var: sum2(0),sumi2(0); var : t(0),StartBarIndex(0),dd(0),d1(0),d2(0),e1(0),e2(0); Array : ii[50](0),aa[50](0); var : count(0) Var33=Money/100000000; if Bdate != Bdate[1] Then { DD = DD+1; } if (h>l*1.08) and (d1 == 0 or (d1 > 0 and dd >= d1+5)) Then { d1 = dd; hh = h; var1 = Index; Var2 = var1[1]; Var3 = Var2[1]; sum1=0; sumi1=0; sum2=0; sumi2=0; tl=TL_NEW(sDate,sTime,100,sDate,sTime,999999); TL_SetSize(tl,0); TL_SetColor(tl,Black); For cnt = 1 to (var1-Var2) { sum1=sum1+l[cnt]; sumi1=sumi1+1; } value1=sum1/sumi1; For cnt = 49 DownTo 1 { aa[cnt] = aa[cnt-1]; #ee[cnt]= ee[cnt-1]; } aa[0] = value1*1; }
프로필 이미지
yamu
2025-05-12
219
글번호 190709
지표

남한산성 님에 의해서 삭제되었습니다.

프로필 이미지
남한산성
2025-05-10
73
글번호 190708
시스템
답변완료

수식 수정 부탁드립니다.

안녕하세요. 예전에 트레일링스탑 청산전략이 포함된 피라미딩 매매전략을 문의한 결과 아래와 같은 수식을 작성해 주셨습니다. var : HH1(0),HH2(0),HH3(0),HH4(0),HH5(0); var : EP1(0),EP2(0),EP3(0),EP4(0),EP5(0); if MarketPosition == 0 Then { if BuyCond == True Then Buy("Long1", AtMarket); } if MarketPosition == 1 Then { if CurrentContracts > CurrentContracts[1] Then { if MaxEntries == 1 Then { HH1 = LatestEntryPrice(0); EP1 = LatestEntryPrice(0); } if MaxEntries == 2 Then { HH2 = LatestEntryPrice(0); EP2 = LatestEntryPrice(0); } if MaxEntries == 3 Then { HH3 = LatestEntryPrice(0); EP3 = LatestEntryPrice(0); } if MaxEntries == 4 Then { HH4 = LatestEntryPrice(0); EP4 = LatestEntryPrice(0); } if MaxEntries == 5 Then { HH5 = LatestEntryPrice(0); EP5 = LatestEntryPrice(0); } } if MaxEntries >= 1 and H > HH1 Then HH1 = H; if MaxEntries >= 2 and H > HH2 Then HH2 = H; if MaxEntries >= 3 and H > HH3 Then HH3 = H; if MaxEntries >= 4 and H > HH4 Then HH4 = H; if MaxEntries >= 5 and H > HH5 Then HH5 = H; if MaxEntries == 1 and BuyCond == True Then Buy("Long2", AtMarket); if MaxEntries == 2 and BuyCond == True Then Buy("Long3", AtMarket); if MaxEntries == 3 and BuyCond == True Then Buy("Long4", AtMarket); if MaxEntries == 4 and BuyCond == True Then Buy("Long5", AtMarket); if MaxEntries >= 1 and HH1-ATR > EP1 Then ExitLong("TStop1", Atstop, HH1 - ATR, "Long1"); if MaxEntries >= 2 and HH1-ATR > EP2 Then ExitLong("TStop2", Atstop, HH2 - ATR, "Long2"); if MaxEntries >= 3 and HH1-ATR > EP3 Then ExitLong("TStop3", Atstop, HH3 - ATR, "Long3"); if MaxEntries >= 4 and HH1-ATR > EP4 Then ExitLong("TStop4", Atstop, HH4 - ATR, "Long4"); if MaxEntries >= 5 and HH1-ATR > EP5 Then ExitLong("TStop5", Atstop, HH5 - ATR, "Long5"); } Else { HH1 = 0; HH2 = 0; HH3 = 0; HH4 = 0; HH5 = 0; EP1 = 0; EP2 = 0; EP3 = 0; EP4 = 0; EP5 = 0; } 청산전략에서 트레일링 스탑을 적용하되, 반드시 청산가가 진입가보다 높은 경우에만 적용되도록 요청을 드렸는데, 간혹 진입가보다 더 낮은 가격에서 청산되는 경우가 발생하고 있습니다. 그래서, 아래와 같이 변경을 해보았으나, 그래도 진입가보다 더 낮은 가격에서 청산되는 경우가 있었습니다. 아래의 수식이 아닌 100% 진입가보다 높은 가격에서 청산되는 수식을 부탁드리겠습니다. 감사합니다. if MaxEntries >= 1 and HH1-ATR > EP1*1.1 Then ExitLong("TStop1", Atstop, HH1 - ATR, "Long1"); if MaxEntries >= 2 and HH1-ATR > EP2*1.1 Then ExitLong("TStop2", Atstop, HH2 - ATR, "Long2"); if MaxEntries >= 3 and HH1-ATR > EP3*1.1 Then ExitLong("TStop3", Atstop, HH3 - ATR, "Long3"); if MaxEntries >= 4 and HH1-ATR > EP4*1.1 Then ExitLong("TStop4", Atstop, HH4 - ATR, "Long4"); if MaxEntries >= 5 and HH1-ATR > EP5*1.1 Then ExitLong("TStop5", Atstop, HH5 - ATR, "Long5");
프로필 이미지
착한이
2025-05-10
285
글번호 190707
시스템