커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

문의드립니다

input : color(Green); var : nday(0),week(0),TL(0); nday = date - int(date/100)*100; week = DayOfWeek(date); if nday >= 8 and nday <= 14 and week == 4 then Condition1 = True; Else Condition1 = False; if NextBarSdate != sDate and Condition1 == true Then { TL = TL_New(NextBarSdate,NextBarStime,0,NextBarSdate,NextBarStime,99999999); TL_SetColor(TL,color); } ---------------- 위식의 세로선 굵기를 굵게할수 있을까요? 굵기를 지정할수 있어도 좋고 아님 그냥 굵게 해도 좋구요 감사합니다
프로필 이미지
러블리
2023-08-30
1142
글번호 171977
지표
답변완료

수식관련문의 드립니다.

var : entry(0),sum(0),mav(0),cnt(0); sum = 0; For cnt = 1 to 20 { sum = sum + DayClose(cnt); } mav = sum/20; if Bdate != Bdate[1] then entry = 0; if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or (MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then entry = entry+1; if MarketPosition == 0 and entry < 1 Then Buy("b",AtStop,DayOpen+(DayHigh(1)-DayLow(1))*0.5); if MarketPosition == 1 and EntryDate != sDate and DayClose(1)/mav*100 < 100 Then ExitLong("bx",AtStop,DayOpen+(DayHigh(1)-DayLow(1))*0.5); 위 수식에 장중 오후 2시30분 이후 발생하는 매수신호는 거래가 안되고 이전에 주식을 가지고 있을 경우 매도신호는 거래가되게 추가해주시면 감사하겠습니다. 즐거운 하루되세요~~!
프로필 이미지
강건
2023-08-30
891
글번호 171974
시스템
답변완료

검색함수가 정상작동하지않습니다.

input : period(48); var : nflagh(0),nflagCnt(0); if nflagcnt!= 0 Then nflagcnt = nflagcnt + 1; var1 = BarIndex; if BarIndex+1 >= period Then { if NthHighestBar(1,h,period)==0 //&& NthHighestBar(1,h,period)[1]!=0 Then { Find(1); } } Else { if nflagh < h Then { nflagh = h; nflagcnt = 1; } if LastBarOnChart==1 Then if nflagcnt==1 //&& nflagcnt[1] != 1 Then Find(1); } 48봉중 최고가인 검색식을작성했습니다. 신규주나 생긴지 얼마안되는 것은 즉 48봉 미만인경우는 아래 else를타고 48봉 이상이 존재하는 주식은 if 문을 타도록 구현했는데요 지표에서는 잘 작동하는데 검색식으로는 위에 해당하는종목이 검색이안됩니다. 예를들어 오늘 뷰노같은 경우는 아에 검색식에 뜨지 않습니다. 디버깅해보니 NthHighestBar 함수 존재 유무에따라 검색이 되고 안되는 거같은데 이거 NthHighestBar 함수가 파라미터에 들어오는수만큼 없는경우는 검색식인경우 정상작동하지 않는 거같은데요 확인 요청드립니다. 아 해당검색식은 월봉에서 찾는걸로 수행했습니다 월봉상 48벙미만인정목은 해당함수때문에아에검색동닥이안하네요 ㅠㅜ 그리고해당함수에문제가있다면 우회해서 제가짜고싶은로직은 어떻게구현해야하나요?
프로필 이미지
여유로운투자
2023-08-30
1171
글번호 171967
검색
답변완료

83515 답변 주신 것에 추가 문의 드립니다

이전 문의의 답변에 감사드립니다. 아직 해소되지 않은 부분이 있어 추가 문의 드립니다. ^^ 아래와 같이 코드를 알려주셨는데요. ========================================================== var : t(0); if (sdate != sdate[1] and stime >= ntime) or (sdate == sdate[1] and stime >= ntime and stime[1] < ntime) Then { T = 0; } if Tcond == true Then { if T == 0 Then { if up_cnt[1] >= 6 or up_cnt[2] >= 6 Then T = 1; if middle_cnt[1] >= 6 or middle_cnt[2] >= 6 Then T = 2; if down_cnt[1] >= 6 or down_cnt[2] >= 6 Then T = 3; } if T == 1 Then { if MarketPosition <= 0 and CrossUp(C,up[2]) Then Buy("b1"); if MarketPosition >= 0 and CrossDown(C,up[1]) Then Sell("s1"); if MarketPosition == 1 Then ExitLong("Bp1",AtLimit,up[2]+(up[2]-up[1])*3); if MarketPosition == -1 Then ExitLong("sp1",AtLimit,up[1]-(up[2]-up[1])*3); } if T == 2 Then { if MarketPosition <= 0 and CrossUp(C,middle[2]) Then Buy("b2"); if MarketPosition >= 0 and CrossDown(C,middle[1]) Then Sell("s2"); if MarketPosition == 1 Then ExitLong("Bp2",AtLimit,middle[2]+(middle[2]-middle[1])*3); if MarketPosition == -1 Then ExitLong("sp2",AtLimit,middle[1]-(middle[2]-middle[1])*3); } if T == 3 Then { if MarketPosition <= 0 and CrossUp(C,down[2]) Then Buy("b3"); if MarketPosition >= 0 and CrossDown(C,down[1]) Then Sell("s3"); if MarketPosition == 1 Then ExitLong("Bp3",AtLimit,down[2]+(down[2]-down[1])*3); if MarketPosition == -1 Then ExitLong("sp3",AtLimit,down[1]-(down[2]-down[1])*3); } } ========================================================================= 빨간 박스 구간이 up_cnt 부분. 검정 박스 구간이 middlt_cnt 부분. 파랑 박스 구간이 down_cnt 부분. 인데요. 먼저 6번 이상 터치를 먼저 한 구간에서 매매가 시작되는데요. 첨부된 이미지를 보면 검정 박스 구간이 먼저 6번 이상 터치가 되어 매매가 시작 됐습니다. 그런데 검정 박스 구간의 매매가 시작 되면 빨간 박스 구간과 파랑 박스 구간이 6번 이상 터치가 되어도 매매 진입이 되지 않게 만들려면 어떻게 수식을 짜야 할까요?
프로필 이미지
예스쟁이
2023-08-29
1164
글번호 171966
시스템

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

프로필 이미지
hakona
2023-08-29
26
글번호 171965
지표
답변완료

차트 화면 상 첫째 봉.

차트 화면에 표시되는 영역에서의 첫번째 봉의 BarIndex 구하는 방법이 있나요?
프로필 이미지
멍거
2023-08-29
1325
글번호 171963
지표
답변완료

83550 답변에 대해 추가 문의 드립니다.

신호가 발생한 캔들의 바로 이전 캔들을 손절의 기준으로 잡는 식 문의들 드렸고, 답변을 받았습니다. 알려주식 매수청산식은 다음과 같습니다. if EntryPrice < (H[BarsSinceEntry+1]+L[BarsSinceEntry+1])/2 Then value1 = L[BarsSinceEntry+1]; Else value1 = (H[BarsSinceEntry+1]+L[BarsSinceEntry+1])/2; ExitLong("bx",AtStop,value1); 진입가격이 신호 1봉전 캔들의 (고가+저가)/2 보다 작으면 value1 값은 신호1봉전캔들의 저가, 그렇지 않으면 value1 값은 신호1봉전 캔들의 중심가격 그런데, 첫번째 그림을 보시면 신호가격은 1봉전 캔들의 중심보다 높지만 청산신호는 신호 바로전 캔들의 저가보다도 더 낮은 가격에 나왔습니다. 그러나, 두번째 사진의 경우를 보면 신호 이전 캔들의 중심가격에 청산신호가 나왔습니다. 이것이 과거봉 가설 때문인 것인지요?? 또 한가지 궁금한 것은, 위 두사진을 보면 모두 청산신호는 신호발생캔들이 아닌 그 다음봉에서 나옵니다. 과거봉 가설 때문에 이런 문제가 생긴다면, 신호가 발생한 캔들을 포함해서 신호가 발생한 이후 청산전에 만들어지는 모든 캔들에서 신호발생 바로 1봉전 캔들의 저가를 이탈하는 순간 청산신호가 나오게 하는 수식을 알고 싶습니다. setstoploss의 경우에는 진입신호발생 캔들에도 스탑로스신호가 발생하는 것처럼요. 과거봉 가설 때문에 시뮬레이션에서는 제대로 표현이 안되는 경우도 있을 수 있겠지만, 실시간에서 진입신호가 나온 바로 1봉전 캔들의 저가에 도달하는 순간 청산이 되는 수식을 부탁드립니다. 신호가 나온 캔들에서도 조건에 맞으면 청산신호가 나오도록 부탁드립니다.
프로필 이미지
하루만
2023-08-29
1173
글번호 171962
시스템
답변완료

수식 부탁드립니다.

안녕하세요 수식 하나 부탁드립니다. 09:00 에 매수1계약 후에 매수한 1계약이 11:00 시 까지 손실보면은(수익이 나면은 11시:00분에 청산) 11 시에 1계약더 추가 매수(물타기)후에 다시 합2계약이 12:00분에 손실보면은(수익이 나면은 12:00분에 청산) 12 시에 2계약더 매수 후에 종가에 청산 하는 식입니다. 감사드립니다.
프로필 이미지
뭐이런걸다
2023-08-29
1050
글번호 171961
시스템
답변완료

문의드립니다.

다음 수식을 차트에 라인으로 표현되는 지표로 변환 부탁드립니다. HH=HighestSince(1, date!=date(1),C); Ct = Valuewhen(1, CrossUp(93000, T), HH(1)); 라인 = Valuewhen(1,Ct>PreDayClose()*1.1,Ct);
프로필 이미지
redcon
2023-08-29
1198
글번호 171960
지표

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

프로필 이미지
redcon
2023-08-29
0
글번호 171959
지표