커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

문의드립니다

수고 많으십니다 볼랜즈밴드 수식 부탁드립니다 매수조건 1.볼밴 상단 터치하거가 돌파이후 2.하락하여 중심선을 터치하거나 돌파이후 3.하단 선에 닫지 않고 중심선 위로 다시오라오는 양봉 발생시 매수진입 매도 청산 매도 조건 1.볼밴 하단 터치하거나 돌파이후 2.상승하여 중심선을 터치하거나 돌파하고나서 3.상단선을 터치하지 않고 중심선 아래로 내려오는 음봉 발생시 매도진입 매수청산 이런 수식을 부탁드립니다 너무 복잡한걸 부탁드려 죄송하고 염치없지만 꼭 좀 부탁드리겠습니다 항상 감사드립니다
프로필 이미지
cjfdk
2022-08-19
1645
글번호 161604
시스템
답변완료

78507 추가 질문 입니다.

78507 추가 질문 드렸습니다. 수고 하세요
프로필 이미지
월드맨
2022-08-19
1250
글번호 161603
지표
답변완료

예스코인 재실행시 신호위치 바뀜 문제

안녕하세요, 예스트레이더코인 게시판에 문의글 올렸었는데, 답이 안달려서 여기에도 올려봅니다. 양해 부탁드립니다. 예스트레이더 코인을 이용하여 36개 종목 멀티차트로 1분봉 5000개씩 띄운 차트쉐어를 이용해 코인 매매를 하고 있는데 문제가 있어 문의드립니다. 시스템에 멀티차트로 여러 종목을 봉 5000개를 띄워서 매매를 하면, 시간이 지나 봉이 5천개가 넘어갈때 과거 봉이 지워지고 5천개가 계속 유지되는 것이 아니라 누적으로 6천개 7천개 이렇게 계속 쌓이게 되는데, 시스템을 껐다 키면 누적되어 쌓여있던 봉이 삭제되고 다시 최근 5000봉만 뜨게 되면 기존에 있던 매매 신호가 완전히 바뀌게 됩니다. 그래서 매매가 완전 꼬이게 되구요. 왜 이런 문제가 생기는지 생각해봤는데 이평 계산이 차트 첫봉이라면 최종까지 봉 갯수가 달라지므로 신호가 바뀔수 있을 것 같은데 이동평균 계산방법이 가장 최근 봉 기준인지, 차트 첫봉 기준인지가 궁금합니다. 예를 들어 20이평이라면 차트 첫봉부터 과거 방향으로 20봉 평균인지, 차트에 나타난 첫봉부터 최근 방향으로 20봉 평균인지요. 신호가 바뀌는게 이동평균 계산 방식이 문제 때문이 맞는지, 맞다면 가장 최근 봉부터 과거순으로 이평선을 설정하려면 수식을 어떻게 바꿔야하는지, 이게 문제가 아니라면 왜 이런일이 발생하는지 문의드립니다. 매번 며칠 돌리다가 튕겨서 재실행 했을 때 신호가 완전히 바뀌어 버려서 제대로 된 매매를 할 수가 없습니다. 건수를 5000바로 설정하면 5천바를 넘어갈 때 차트 첫 봉을 하나씩 지워지게 해서 봉 갯수를 항상 5천바로 유지하게 할 수는 없는건가요? 예스 트레이더는 장 종료가 정해져있어 이런일이 없을 것 같은데, 코인은 24시간 켜놓게 되니 봉이 누적으로 계속 쌓여서 이런일이 발생하는 것 같습니다. 검토 부탁드립니다.
프로필 이미지
김예스
2022-08-19
1167
글번호 161602
시스템
답변완료

수식부탁드립니다.

Envelope (엔벨로프) 선 기울기에 따라서 선 색이 변하는 수식 부탁드니다. 그리고 Period(40) 에 Percent(1) (2) (3) (4) (5) 이렇게 한꺼번에 다 표시 되면 좋겠습니다. Input : Period(40), Percent(2); var : center(0),UPline(0),DNline(0); center = ma(C, Period); UPline = EnvelopeUp(Period, Percent); Dnline = EnvelopeDown(Period, Percent); Plot1(center, "중앙선"); Plot2(UPline, "EnvelopeUp"); Plot3(Dnline, "EnvelopeDown"); 와 아래 수식을 합친 것입니다. input : P(40); var : mav(0),T(0); mav = ma(C,40); if mav > mav[1] Then T = 1; if mav < mav[1] Then T = -1; Plot1(mav,"이평",iff(T==1,RED,BLUE));
프로필 이미지
억수로
2022-08-19
1125
글번호 161600
지표
답변완료

수식 부탁드립니다.

##1. 전환비율에의한 분홍점선과 하늘색점선의 중심값을 삭제하고 싶어요(주황색선) 주황색선 수식은 가능하면 삭제하지 말고 녹색으로 표시해서 비활성화 해 주세요 ##2. 현재 수식에서 손절 나올 경우에는, 이평선과 상관없이 바로 스위칭되게 수정했으면 좋겠습니다. 만약에, 매수진입상태에서 (매도)손절이 나와서 바로 스위칭하게 되면, 이후 정상 매도진입신호가 추가되면 1계약 매매기 때문에 추가 매도진입은 안 되게 해 주세요 Input:전환비율(5); input : StartTime(070300),EndTime(055500),P(60); Input :익절(65),손절(50),당일수익(150),당일손실(100); Var : N1(0),dayPl(0),Tcond(false),Xcond(false); Var : j(0),jj(0),HH(0),LL(0),hiBar(0),loBar(0),최종꼭지점(""),처리구분(""); var : TL1(0),Text1(0),ADXV1(0),tl2(0),tl3(0),tx2(0),tx3(0),t(0),Emav(0); var : TL4(0),TX4(0),TL5(0),TX5(0); Array:고[10,4](0),저[10,4](0); HH = H; LL = L; Emav = Ema(L,P); If Index == 0 Then { 고[1,1] = HH; 고[1,2] = 0; 고[1,3] = sDate; 고[1,4] = sTime; 저[1,1] = LL; 저[1,2] = 0; 저[1,3] = sDate; 저[1,4] = sTime; } If Index > 0 Then { hiBar = hiBar + 1; loBar = loBar + 1; } If HH[hiBar] < HH Then hiBar = 0; If LL[loBar] > LL Then loBar = 0; Condition1 = 저[1,1] * (1 + (전환비율/100)) < HH and hiBar == 0; Condition2 = 고[1,1] * (1 - (전환비율/100)) > LL and loBar == 0; 처리구분 = ""; 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 { T = 1; If 최종꼭지점 == "저점" Then { TL_SetEnd(TL2,저[1,3],저[1,4],value2); Text_SetLocation(TX2,저[1,3],저[1,4],Value2 ); TL_SetEnd(TL4,저[1,3],저[1,4],value3); Text_SetLocation(TX4,저[1,3],저[1,4],Value3 ); For j = 10 DownTo 2 { For jj = 1 To 4 { 고[j,jj] = 고[j-1,jj]; } } 고[1,1] = HH[hiBar]; 고[1,2] = Index - hiBar; 고[1,3] = sDate[hiBar]; 고[1,4] = sTime[hiBar]; hiBar = -1; loBar = -1; TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]); TL_SetSize(TL1,1); TL_SetColor(TL1,RED); value1 = 저[1,1]*(1+(전환비율/100)); value2 = 고[1,1]*(1-(전환비율/100)); value3 = (value1+Value2)/2; TL2 = TL_New(고[1,3],고[1,4],value2 ,NextBarSdate,NextBarStime,value2); TL_SetColor(TL2,Cyan); TL_SetStyle(TL2,3); Tx2 = Text_New(NextBarSdate,NextBarStime,value2,NumToStr(value2,2)); Text_SetColor(Tx2,Cyan); TL4 = TL_New(고[1,3],고[1,4],value3 ,NextBarSdate,NextBarStime,value3); TL_SetColor(TL4,Orange); TL_SetStyle(TL4,3); Tx4 = Text_New(NextBarSdate,NextBarStime,value3,NumToStr(value3,2)); Text_SetColor(Tx4,Orange); } Else If 고[1,1] < HH[hiBar] Then // 1번 고점보다 높은 고가 출현 { 고[1,1] = HH[hiBar]; 고[1,2] = Index - hiBar; 고[1,3] = sDate[hiBar]; 고[1,4] = sTime[hiBar]; hiBar = -1; loBar = -1; TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]); value2 = 고[1,1]*(1-(전환비율/100)); value3 = (value1+Value2)/2; TL_SetBegin(TL2,고[1,3],고[1,4],value2); Text_SetString(TX2,NumToStr(value2,2)); TL_SetBegin(TL4,고[1,3],고[1,4],value3); Text_SetString(TX4,NumToStr(value3,2)); } 최종꼭지점 = "고점"; } If 처리구분 == "저점처리" Then { t = -1; If 최종꼭지점 == "고점" Then { TL_SetEnd(TL3,고[1,3],고[1,4],value5 ); Text_SetLocation(TX3,고[1,3],고[1,4],value5); TL_SetEnd(TL5,고[1,3],고[1,4],value6 ); Text_SetLocation(TX5,고[1,3],고[1,4],value6); For j = 10 DownTo 2 { For jj = 1 To 4 { 저[j,jj] = 저[j-1,jj]; } } 저[1,1] = LL[loBar]; 저[1,2] = Index - loBar; 저[1,3] = sDate[loBar]; 저[1,4] = sTime[loBar]; hiBar = -1; loBar = -1; TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]); TL_SetSize(TL1,1); TL_SetColor(TL1,BLUE); value4 = 고[1,1]*(1-(전환비율/100)); value5 = 저[1,1]*(1+(전환비율/100)); value6 = (value4+Value5)/2; TL3 = TL_New(저[1,3],저[1,4],value5,NextBarSdate,NextBarStime,value5 ); TL_SetColor(TL3,Magenta); TL_SetStyle(TL3,3); TX3 = Text_New(NextBarSdate,NextBarStime,value5,NumToStr(value5,2)); Text_SetColor(TX3,Magenta); TL5 = TL_New(저[1,3],저[1,4],value6,NextBarSdate,NextBarStime,value6 ); TL_SetColor(TL5,Orange); TL_SetStyle(TL5,3); TX5 = Text_New(NextBarSdate,NextBarStime,value5,NumToStr(value5,2)); Text_SetColor(TX5,Orange); } Else If 저[1,1] > LL[loBar] Then { 저[1,1] = LL[loBar]; 저[1,2] = Index - loBar; 저[1,3] = sDate[loBar]; 저[1,4] = sTime[loBar]; hiBar = -1; loBar = -1; TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]); value5 = 저[1,1]*(1+(전환비율/100)); value6 = (value4+Value5)/2; TL_SetBegin(TL3,저[1,3],저[1,4],value5 ); Text_SetString(TX3,NumToStr(value5,2)); TL_SetBegin(TL5,저[1,3],저[1,4],value6 ); Text_SetString(TX5,NumToStr(value6,2)); } 최종꼭지점 = "저점"; } TL_SetEnd(TL2,NextBarSdate,NextBarStime,Value2); Text_SetLocation(TX2,NextBarSdate,NextBarStime,Value2); TL_SetEnd(TL3,NextBarSdate,NextBarStime,Value5 ); Text_SetLocation(TX3,NextBarSdate,NextBarStime,Value5 ); TL_SetEnd(TL4,NextBarSdate,NextBarStime,Value3); Text_SetLocation(TX4,NextBarSdate,NextBarStime,Value3); TL_SetEnd(TL5,NextBarSdate,NextBarStime,Value6); Text_SetLocation(TX5,NextBarSdate,NextBarStime,Value6); IF Endtime > starttime Then SetStopEndofday(Endtime); Else { if sDate != sDate[1] Then SetStopEndofday(Endtime); } if (sdate != sdate[1] and stime >= EndTime) or (sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then Tcond = False; if (sdate != sdate[1] and stime >= StartTime) or (sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then { Tcond = true; Xcond = false; N1 = NetProfit; IF Endtime <= starttime Then { SetStopEndofday(0); } } daypl = NetProfit-N1; if TotalTrades > TotalTrades[1] then { if daypl >= 당일수익 or daypl <= -당일손실 Then Xcond = true; if (IsExitName("dbp",1) == true or IsExitName("dbl",1) == true or IsExitName("dsp",1) == true or IsExitName("dsl",1) == true) then Xcond = true; } if Tcond == true and Xcond == false then { if MarketPosition >= 0 and T == 1 and L > 고[1,1]* (1 - (전환비율/100)) and C < Emav Then Sell("s",AtStop,고[1,1]* (1 - (전환비율/100))); if MarketPosition <= 0 and T == -1 and H < 저[1,1]* (1 + (전환비율/100)) and C > Emav Then Buy("b",AtStop,저[1,1]* (1 + (전환비율/100))); } if MarketPosition == 1 then { ExitLong("bl",AtStop, max(EntryPrice-손절,고[1,1]* (1 - (전환비율/100)))); ExitLong("dbp",atlimit,EntryPrice+((당일수익-daypl)/CurrentContracts)); ExitLong("dbl",AtStop,EntryPrice-((당일손실+daypl)/CurrentContracts)); } if MarketPosition == -1 then { ExitShort("sl",AtStop, min(EntryPrice+손절,저[1,1]* (1 + (전환비율/100)))); ExitShort("dsp",atlimit,EntryPrice-((당일수익-daypl)/CurrentContracts)); ExitShort("dsl",AtStop,EntryPrice+((당일손실+daypl)/CurrentContracts)); } SetStopProfittarget(익절,PointStop);
프로필 이미지
제이디1
2022-08-19
1241
글번호 161598
시스템
답변완료

문의드립니다.

현물입니다. 늘 고맙습니다. 1차 100만원, 2차 100만원, 3차 100만원, 4차 100만원, 5차 백만원 당일 첫 10분봉 주가 등락률이 첫분봉 시가대비 5%이상이거나, 당일 첫 10분봉 주가 등락률이 첫분봉 시가대비 -5%이하이면 기준봉으로 저장!!!! 이후 10봉이내 기준봉의 고가를 돌파하는 봉 종가에 1차 매수 (이때 돌파봉의 거래량은 기준봉 거래량의 80% 이상이여야함) 2차는 3틱아래, 3차는 6틱 아래, 4차는 9틱아래, 5차는 12틱 아래에서 매수 청산1: 총 매수금액의 10% 상승시 청산, 이후 진입금지 청산2: 당일 15:00 모두 청산(시장가) 감사합니다.~~~~
프로필 이미지
하늘북
2022-08-18
1261
글번호 161597
시스템
답변완료

검색식 부탁드립니다

키움 수식을 사용하겠습니다. SlowK = Stochasticsslow(sto1,sto2); SlowD = eavg(Stochasticsslow(sto1,sto2),sto3); 조건 = SlowD > SlowD(1) and SlowK > SlowK(1) and RSI(14) > 50 and ma(c,120) <= C 조건에 만족할때의 박스하단(시가)과 박스상단(종가)을 찾아내어 1) 박스하단부터 ~ 2% 사이의 종목 검색식 2) 박스상단 돌파 종목 검색식 두가지 검색식 부탁드리겠습니다. 감사합니다.
프로필 이미지
옴파로스
2022-08-18
1508
글번호 161596
종목검색
답변완료

문의드립니다.

저번에 알려주신 수식을 DATA2수식으로 전환 부탁드립니다. var : a(0),b(0); var : HH(0),HD(0),HT(0); var : HH1(0),HD1(0),HT1(0); var : LL(0),LD(0),LT(0); var : LL1(0),LD1(0),LT1(0); var : TL(0),TL1(0),TL2(0),TL3(0),TL4(0),TL5(0); a = ma(C,5); b = ma(c,20); Condition1 = C > a and C > b; Condition2 = C < a and C < b; if Condition1 == true and Condition1[1] == False Then Buy(); if Condition2 == true and Condition2[1] == False Then Sell(); if MarketPosition == 1 Then { if MarketPosition != MarketPosition[1] Then { HD = sDate[BarsSinceEntry]; HT = sTime[BarsSinceEntry]; HH = H[BarsSinceEntry]; HD1 = HD[1]; HT1 = HT[1]; HH1 = HH[1]; if HH1 > 0 and LL > 0 Then { value1 = HH1; Value2 = LL; TL = TL_new(HD1,HT1,value1,LD,LT,Value2); TL1 = TL_new(sdate[BarsSinceEntry],sTime[BarsSinceEntry],value1,NextBarSdate,NextBarStime,value1); TL2 = TL_new(sdate[BarsSinceEntry],sTime[BarsSinceEntry],value2,NextBarSdate,NextBarStime,value2); TL3 = TL_new(sdate[BarsSinceEntry],sTime[BarsSinceEntry],value1-(value1-Value2)*0.382,NextBarSdate,NextBarStime,value1-(value1-Value2)*0.382); TL4 = TL_new(sdate[BarsSinceEntry],sTime[BarsSinceEntry],value1-(value1-Value2)*0.500,NextBarSdate,NextBarStime,value1-(value1-Value2)*0.500); TL5 = TL_new(sdate[BarsSinceEntry],sTime[BarsSinceEntry],value1-(value1-Value2)*0.618,NextBarSdate,NextBarStime,value1-(value1-Value2)*0.618); TL_SetColor(TL,Red); TL_SetColor(TL1,Magenta); TL_SetColor(TL2,Magenta); TL_SetColor(TL3,Magenta); TL_SetColor(TL4,Magenta); TL_SetColor(TL5,Magenta); } } if H > HH Then { HD = sDate; HT = sTime; HH = H; } if HH1 > 0 and LL > 0 Then { TL_SetEnd(TL1,sDate,sTime,value1); TL_SetEnd(TL2,sDate,sTime,value2); TL_SetEnd(TL3,sDate,sTime,value1-(value1-Value2)*0.382); TL_SetEnd(TL4,sDate,sTime,value1-(value1-Value2)*0.500); TL_SetEnd(TL5,sDate,sTime,value1-(value1-Value2)*0.618); } } if MarketPosition == -1 Then { if MarketPosition != MarketPosition[1] Then { LD = sDate[BarsSinceEntry]; LT = sTime[BarsSinceEntry]; LL = L[BarsSinceEntry]; LD1 = LD[1]; LT1 = LT[1]; LL1 = LL[1]; if LL1 > 0 and HH > 0 Then { value1 = HH; Value2 = LL1; TL = TL_new(LD1,LT1,LL1,HD,HT,HH); TL1 = TL_new(sdate[BarsSinceEntry],sTime[BarsSinceEntry],value1,NextBarSdate,NextBarStime,value1); TL2 = TL_new(sdate[BarsSinceEntry],sTime[BarsSinceEntry],value2,NextBarSdate,NextBarStime,value2); TL3 = TL_new(sdate[BarsSinceEntry],sTime[BarsSinceEntry],value1-(value1-Value2)*0.382,NextBarSdate,NextBarStime,value1-(value1-Value2)*0.382); TL4 = TL_new(sdate[BarsSinceEntry],sTime[BarsSinceEntry],value1-(value1-Value2)*0.500,NextBarSdate,NextBarStime,value1-(value1-Value2)*0.500); TL5 = TL_new(sdate[BarsSinceEntry],sTime[BarsSinceEntry],value1-(value1-Value2)*0.618,NextBarSdate,NextBarStime,value1-(value1-Value2)*0.618); TL_SetColor(TL,Blue); TL_SetColor(TL1,Cyan); TL_SetColor(TL2,Cyan); TL_SetColor(TL3,Cyan); TL_SetColor(TL4,Cyan); TL_SetColor(TL5,Cyan); } } if L < LL Then { LD = sDate; LT = sTime; LL = L; } if HH1 > 0 and LL > 0 Then { TL_SetEnd(TL1,sDate,sTime,value1); TL_SetEnd(TL2,sDate,sTime,value2); TL_SetEnd(TL3,sDate,sTime,value1-(value1-Value2)*0.382); TL_SetEnd(TL4,sDate,sTime,value1-(value1-Value2)*0.500); TL_SetEnd(TL5,sDate,sTime,value1-(value1-Value2)*0.618); } }
프로필 이미지
아름다운아침
2022-08-18
1390
글번호 161595
지표
답변완료

종목 검색 관련 문의드립니다

안녕하세요 종목 검색을 장시작하고 바로 확인하고 싶은데요. 예를 들어, 전일대비 5% 이상 갭상승한 종목을 찾고자 한다면, 아래와 같은 수식을 만드는데 장시작하고 바로 검색이 가능할까요? 종목검색 시 가장 작은 단위가 1분인데, 그러면 9시1분 부터 검색결과가 나오는게 아닌가싶어서요. 장 시작하고 검색했을때 바로 나오게 하려면 어떻게 할지 조언 부탁드립니다. if(DayOpen >= DayClose(1)*1.05) Then { find(1); }
프로필 이미지
edan
2022-08-18
1422
글번호 161594
종목검색
답변완료

문의드립니다.

늘 감사합니다. 아래 수식을 변경해 주시면 감사하겠습니다 아래 수식에서 b1 매수후 수익청산되면 더이상 진입하지 않게 해주십시요. 또 b1과 b2까지 매수후 수익청산되도 더이상 진입하지 않게 해주시면 감사하겠습니다. 고맙습니다. input : N(10),금액1(10000); var : cnt(0),entry(0); if Bdate != bdate[1] Then { entry = 0; var1 = 0; Var2 = 0; For cnt = 1 to N { if var1 == 0 and Var2 == 0 and DayClose(cnt) >= DayClose(cnt+1)*1.08Then { var1 = DayClose(cnt); Var2 = DayClose(cnt+1); } } } if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or (MarketPosition != MarketPosition[1] and TotalTrades > TotalTrades[1]) Then entry = entry+1; if MarketPosition == 0 and var1 > 0 and entry < 1 Then Buy("b1",AtLimit,(var1+Var2)/2,Floor(금액1/min(NextBarOpen,(var1+Var2)/2))); if MarketPosition == 1 Then { if MarketPosition != MarketPosition[1] Then { value1 = var1[BarsSinceEntry]; Value2 = var2[BarsSinceEntry]; } Buy("b2",AtLimit,Var2,Floor(금액1/min(NextBarOpen,Var2))); ExitLong("bx1",atlimit,AvgEntryPrice*1.30); }
프로필 이미지
하늘북
2022-08-18
1348
글번호 161592
시스템